"semantic" - our esprima package tracks the harmony branch of esprima, but we wanted to meaningfully version. So we (@jeffmo & I) opted to do it this way. This lets us make breaking changes and push out a new version (2001.y.z) and then if esprima makes a breaking change that we merge in we can bump again (2002.y.z). Same goes for minor & patch levels.