{
	"id": "ParcelDelivery.json",
	"title": "Parcel Delivery",
	"description": "The delivery of a parcel either via the postal service or a commercial service.",
	"media": {"type": "application/json;profile=http://schema.org/ParcelDelivery"},
	"allOf": [{"$ref": "Thing.json"}, {"$ref": "Intangible.json"}],
	"type": "object",
	"properties": {
		"deliveryAddress": {"$ref": "PostalAddress.json#/definitions/possibleRef"},
		"deliveryStatus": {"$ref": "DeliveryEvent.json#/definitions/possibleRefArray"},
		"expectedArrivalFrom": {"$ref": "#/definitions/expectedArrivalFrom"},
		"expectedArrivalUntil": {"$ref": "#/definitions/expectedArrivalUntil"},
		"hasDeliveryMethod": {"$ref": "DeliveryMethod.json#/definitions/possibleRef"},
		"itemShipped": {"$ref": "Product.json#/definitions/possibleRefArray"},
		"originAddress": {"$ref": "PostalAddress.json#/definitions/possibleRef"},
		"provider": {"$ref": "#/definitions/provider"},
		"trackingNumber": {"$ref": "#/definitions/trackingNumber"},
		"trackingUrl": {
			"type": "string",
			"format": "uri"
		}
	},
	"links": [{
		"rel": "http://schema.org/trackingUrl",
		"href": "{+trackingUrl}"
	}],
	"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": "{+$}"
					}]
				}
			]
		},
		"expectedArrivalFrom": {
			"title": "Expected Arrival From",
			"description": "The earliest date the package may arrive.",
			"anyOf": [
				{
					"type": "string",
					"format": "date"
				},
				{
					"type": "string",
					"format": "date-time"
				}
			]
		},
		"expectedArrivalUntil": {
			"title": "Expected Arrival Until",
			"description": "The latest date the package may arrive.",
			"anyOf": [
				{
					"type": "string",
					"format": "date"
				},
				{
					"type": "string",
					"format": "date-time"
				}
			]
		},
		"provider": {
			"title": "Provider",
			"description": "The service provider, service operator, or service performer; the goods producer. Another party (a seller) may offer those services or goods on behalf of the provider. A provider may also serve as the seller. Supersedes carrier.",
			"anyOf": [{"$ref": "Organization.json#/definitions/possibleRef"}, {"$ref": "Person.json#/definitions/possibleRef"}]
		},
		"trackingNumber": {
			"title": "Tracking Number",
			"description": "Shipper tracking number.",
			"type": "string"
		}
	}
}