constructor (options) {
    // new version of the API
    // the old one will be deprecated
    // because we think name and version should be optional
    if (arguments.length > 1) {
      console.warn('DEPRECATED: use "new Schema(options)" instead')
      options = { name: arguments[0], version: arguments[1] }
    }

    /**
      @type {String}
    */
    this.name = options.name
    /**
      @type {String}
    */
    this.version = options.version
    /**
      @type {NodeRegistry}
      @private
    */
    this.nodeRegistry = new NodeRegistry()

    // add built-in node classes
    this.addNodes(this.getBuiltIns())

    if (options.nodes) {
      this.addNodes(options.nodes)
    }
  }
@param {String} name
    @param {String} version