{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"$id": "https://schema.twindev.org/gs1-epcis/EpcisObjectEvent",
	"title": "EpcisObjectEvent",
	"description": "EPCIS 2.0 ObjectEvent describing one or more objects (instance- or class-level)\nobserved at a point in the business process.",
	"type": "object",
	"properties": {
		"type": {
			"const": "ObjectEvent",
			"description": "Fixed to ObjectEvent."
		},
		"epcList": {
			"type": "array",
			"items": {
				"type": "string"
			},
			"description": "(Optional) Unordered list of one or more EPCs naming specific objects to which\nthe event pertained."
		},
		"quantityList": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/gs1-epcis/EpcisQuantity"
			},
			"description": "Unordered list of one or more QuantityElements identifying contained objects at\nthe class level."
		},
		"action": {
			"$ref": "https://schema.twindev.org/gs1-epcis/EpcisActionTypes",
			"description": "How this event relates to the lifecycle of the EPCs named in this event."
		},
		"bizStep": {
			"anyOf": [
				{
					"$ref": "https://schema.twindev.org/gs1-epcis/EpcisBizStepTypes"
				},
				{
					"type": "string"
				}
			],
			"description": "(Optional) The business step of which this event was a part."
		},
		"disposition": {
			"anyOf": [
				{
					"$ref": "https://schema.twindev.org/gs1-epcis/EpcisDispositionTypes"
				},
				{
					"type": "string"
				}
			],
			"description": "(Optional) The business condition of the objects associated with the EPCs,\npresumed to hold true until contradicted by a subsequent event."
		},
		"persistentDisposition": {
			"$ref": "https://schema.twindev.org/gs1-epcis/EpcisPersistentDisposition",
			"description": "Persistent disposition."
		},
		"readPoint": {
			"$ref": "https://schema.twindev.org/gs1-epcis/EpcisLocation",
			"description": "(Optional) The read point at which the event took place."
		},
		"bizLocation": {
			"$ref": "https://schema.twindev.org/gs1-epcis/EpcisLocation",
			"description": "(Optional) The business location where the objects associated with the EPCs may\nbe found, until contradicted by a subsequent event."
		},
		"bizTransactionList": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/gs1-epcis/EpcisBizTransaction"
			},
			"description": "(Optional) Unordered list of business transactions that define the context of\nthis event."
		},
		"sourceList": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/gs1-epcis/EpcisSource"
			},
			"description": "(Optional) Unordered list of Source elements that provide context about the\noriginating endpoint of a business transfer of which this event is a part."
		},
		"destinationList": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/gs1-epcis/EpcisDestination"
			},
			"description": "(Optional) Unordered list of Destination elements that provide context about the\nterminating endpoint of a business transfer of which this event is a part."
		},
		"sensorElementList": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/gs1-epcis/EpcisSensorElement"
			},
			"description": "(Optional) Connects event to one or more SensorElements."
		},
		"ilmd": {
			"$ref": "https://schema.twindev.org/gs1-epcis/EpcisIlmd",
			"description": "(Optional) Instance/Lot master data that describes the objects created during\nthis event."
		}
	},
	"required": ["type", "action"],
	"allOf": [
		{
			"$ref": "https://schema.twindev.org/gs1-epcis/EpcisEvent"
		}
	]
}
