{
	"id": "Permit.json",
	"title": "Permit",
	"description": "A permit issued by an organization, e.g. a parking pass.",
	"media": {"type": "application/json;profile=http://schema.org/Permit"},
	"allOf": [{"$ref": "Thing.json"}, {"$ref": "Intangible.json"}],
	"type": "object",
	"properties": {
		"issuedBy": {"$ref": "Organization.json#/definitions/possibleRef"},
		"issuedThrough": {"$ref": "Service.json#/definitions/possibleRef"},
		"permitAudience": {"$ref": "Audience.json#/definitions/possibleRef"},
		"validFor": {"$ref": "Duration.json#/definitions/possibleRef"},
		"validFrom": {"$ref": "#/definitions/validFrom"},
		"validIn": {"$ref": "AdministrativeArea.json#/definitions/possibleRef"},
		"validUntil": {"$ref": "#/definitions/validUntil"}
	},
	"definitions": {
		"array": {
			"type": "array",
			"items": {"$ref": "#"}
		},
		"possibleRef": {
			"oneOf": [
				{"$ref": "#"},
				{
					"type": "string",
					"format": "uri",
					"links": [{
						"rel": "full",
						"href": "{+$}"
					}]
				}
			]
		},
		"possibleRefArray": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/possibleRef"}
				},
				{
					"type": "string",
					"format": "uri",
					"links": [{
						"rel": "full",
						"href": "{+$}"
					}]
				}
			]
		},
		"validFrom": {
			"title": "Valid From",
			"description": "The date when the item becomes valid.",
			"anyOf": [
				{
					"type": "string",
					"format": "date"
				},
				{
					"type": "string",
					"format": "date-time"
				}
			]
		},
		"validUntil": {
			"title": "Valid Until",
			"description": "The date when the item is no longer valid.",
			"type": "string",
			"format": "date"
		}
	}
}