{
	"id": "Flight.json",
	"title": "Flight",
	"description": "An airline flight.",
	"media": {"type": "application/json;profile=http://schema.org/Flight"},
	"allOf": [{"$ref": "Thing.json"}, {"$ref": "Intangible.json"}, {"$ref": "Trip.json"}],
	"type": "object",
	"properties": {
		"aircraft": {"$ref": "#/definitions/aircraft"},
		"arrivalAirport": {"$ref": "Airport.json#/definitions/possibleRef"},
		"arrivalGate": {
			"oneOf": [
				{"$ref": "#/definitions/arrivalGate"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/arrivalGate"}
				}
			]
		},
		"arrivalTerminal": {
			"oneOf": [
				{"$ref": "#/definitions/arrivalTerminal"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/arrivalTerminal"}
				}
			]
		},
		"boardingPolicy": {"$ref": "BoardingPolicyType.json#/definitions/possibleRef"},
		"departureAirport": {"$ref": "Airport.json#/definitions/possibleRef"},
		"departureGate": {
			"oneOf": [
				{"$ref": "#/definitions/departureGate"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/departureGate"}
				}
			]
		},
		"departureTerminal": {
			"oneOf": [
				{"$ref": "#/definitions/departureTerminal"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/departureTerminal"}
				}
			]
		},
		"estimatedFlightDuration": {"$ref": "#/definitions/estimatedFlightDuration"},
		"flightDistance": {"$ref": "#/definitions/flightDistance"},
		"flightNumber": {"$ref": "#/definitions/flightNumber"},
		"mealService": {
			"oneOf": [
				{"$ref": "#/definitions/mealService"},
				{
					"type": "array",
					"items": {"$ref": "#/definitions/mealService"}
				}
			]
		},
		"seller": {"$ref": "#/definitions/seller"},
		"webCheckinTime": {"$ref": "#/definitions/webCheckinTime"}
	},
	"definitions": {
		"aircraft": {
			"title": "Aircraft",
			"description": "The kind of aircraft (e.g., \"Boeing 747\").",
			"anyOf": [{"type": "string"}, {"$ref": "Vehicle.json#/definitions/possibleRef"}]
		},
		"array": {
			"type": "array",
			"items": {"$ref": "#"}
		},
		"arrivalGate": {
			"title": "Arrival Gate",
			"description": "Identifier of the flight's arrival gate.",
			"type": "string"
		},
		"arrivalTerminal": {
			"title": "Arrival Terminal",
			"description": "Identifier of the flight's arrival terminal.",
			"type": "string"
		},
		"departureGate": {
			"title": "Departure Gate",
			"description": "Identifier of the flight's departure gate.",
			"type": "string"
		},
		"departureTerminal": {
			"title": "Departure Terminal",
			"description": "Identifier of the flight's departure terminal.",
			"type": "string"
		},
		"estimatedFlightDuration": {
			"title": "Estimated Flight Duration",
			"description": "The estimated time the flight will take.",
			"anyOf": [{"$ref": "Duration.json#/definitions/possibleRef"}, {"type": "string"}]
		},
		"flightDistance": {
			"title": "Flight Distance",
			"description": "The distance of the flight.",
			"anyOf": [{"$ref": "Distance.json#/definitions/possibleRef"}, {"type": "string"}]
		},
		"flightNumber": {
			"title": "Flight Number",
			"description": "The unique identifier for a flight including the airline IATA code. For example, if describing United flight 110, where the IATA code for United is 'UA', the flightNumber is 'UA110'.",
			"type": "string"
		},
		"mealService": {
			"title": "Meal Service",
			"description": "Description of the meals that will be provided or available for purchase.",
			"type": "string"
		},
		"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": "{+$}"
					}]
				}
			]
		},
		"seller": {
			"title": "Seller",
			"description": "An entity which offers (sells / leases / lends / loans) the services / goods.  A seller may also be a provider. Supersedes merchant, vendor.",
			"anyOf": [{"$ref": "Organization.json#/definitions/possibleRef"}, {"$ref": "Person.json#/definitions/possibleRef"}]
		},
		"webCheckinTime": {
			"title": "Web Checkin Time",
			"description": "The time when a passenger can check into the flight online.",
			"type": "string",
			"format": "date-time"
		}
	}
}