{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"$id": "https://schema.twindev.org/unece/UneceDocument",
	"title": "UneceDocument",
	"description": "Written, printed or electronic matter that is referenced.",
	"type": "object",
	"properties": {
		"@context": {
			"$ref": "https://schema.twindev.org/unece/UneceContextType",
			"description": "JSON-LD Context."
		},
		"type": {
			"const": "Document",
			"description": "JSON-LD Type."
		},
		"acceptablePeriod": {
			"$ref": "https://schema.twindev.org/unece/UneceSpecifiedPeriod",
			"description": "The specified period within which this referenced document may be accepted."
		},
		"acceptanceDateTime": {
			"type": "string",
			"description": "The date, time, date time, or other date time value of the acceptance of this referenced document.",
			"format": "date-time"
		},
		"attachedBinaryFile": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceBinaryFile"
			},
			"description": "A specified binary file attached to this referenced document."
		},
		"attachmentBinaryObject": {
			"type": "string",
			"description": "A binary object that is attached or otherwise appended to this referenced document."
		},
		"authenticatedOriginalIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not this referenced document is an authenticated original."
		},
		"categoryCode": {
			"type": "string",
			"description": "The code specifying the category of this referenced document."
		},
		"communicationChannelCode": {
			"$ref": "https://schema.twindev.org/unece/UneceCommunicationChannelCodeList",
			"description": "The code specifying the channel by which this referenced document is sent, such as mail, email, fax."
		},
		"contractualClause": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceClause"
			},
			"description": "A contractual clause of this referenced document."
		},
		"controlRequirementIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not this referenced document requires a control."
		},
		"copyIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not the referenced document is a copy."
		},
		"copyIssuedQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The number of copies issued of this referenced document."
		},
		"copyRequiredQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The number of copies required of this referenced document."
		},
		"creationDateTime": {
			"type": "string",
			"description": "The date, time, date time, or other date time value of the creation of this referenced document.",
			"format": "date-time"
		},
		"description": {
			"type": "string",
			"description": "A textual description for this referenced document."
		},
		"documentAmendmentPurposeCode": {
			"type": "string",
			"description": "The code specifying the purpose of an amendment to this referenced document."
		},
		"documentLanguageId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "An identifier for a language used in this referenced document."
		},
		"documentLineStatusCode": {
			"$ref": "https://schema.twindev.org/unece/UneceLineStatusCodeList",
			"description": "The code specifying the status of a line in this referenced document."
		},
		"documentStatusCode": {
			"$ref": "https://schema.twindev.org/unece/UneceDocumentStatusCodeList",
			"description": "The code specifying the status for this referenced document."
		},
		"documentType": {
			"type": "string",
			"description": "A type, expressed as text, for this referenced document."
		},
		"documentTypeCode": {
			"$ref": "https://schema.twindev.org/unece/UneceDocumentCodeList",
			"description": "The code specifying the type of referenced document."
		},
		"effectiveSpecifiedPeriod": {
			"$ref": "https://schema.twindev.org/unece/UneceSpecifiedPeriod",
			"description": "The specified period within which this referenced document is effective."
		},
		"electronicPresentationIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not this referenced document is presented in an electronic format."
		},
		"globalId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "A unique global identifier for this referenced document."
		},
		"identifier": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "A unique identifier for this referenced document."
		},
		"includedAmount": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAmountType"
			},
			"description": "A monetary value included in this referenced document."
		},
		"includedNote": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceNote"
			},
			"description": "A note included in this referenced document."
		},
		"information": {
			"type": "string",
			"description": "Information, expressed as text, for this referenced document."
		},
		"issueDateTime": {
			"type": "string",
			"description": "The formatted date or date time for the issuance of this referenced document.",
			"format": "date-time"
		},
		"issueLogisticsLocation": {
			"$ref": "https://schema.twindev.org/unece/UneceLogisticsLocation",
			"description": "The logistics related location where this referenced document has been issued."
		},
		"issuerAssignedId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique issuer assigned identifier for this referenced document."
		},
		"issuerParty": {
			"$ref": "https://schema.twindev.org/unece/UneceTradeParty",
			"description": "The trade related party that issues this referenced document."
		},
		"issuerSpecifiedInstructions": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceDocumentHandlingInstructions"
			},
			"description": "Handling instructions specified by the issuer for this referenced document."
		},
		"itemIdentificationId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique identifier of an item in this referenced document."
		},
		"lineCountNumeric": {
			"type": "string",
			"description": "The number of lines for this referenced document."
		},
		"lineId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique identifier of a line in this referenced document."
		},
		"lineItemQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The number of line items in this referenced document."
		},
		"lodgementLocation": {
			"$ref": "https://schema.twindev.org/unece/UneceLogisticsLocation",
			"description": "The logistics related location where this referenced document has been lodged."
		},
		"messageFunctionPurposeCode": {
			"$ref": "https://schema.twindev.org/unece/UneceMessageFunctionCodeList",
			"description": "The code specifying the purpose of this referenced document."
		},
		"name": {
			"type": "string",
			"description": "A name, expressed as text, for this referenced document."
		},
		"originalIssuedQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The number of originals issued of this referenced document."
		},
		"originalRequiredQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The number of originals required of this referenced document."
		},
		"pageId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The identifier of the page for this referenced document."
		},
		"previousRevisionId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "An identifier for a previous revision of this referenced document."
		},
		"processCondition": {
			"type": "string",
			"description": "A process condition, expressed as text, for this referenced document."
		},
		"processConditionCode": {
			"type": "string",
			"description": "The code specifying the process condition for this referenced document."
		},
		"proprietaryType": {
			"type": "string",
			"description": "A proprietary type, expressed as text, for this referenced document."
		},
		"receiptDateTime": {
			"type": "string",
			"description": "The date, time, date time, or other date time value for the formal receipt of this referenced document.",
			"format": "date-time"
		},
		"recipientTradeParty": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceTradeParty"
			},
			"description": "A trade related party that receives this referenced document."
		},
		"referenceDateTime": {
			"type": "string",
			"description": "The reference date or date time for this referenced document.",
			"format": "date-time"
		},
		"referenceRelationshipTypeCode": {
			"anyOf": [
				{
					"$ref": "https://schema.twindev.org/unece/UneceReferenceCodeList"
				},
				{
					"type": "string"
				}
			],
			"description": "The code specifying the type of relationship between this referenced document and another artefact, such as a\nreplacement of an original document."
		},
		"referenceTypeCode": {
			"anyOf": [
				{
					"$ref": "https://schema.twindev.org/unece/UneceReferenceCodeList"
				},
				{
					"type": "string"
				}
			],
			"description": "The code specifying the reference type of this referenced document."
		},
		"remarks": {
			"type": "string",
			"description": "A remark, expressed as text, regarding this referenced document."
		},
		"reportCountNumeric": {
			"type": "string",
			"description": "The report count for this referenced document."
		},
		"revision": {
			"type": "string",
			"description": "A revision, expressed as text, for this referenced document."
		},
		"revisionDateTime": {
			"type": "string",
			"description": "A date, time, date time or other date time value for the revision of this referenced document.",
			"format": "date-time"
		},
		"revisionId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "A unique identifier for a revision of this referenced document."
		},
		"sectionName": {
			"type": "string",
			"description": "A section name, expressed as text, for this referenced document."
		},
		"senderTradeParty": {
			"$ref": "https://schema.twindev.org/unece/UneceTradeParty",
			"description": "The trade related party that sends this referenced document."
		},
		"signatoryAuthentication": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAuthentication"
			},
			"description": "A signatory authentication for this referenced document."
		},
		"specifiedDocumentStatus": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceDocumentStatus"
			},
			"description": "Status information specified for this referenced document."
		},
		"status": {
			"type": "string",
			"description": "A status, expressed as text, for this referenced document."
		},
		"subordinateLineId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The identifier of the subordinate line of this referenced document."
		},
		"subtypeCode": {
			"type": "string",
			"description": "A code specifying a subtype of this referenced document."
		},
		"totalIssueCountNumeric": {
			"type": "string",
			"description": "The total issue count for this referenced document."
		},
		"uRIId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique Uniform Resource Identifier (URI) for this referenced document."
		},
		"validityPeriod": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceSpecifiedPeriod"
			},
			"description": "A period of validity specified for this referenced document."
		},
		"versionId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The identifier for the version of this referenced document."
		}
	},
	"required": ["type"]
}
