{
	"id": "http://json-schema.org/draft-04/schema#",
	"$schema": "http://json-schema.org/draft-04/schema#",
	"description": "Core schema meta-schema",
	"definitions":
	{
		"schemaArray":
		{
			"type": "array",
			"minItems": 1,
			"items":
			{
				"$ref": "#"
			}
		},
		"positiveInteger":
		{
			"type": "integer",
			"minimum": 0
		},
		"positiveIntegerDefault0":
		{
			"allOf":
			[
				{
					"$ref": "#/definitions/positiveInteger"
				},
				{
					"default": 0
				}
			]
		},
		"simpleTypes":
		{
			"enum":
			[
				"array",
				"boolean",
				"integer",
				"null",
				"number",
				"object",
				"string"
			]
		},
		"stringArray":
		{
			"type": "array",
			"items":
			{
				"type": "string"
			},
			"minItems": 1,
			"uniqueItems": true
		}
	},
	"type": "object",
	"properties":
	{
		"id":
		{
			"type": "string",
			"format": "uri"
		},
		"$schema":
		{
			"type": "string",
			"format": "uri"
		},
		"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"
				},
				{
					"$ref": "#"
				}
			],
			"default":
			{

			}
		},
		"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"
				},
				{
					"$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
		},
		"type":
		{
			"anyOf":
			[
				{
					"$ref": "#/definitions/simpleTypes"
				},
				{
					"type": "array",
					"items":
					{
						"$ref": "#/definitions/simpleTypes"
					},
					"minItems": 1,
					"uniqueItems": true
				}
			]
		},
		"allOf":
		{
			"$ref": "#/definitions/schemaArray"
		},
		"anyOf":
		{
			"$ref": "#/definitions/schemaArray"
		},
		"oneOf":
		{
			"$ref": "#/definitions/schemaArray"
		},
		"not":
		{
			"$ref": "#"
		}
	},
	"dependencies":
	{
		"exclusiveMaximum":
		[
			"maximum"
		],
		"exclusiveMinimum":
		[
			"minimum"
		]
	},
	"default":
	{

	}
}