code: function addMacro(definition, _regenerateSchemas) {
    var valid = this._validateMacro(definition);
    if (!valid) throw new Ajv.ValidationError(this._validateMacro.errors);
    // TODO check macro is unique
    this._macros.push(definition);
    if (_regenerateSchemas !== false) generateSchemas();
  }
docs: add JSONScript macro to the interpreter
  @this  JSONScript
  @param {Object}   definition         macro definition, should be valid according to the schema http://www.jsonscript.org/schema/macro.json#
  @param {Boolean}  _regenerateSchemas pass false to prevent regenerating the schemas, can be used when multiple macros are added