{
	"id": "ActionAccessSpecification.json",
	"title": "Action Access Specification",
	"description": "A set of requirements that a must be fulfilled in order to perform an Action.",
	"media": {"type": "application/json;profile=http://schema.org/ActionAccessSpecification"},
	"allOf": [{"$ref": "Thing.json"}, {"$ref": "Intangible.json"}],
	"type": "object",
	"properties": {
		"availabilityEnds": {"$ref": "#/definitions/availabilityEnds"},
		"availabilityStarts": {"$ref": "#/definitions/availabilityStarts"},
		"category": {
			"oneOf": [
				{
					"type": "array",
					"items": {"$ref": "#/definitions/category"}
				},
				{"$ref": "#/definitions/category"}
			]
		},
		"eligibleRegion": {"$ref": "#/definitions/eligibleRegion"},
		"expectsAcceptanceOf": {"$ref": "Offer.json#/definitions/possibleRefArray"},
		"ineligibleRegion": {"$ref": "#/definitions/ineligibleRegion"},
		"requiresSubscription": {"$ref": "#/definitions/requiresSubscription"}
	},
	"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": "{+$}"
					}]
				}
			]
		},
		"availabilityEnds": {
			"title": "Availability Ends",
			"description": "The end of the availability of the product or service included in the offer.",
			"anyOf": [
				{
					"type": "string",
					"format": "date"
				},
				{
					"type": "string",
					"format": "date-time"
				},
				{
					"type": "string",
					"format": "time"
				}
			]
		},
		"availabilityStarts": {
			"title": "Availability Starts",
			"description": "The beginning of the availability of the product or service included in the offer.",
			"anyOf": [
				{
					"type": "string",
					"format": "date"
				},
				{
					"type": "string",
					"format": "date-time"
				},
				{
					"type": "string",
					"format": "time"
				}
			]
		},
		"category": {
			"title": "Category",
			"description": "A category for the item. Greater signs or slashes can be used to informally indicate a category hierarchy.",
			"anyOf": [{"type": "string"}, {"$ref": "PhysicalActivityCategory.json#/definitions/possibleRef"}, {"$ref": "Thing.json#/definitions/possibleRef"}]
		},
		"eligibleRegion": {
			"title": "Eligible Region",
			"description": "The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is valid.\n\nSee also ineligibleRegion.",
			"anyOf": [{"type": "string"}, {"$ref": "GeoShape.json#/definitions/possibleRef"}, {"$ref": "Place.json#/definitions/possibleRef"}]
		},
		"ineligibleRegion": {
			"title": "Ineligible Region",
			"description": "The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, the place, or the GeoShape for the geo-political region(s) for which the offer or delivery charge specification is not valid, e.g. a region where the transaction is not allowed.\n\nSee also eligibleRegion.",
			"anyOf": [{"type": "string"}, {"$ref": "GeoShape.json#/definitions/possibleRef"}, {"$ref": "Place.json#/definitions/possibleRef"}]
		},
		"requiresSubscription": {
			"title": "Requires Subscription",
			"description": "Indicates if use of the media require a subscription  (either paid or free). Allowed values are true or false (note that an earlier version had 'yes', 'no').",
			"anyOf": [{"type": "boolean"}, {"$ref": "MediaSubscription.json#/definitions/possibleRef"}]
		}
	}
}