code: function vocabTermsToSchema(terms_array, overrideSchema, opts) {
    opts = opts || {};
    overrideSchema = overrideSchema || {};
    const vocabfunc = opts.vocabfunc || vocab;
    var ret = {
      additionalProperties: true,
      propertySchema: enumSchema(terms_array),
      properties: _.zipObject(terms_array, _.map(terms_array, vocabfunc))
    };
    ret = _.merge(overrideSchema, ret); // add/override with anything passed in opts
    return ret;
  }
docs: If you just want a schema for an object made entirely of vocab terms, use this function for convenience.  opts is deep merged with the generated schema, overriding any individual items it finds. opts: - vocabfunc: alternate function to use for vocab instead of OADA function