static isApiVersionCompatible(clientVersion, serverVersion) {
    log(`checking for client (${clientVersion}) server (${serverVersion}) compatibility`);
    const partsClient = clientVersion.match(/(\d+)\.(\d+)\.\d+/);
    const partsServer = serverVersion.match(/(\d+)\.(\d+)\.\d+/);
    if (!partsClient || !partsServer) return false;

    let majorVersionClient = Number(partsClient[1]);
    let majorVersionServer = Number(partsServer[1]);
    if (majorVersionClient !== majorVersionServer) return false;

    if (majorVersionClient === 0) majorVersionClient = Number(partsClient[2]);
    if (majorVersionServer === 0) majorVersionServer = Number(partsServer[2]);

    return (
      majorVersionClient === majorVersionServer || majorVersionClient === majorVersionServer + 1
    );
  }
Computes whether the two version strings are API-version compatible.
For now this is just semver, but could eventually take more into account.
@param {string} clientVersion
@param {string} serverVersion