{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"$id": "https://schema.twindev.org/unece/UneceTTAnimal",
	"title": "UneceTTAnimal",
	"description": "A Track and Trace (TT) animal or a group of animals, such as those kept or raised on a farm, ranch.",
	"type": "object",
	"properties": {
		"@context": {
			"$ref": "https://schema.twindev.org/unece/UneceContextType",
			"description": "JSON-LD Context."
		},
		"type": {
			"const": "TTAnimal",
			"description": "JSON-LD Type."
		},
		"holderResponsibleParty": {
			"$ref": "https://schema.twindev.org/unece/UneceTTParty",
			"description": "The holder responsible party for this TT animal."
		},
		"relatedTTLocation": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceTTLocation"
			},
			"description": "A location related to this TT animal."
		},
		"speciesTypeCode": {
			"type": "string",
			"description": "The code specifying the type of species and subclasses of this TT animal, such as bovine, sheep or salmon."
		},
		"specifiedAnimalBatch": {
			"$ref": "https://schema.twindev.org/unece/UneceAnimalBatch",
			"description": "The animal batch specified for this TT animal."
		},
		"specifiedAnimalCertificate": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAnimalCertificate"
			},
			"description": "An animal certificate specified for this TT animal."
		},
		"specifiedAnimalHoldingEvent": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAnimalHoldingEvent"
			},
			"description": "An animal holding event specified for this TT animal."
		},
		"specifiedAnimalIdentity": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAnimalIdentity"
			},
			"description": "An animal identity specified for this TT animal."
		},
		"specifiedDelimitedPeriod": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceDelimitedPeriod"
			},
			"description": "A delimited period specified for this TT animal."
		},
		"specifiedIndividualTTAnimal": {
			"$ref": "https://schema.twindev.org/unece/UneceIndividualTTAnimal",
			"description": "The individual tracking animal specified for this TT animal."
		},
		"specifiedPeriod": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceDelimitedPeriod"
			},
			"description": "A delimited period specified for this TT animal."
		},
		"specifiedSpeciesTTAnimal": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceSpeciesTTAnimal"
			},
			"description": "A species specified for this TT animal."
		}
	},
	"required": [
		"type",
		"holderResponsibleParty",
		"speciesTypeCode",
		"specifiedAnimalHoldingEvent",
		"specifiedAnimalIdentity"
	]
}
