{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"$id": "https://schema.twindev.org/unece/UneceExperienceProduct",
	"title": "UneceExperienceProduct",
	"description": "Any service that provides an involvement, such as an adventure experience, wellness experience, social or business\nactivity experience.",
	"type": "object",
	"properties": {
		"@context": {
			"$ref": "https://schema.twindev.org/unece/UneceContextType",
			"description": "JSON-LD Context."
		},
		"type": {
			"const": "ExperienceProduct",
			"description": "JSON-LD Type."
		},
		"applicableQuantityUnitTypeCode": {
			"type": "string",
			"description": "The code specifying the type of quantity unit applicable for this experience product."
		},
		"applicableSpecifiedNote": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceSpecifiedNote"
			},
			"description": "A note applicable for this experience product."
		},
		"brandName": {
			"type": "string",
			"description": "A brand name, expressed as text, for this experience product."
		},
		"calculatedPrice": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceTradePrice"
			},
			"description": "A calculated price for this experience product."
		},
		"categoryCode": {
			"type": "string",
			"description": "The code specifying the category of this experience product."
		},
		"certifiedPersonArrangementIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not a certified person arrangement is made for this experience product."
		},
		"description": {
			"type": "string",
			"description": "A textual description of this experience product."
		},
		"distinctiveFeature": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceSpecifiedFeature"
			},
			"description": "A distinctive feature of this experience product."
		},
		"identifier": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The identifier of this experience product."
		},
		"includedEvent": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceExperienceEvent"
			},
			"description": "An event included within this experience product."
		},
		"indemnityClause": {
			"type": "string",
			"description": "An indemnity clause, expressed as text, for this experience product."
		},
		"instruction": {
			"type": "string",
			"description": "An instruction, expressed as text, for this experience product."
		},
		"location": {
			"type": "string",
			"description": "A location, expressed as text, specified for this experience product."
		},
		"maximumUnitQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The maximum number of units of this experience product."
		},
		"minimumUnitQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The minimum number of units of this experience product."
		},
		"name": {
			"type": "string",
			"description": "A name, expressed as text, for this experience product."
		},
		"objective": {
			"type": "string",
			"description": "An objective, expressed as text, for this experience product."
		},
		"operationalPeriod": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceSpecifiedPeriod"
			},
			"description": "A operational period for this experience product."
		},
		"optionalProduct": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceExperienceProduct"
			},
			"description": "An optional product for this experience product."
		},
		"providedCertificate": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceSpecifiedCertificate"
			},
			"description": "A certificate provided for this experience product."
		},
		"providedRequirement": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceRequirement"
			},
			"description": "A requirement provided for this experience product."
		},
		"requiredReservationGuaranteeIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not this experience product requires a reservation guarantee."
		},
		"requiredUsageCondition": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceUsageCondition"
			},
			"description": "A required usage condition for this experience product."
		},
		"reservationGuarantee": {
			"type": "string",
			"description": "A reservation guarantee, expressed as text, for this experience product."
		},
		"specifiedTradeParty": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceTradeParty"
			},
			"description": "A party specified for this experience product."
		},
		"theme": {
			"type": "string",
			"description": "A theme, expressed as text, for this experience product."
		},
		"themeTypeCode": {
			"type": "string",
			"description": "The code specifying the type of theme for this experience product."
		}
	},
	"required": ["type"]
}
