{
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"$id": "https://schema.twindev.org/unece/UneceExchangedDocument",
	"title": "UneceExchangedDocument",
	"description": "A collection of data for a piece of written, printed or electronic matter that is exchanged between two or more parties.",
	"type": "object",
	"properties": {
		"@context": {
			"$ref": "https://schema.twindev.org/unece/UneceContextType",
			"description": "JSON-LD Context."
		},
		"type": {
			"const": "ExchangedDocument",
			"description": "JSON-LD Type."
		},
		"acceptanceDateTime": {
			"type": "string",
			"description": "The date, time, date time, or other date time value for the acceptance of this exchanged document.",
			"format": "date-time"
		},
		"additionalId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "An additional identifier of this exchanged document."
		},
		"agentParty": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceTradeParty"
			},
			"description": "A party representing another party for this exchanged document."
		},
		"amendmentPurpose": {
			"type": "string",
			"description": "An amendment purpose, expressed in text, for this exchanged document."
		},
		"approverSignatoryAuthentication": {
			"$ref": "https://schema.twindev.org/unece/UneceAuthentication",
			"description": "The approver signature that authenticates this exchanged document."
		},
		"attachedBinaryFile": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceBinaryFile"
			},
			"description": "A binary file attached to this exchanged document."
		},
		"attachmentBinaryObject": {
			"type": "string",
			"description": "A binary object that is attached or otherwise appended to this exchanged document."
		},
		"buyerSignatoryAuthentication": {
			"$ref": "https://schema.twindev.org/unece/UneceAuthentication",
			"description": "The buyer signature that authenticates this exchanged document."
		},
		"cancellationDateTime": {
			"type": "string",
			"description": "The date, time, date time, or other date time value of a cancellation of the exchanged document.",
			"format": "date-time"
		},
		"categoryCode": {
			"type": "string",
			"description": "The code specifying a category for this exchanged document."
		},
		"contractualClause": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceClause"
			},
			"description": "A contractual clause of this exchanged document."
		},
		"controlRequirementIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not this exchanged document has specific control requirements."
		},
		"copyIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not this exchanged document is a copy."
		},
		"copyIssuedQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The number of copies issued of this exchanged document."
		},
		"copyRequiredQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The number of copies required of this exchanged document."
		},
		"creationDateTime": {
			"type": "string",
			"description": "The date, time, date time, or other date time value of a creation of this exchanged document.",
			"format": "date-time"
		},
		"customsId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "A unique identifier, for customs purposes, for this exchanged document."
		},
		"description": {
			"type": "string",
			"description": "A textual description of this exchanged document."
		},
		"disposition": {
			"type": "string",
			"description": "A disposition, expressed as text, for this exchanged document."
		},
		"documentResponseDocumentTypeCode": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceDocumentCodeList"
			},
			"description": "A code specifying a type of response document for this exchanged document, such as a requested or required response\ndocument type."
		},
		"documentStatusCode": {
			"$ref": "https://schema.twindev.org/unece/UneceDocumentStatusCodeList",
			"description": "The code specifying the status of this exchanged document."
		},
		"documentTypeCode": {
			"$ref": "https://schema.twindev.org/unece/UneceDocumentCodeList",
			"description": "The code specifying the type of exchanged document."
		},
		"effectiveSpecifiedPeriod": {
			"$ref": "https://schema.twindev.org/unece/UneceSpecifiedPeriod",
			"description": "The specified period within which this exchanged document is effective."
		},
		"electronicPresentationIndicator": {
			"type": "boolean",
			"description": "The indication of whether or not this exchanged document is presented in an electronic format."
		},
		"exchangedDocumentAmendmentPurposeCode": {
			"type": "string",
			"description": "A code specifying a purpose of an amendment to this exchanged document."
		},
		"exchangedDocumentResponseTypeCode": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceResponseTypeCodeList"
			},
			"description": "A code specifying a type of response requested for this exchanged document."
		},
		"firstSignatoryAuthentication": {
			"$ref": "https://schema.twindev.org/unece/UneceAuthentication",
			"description": "The first or primary signature that authenticates this exchanged document."
		},
		"firstVersionIssueDateTime": {
			"type": "string",
			"description": "The date, time, date time or other date time value when the first version of this exchanged document was issued.",
			"format": "date-time"
		},
		"fourthSignatoryAuthentication": {
			"$ref": "https://schema.twindev.org/unece/UneceAuthentication",
			"description": "The fourth signature, also known as the third counter signature, that has been authenticated on this exchanged document\nindicating where appropriate the authentication party."
		},
		"globalId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique global identifier for this exchanged document."
		},
		"headerInformation": {
			"type": "string",
			"description": "Header information, expressed as text, for this exchanged document."
		},
		"identifier": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique identifier of this exchanged document."
		},
		"includedNote": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceNote"
			},
			"description": "A note included in this exchanged document."
		},
		"information": {
			"type": "string",
			"description": "Information, expressed as text, for this exchanged document."
		},
		"issueDateTime": {
			"type": "string",
			"description": "The date, time, date time or other date time value for the issuance of this exchanged document.",
			"format": "date-time"
		},
		"issueLogisticsLocation": {
			"$ref": "https://schema.twindev.org/unece/UneceLogisticsLocation",
			"description": "The location where this exchanged document has been issued."
		},
		"issuerParty": {
			"$ref": "https://schema.twindev.org/unece/UneceTradeParty",
			"description": "The party that issues this exchanged document."
		},
		"itemIdentificationId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique identifier of a specific item in this exchanged document."
		},
		"languageId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "A unique identifier for a language used in this exchanged document."
		},
		"lineCountNumeric": {
			"type": "string",
			"description": "The count of the number of lines in this exchanged document."
		},
		"lineItemQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The number of line items in this exchanged document."
		},
		"lodgementLocation": {
			"$ref": "https://schema.twindev.org/unece/UneceLogisticsLocation",
			"description": "The location where this exchanged document has been lodged."
		},
		"messageFunctionPurposeCode": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceMessageFunctionCodeList"
			},
			"description": "A code specifying the purpose of this exchanged document, such as request or reminder."
		},
		"name": {
			"type": "string",
			"description": "A name, expressed as text, of this exchanged document."
		},
		"offsetProcessingStatus": {
			"type": "string",
			"description": "A status of an offset processing, expressed as text, for this exchanged document, such as the process offsetted by this\ndocument."
		},
		"originalIssuedQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The number of originals issued of this exchanged document."
		},
		"originalRequiredQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The number of originals required of this exchanged document."
		},
		"ownerParty": {
			"$ref": "https://schema.twindev.org/unece/UneceTradeParty",
			"description": "The party that owns this exchanged document."
		},
		"pageId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique identifier of a specific page of this exchanged document."
		},
		"platformProviderParty": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceTradeParty"
			},
			"description": "A platform provider party specified for this exchanged document."
		},
		"previousRevisionId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique identifier of the previous revision of this exchanged document."
		},
		"purpose": {
			"type": "string",
			"description": "The purpose, expressed as text, of this exchanged document."
		},
		"recipientAssignedId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "A unique recipient assigned identifier for this exchanged document."
		},
		"recipientTradeParty": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceTradeParty"
			},
			"description": "A trade party that receives this exchanged document."
		},
		"referenceDocument": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceDocument"
			},
			"description": "Other documents referenced by this exchanged document."
		},
		"rejectionResponseDateTime": {
			"type": "string",
			"description": "A date, time, date time, or other date time value of a rejection response of the exchanged document.",
			"format": "date-time"
		},
		"remarks": {
			"type": "string",
			"description": "A remark, expressed as text, regarding this exchanged document."
		},
		"responseDateTime": {
			"type": "string",
			"description": "A date, time, date time, or other date time value of a response of the exchanged document.",
			"format": "date-time"
		},
		"responseReasonCode": {
			"type": "string",
			"description": "A code specifying a response reason for this exchanged document."
		},
		"revisionDateTime": {
			"type": "string",
			"description": "The date, time, date time or other date time value for the revision of this exchanged document.",
			"format": "date-time"
		},
		"revisionId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique identifier of the revision of this exchanged document."
		},
		"secondSignatoryAuthentication": {
			"$ref": "https://schema.twindev.org/unece/UneceAuthentication",
			"description": "The second signature, also known as the first counter signature, that has been authenticated on this exchanged document\nindicating where appropriate the authentication party."
		},
		"senderAssignedId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "A unique sender assigned identifier for this exchanged document."
		},
		"senderTradeParty": {
			"$ref": "https://schema.twindev.org/unece/UneceTradeParty",
			"description": "The party that sends this exchanged document."
		},
		"signatoryAuthentication": {
			"type": "array",
			"items": {
				"$ref": "https://schema.twindev.org/unece/UneceAuthentication"
			},
			"description": "A signatory document authentication for this exchanged document."
		},
		"submissionDateTime": {
			"type": "string",
			"description": "The date, time, date time or other date time value for the formal submission of this exchanged document to a receiver by\na sender.",
			"format": "date-time"
		},
		"subtypeCode": {
			"type": "string",
			"description": "The code specifying the subtype of this exchanged document."
		},
		"suffixId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "A unique suffix identifier for this exchanged document."
		},
		"summaryInformation": {
			"type": "string",
			"description": "Summary information, expressed as text, for this exchanged document."
		},
		"thirdSignatoryAuthentication": {
			"$ref": "https://schema.twindev.org/unece/UneceAuthentication",
			"description": "The third signature, also known as the second counter signature, that has been authenticated on this exchanged document\nindicating where appropriate the authentication party."
		},
		"totalPageQuantity": {
			"$ref": "https://schema.twindev.org/unece/UneceQuantityType",
			"description": "The total number of pages for this exchanged document."
		},
		"traderAssignedId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "A unique trader assigned identifier for this exchanged document."
		},
		"urgency": {
			"type": "string",
			"description": "An urgency, expressed as text, of this exchanged document."
		},
		"urgencyCode": {
			"type": "string",
			"description": "The code specifying the urgency for this exchanged document."
		},
		"versionId": {
			"anyOf": [
				{
					"type": "string"
				},
				{
					"$ref": "https://schema.twindev.org/json-ld/JsonLdValueObject"
				}
			],
			"description": "The unique identifier for the version of this exchanged document."
		}
	},
	"required": ["type"]
}
