# The JSON Schema Core/Validation Meta-Schema, but with titles and descriptions added to make it easier to edit in Treema, and in CoffeeScript module.exports = id: 'metaschema' displayProperty: 'title' $schema: 'http://json-schema.org/draft-04/schema#' title: 'Schema' description: 'Core schema meta-schema' definitions: schemaArray: type: 'array' minItems: 1 items: {$ref: '#'} title: 'Array of Schemas' 'default': [{}] positiveInteger: type: 'integer' minimum: 0 title: 'Positive Integer' positiveIntegerDefault0: allOf: [{$ref: '#/definitions/positiveInteger'}, {'default': 0}] simpleTypes: title: 'Single Type' 'enum': ['array', 'boolean', 'integer', 'null', 'number', 'object', 'string'] stringArray: type: 'array' items: {type: 'string'} minItems: 1 uniqueItems: true title: 'String Array' 'default': [''] type: 'object' properties: id: type: 'string' format: 'uri' $schema: type: 'string' format: 'uri' 'default': 'http://json-schema.org/draft-04/schema#' title: type: 'string' description: type: 'string' 'default': {} multipleOf: type: 'number' minimum: 0 exclusiveMinimum: true maximum: type: 'number' exclusiveMaximum: type: 'boolean' 'default': false minimum: type: 'number' exclusiveMinimum: type: 'boolean' 'default': false maxLength: {$ref: '#/definitions/positiveInteger'} minLength: {$ref: '#/definitions/positiveIntegerDefault0'} pattern: type: 'string' format: 'regex' additionalItems: anyOf: [ {type: 'boolean', 'default': false} {$ref: '#'} ] items: anyOf: [ {$ref: '#'} {$ref: '#/definitions/schemaArray'} ] 'default': {} maxItems: {$ref: '#/definitions/positiveInteger'} minItems: {$ref: '#/definitions/positiveIntegerDefault0'} uniqueItems: type: 'boolean' 'default': false maxProperties: {$ref: '#/definitions/positiveInteger'} minProperties: {$ref: '#/definitions/positiveIntegerDefault0'} required: {$ref: '#/definitions/stringArray'} additionalProperties: anyOf: [ {type: 'boolean', 'default': true} {$ref: '#'} ] 'default': {} definitions: type: 'object' additionalProperties: {$ref: '#'} 'default': {} properties: type: 'object' additionalProperties: {$ref: '#'} 'default': {} patternProperties: type: 'object' additionalProperties: {$ref: '#'} 'default': {} dependencies: type: 'object' additionalProperties: anyOf: [ {$ref: '#'} {$ref: '#/definitions/stringArray'} ] 'enum': type: 'array' minItems: 1 uniqueItems: true 'default': [''] type: anyOf: [ {$ref: '#/definitions/simpleTypes'} { type: 'array' items: {$ref: '#/definitions/simpleTypes'} minItems: 1 uniqueItems: true title: 'Array of Types' 'default': ['string'] }] allOf: {$ref: '#/definitions/schemaArray'} anyOf: {$ref: '#/definitions/schemaArray'} oneOf: {$ref: '#/definitions/schemaArray'} not: {$ref: '#'} dependencies: exclusiveMaximum: ['maximum'] exclusiveMinimum: ['minimum'] 'default': {}