{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "$id": "https://dscsagovernance.org/dscsa-trace-message-schemas/pdg-dscsa-ti-response-v2.0.1.json",
    "title": "PDG DSCSA TI Response Schema",
    "description": "Defines responses for requests for DSCSA Transaction Information and Ownership Information.",
    "type": "object",
    "properties": {
        "tiResponse": {
            "properties": {
                "tracingSchemaSetVersion": {
                    "$ref": "#/definitions/tracingSchemaSetVersionType",
                    "$comment": "The schema version as published by PDG."
                },
                "tiResponseAuditReferences": {
                    "type": "object",
                    "properties": {
                        "tiResponseID": {
                            "$ref": "#/definitions/uuidType",
                            "$comment": "This is a unique ID you have assigned to this message.  The receiver of the response can reference this ID in communications."
                        },
                        "tiRequestID": {
                            "$ref": "#/definitions/uuidType",
                            "$comment": "This is a unique ID provided by the Requester in the TI Request message.  Including it in the TI Response allows the Requestor to match responses to their request."
                        },
                        "tiRequesterInvestigationID": {
                            "$ref": "#/definitions/investigationIDType",
                            "$comment": "This is a unique ID the Requester provided in their TI Request message.  "
                        },
                        "responder3911IncidentNumberList": {
                            "$ref": "#/definitions/3911IncidentListType",
                            "$comment": "List of 3911s known by the responder associated with the requested products."
                        },
                        "tiResponseTimestamp": {
                            "$ref": "#/definitions/timestampType",
                            "$comment": "This is the date and time the response message was created. "
                        }
                    },
                    "required": [
                        "tiResponseID",
                        "tiRequestID",
                        "tiResponseTimestamp"
                    ],
                    "$comment": "Stores audit trail details related to the response."
                },
                "tiRespondingPartyInformation": {
                    "type": "object",
                    "required": [
                        "contactInformation",
                        "callbackAddress"
                    ],
                    "properties": {
                        "dscsaCredentialPresentation": {
                            "$ref": "#/definitions/dscsaCredentialPresentationType",
                            "$comment": "The ATP, ATP-Equivalent or DSCSA Authority credential."
                        },
                        "contactInformation": {
                            "$ref": "#/definitions/contactInformationType",
                            "$comment": "Information to aid the Requester or Responder in contacting the other party in regard to the Request or Response."
                        },
                        "responderGLN": {
                            "$ref": "#/definitions/glnType",
                            "$comment": "The GS1 Global Location Number of your organization."
                        },
                        "callbackAddress": {
                            "$ref": "#/definitions/callbackAddressType",
                            "$comment": "The methods and addresses where the responder is to send the TI Response message or where the requester can contact is to send exception information."
                        }
                    },
                    "$comment": "Collects details about the entity responding to the trace request."
                },
                "tiResponseAdditionalInformation": {
                    "type": "object",
                    "properties": {
                        "additionalInformationLink": {
                            "type": "array",
                            "items": {"$ref": "#/definitions/additionalInformationLinkType"},
                            "$comment": "Lists the addresses to documents or files that are related to this response."
                        },
                        "additionalInformationBase64": {
                            "type": "array",
                            "items": {"$ref": "#/definitions/additionalInformationBase64Type"},
                            "$comment": "Encodes (in Base 64) document or files that are relevant to this request."
                        }
                    },
                    "$comment": "Allows for the inclusion of any supplementary information regarding the response."
                },
                "tiRequestResponsesInfo": {
                    "properties": {
                        "tiRequestResponses": {
                            "type": "array",
                            "items": {
                                "required": ["individualRequest"],
                                "$comment": "repeats for each Product Identifier/Serial or Lot Identifier pair that matches the results of the request.  ",
                                "type": "object",
                                "properties": {
                                    "individualRequest": {
                                        "type": "object",
                                        "properties": {
                                            "requestLineNumber": {"type": "number"},
                                            "productID": {
                                                "type": "object",
                                                "properties": {
                                                    "gtin": {"$ref": "#/definitions/gtinType"},
                                                    "ndc": {
                                                        "$ref": "#/definitions/ndcType",
                                                        "$comment": "The FDA National Drug Code. Conditional based on Request Product ID choice (GTIN or NDC)."
                                                    }
                                                },
                                                "oneOf": [
                                                    {
                                                        "required": ["gtin"]
                                                    },
                                                    {
                                                        "required": ["ndc"]
                                                    }
                                                ]
                                            },
                                            "serialNumberOrLotNumber": {
                                                "type": "object",
                                                "properties": {
                                                    "serialNumber": {"$ref": "#/definitions/serialNumberType"},
                                                    "lotNumber": {
                                                        "$ref": "#/definitions/lotNumberType",
                                                        "$comment": "The Lot number assigned by the Manufacturer or Repackager found in the original Transaction Information."
                                                    }
                                                },
                                                "oneOf": [
                                                    {
                                                        "required": ["serialNumber"]
                                                    },
                                                    {
                                                        "required": ["lotNumber"]
                                                    }
                                                ]
                                            },
                                            "responseTypeRequested": {
                                                "type": "string",
                                                "enum": [
                                                    "Transaction Information",
                                                    "All Known Owners",
                                                    "Last Known Owner"
                                                ]
                                            }
                                        },
                                        "required": [
                                            "requestLineNumber",
                                            "productID",
                                            "serialNumberOrLotNumber",
                                            "responseTypeRequested"
                                        ],
                                        "$comment": "A TI request message may contain a number of individual requests for TI on individual drug packages or Lots (DSCSA Authorities only). Each individual request may result in many responses."
                                    },
                                    "responsesToRequest": {
                                        "type": "object",
                                        "properties": {
                                            "transactionInformationResponses": {
                                                "$ref": "#/definitions/transactionInformationResponses",
                                                "$comment": "If the Requester requested Transaction Information, the Responder provides the Transaction Information in this section."
                                            },
                                            "ownershipInformationResponses": {
                                                "$ref": "#/definitions/ownershipInformationResponses",
                                                "$comment": "If the Requester requested all known owners or last known owners, the Responder provides one or more owner information and shipment dates (to sequence the ownership)."
                                            }
                                        },
                                        "$comment": "This object holds response to a particular request (identified by line number)."
                                    },
                                    "requestLineNumberMessage": {
                                        "$ref": "#/definitions/requestResponseMessageType",
                                        "$comment": "This is a free form text where the Responder can add relavant information about the line number request."
                                    },
                                    "responseLineNumberAdditionalInformation": {
                                        "type": "object",
                                        "properties": {
                                            "additionalInformationLink": {
                                                "type": "array",
                                                "items": {"$ref": "#/definitions/additionalInformationLinkType"},
                                                "$comment": "Lists the addresses to documents or files that are related to this request."
                                            },
                                            "additionalInformationBase64": {
                                                "type": "array",
                                                "items": {"$ref": "#/definitions/additionalInformationBase64Type"},
                                                "$comment": "Encodes (in Base 64) document or files that are relevant to this request."
                                            }
                                        },
                                        "$comment": "Provide links to or incorporates additional documents."
                                    }
                                },
                                "if": {
                                    "properties": {
                                        "individualRequest": {
                                            "type": "object",
                                            "properties": {
                                                "responseTypeRequested": {"const": "Transaction Information"}
                                            },
                                            "required": ["responseTypeRequested"]
                                        }
                                    }
                                },
                                "then": {
                                    "properties": {
                                        "responsesToRequest": {
                                            "type": "object",
                                            "if": {
                                                "properties": {}
                                            },
                                            "then": {
                                                "required": ["transactionInformationResponses"]
                                            }
                                        }
                                    }
                                },
                                "else": {
                                    "if": {
                                        "properties": {
                                            "individualRequest": {
                                                "type": "object",
                                                "properties": {
                                                    "responseTypeRequested": {
                                                        "enum": [
                                                            "All Known Owners",
                                                            "Last Known Owner"
                                                        ]
                                                    }
                                                },
                                                "required": ["responseTypeRequested"]
                                            }
                                        }
                                    },
                                    "then": {
                                        "properties": {
                                            "responsesToRequest": {
                                                "type": "object",
                                                "if": {
                                                    "properties": {}
                                                },
                                                "then": {
                                                    "required": ["ownershipInformationResponses"]
                                                }
                                            }
                                        }
                                    }
                                },
                                "oneOf": [
                                    {
                                        "required": ["responsesToRequest"]
                                    },
                                    {
                                        "required": ["requestLineNumberMessage"]
                                    }
                                ]
                            },
                            "minItems": 1,
                            "$comment": "Documents the message sent as a response to the trace request."
                        },
                        "responseMessage": {
                            "$ref": "#/definitions/responseMessageType",
                            "$comment": "Free form text regarding the trace request set."
                        }
                    },
                    "oneOf": [
                        {
                            "required": ["tiRequestResponses"]
                        },
                        {
                            "required": ["responseMessage"]
                        }
                    ],
                    "$comment": "Documents the message sent as a response to the trace request set."
                }
            },
            "type": "object",
            "required": [
                "tracingSchemaSetVersion",
                "tiResponseAuditReferences",
                "tiRespondingPartyInformation"
            ],
            "$comment": "Documents the message sent as a response to a trace request set."
        }
    },
    "definitions": {
        "3911IncidentListType": {
            "type": "array",
            "minItems": 0,
            "items": {"type": "string"},
            "$comment": "List of 3911 Incident number(s) are provided if assigned. The 3911 Incident Number(s) assigned by the FDA associated with the investigation. Responders provide 3911 Incident Number(s) they know and do not repeat 3911 Incident Number(s) that the Requester may have included in the TI Request."
        },
        "addressType": {
            "type": "object",
            "properties": {
                "streetAddress": {
                    "type": "string",
                    "examples": ["21 2nd Street"],
                    "default": ""
                },
                "city": {
                    "type": "string",
                    "examples": ["New York"],
                    "default": ""
                },
                "state": {
                    "type": "string",
                    "examples": ["NY"],
                    "default": ""
                },
                "postalCode": {
                    "type": "string",
                    "examples": ["10021-3100"],
                    "default": ""
                },
                "countryCode": {
                    "type": "string",
                    "$comment": "The country using the standard two-letter abbreviation specified in ISO 3166-1 Alpha-2 list of 2-letter country codes",
                    "examples": ["US"],
                    "maxLength": 2,
                    "minLength": 2
                }
            },
            "required": [
                "streetAddress",
                "city",
                "state",
                "postalCode",
                "countryCode"
            ],
            "$comment": "Standard postal address"
        },
        "additionalInformationBase64Type": {
            "type": "string",
            "contentEncoding": "base64",
            "description": "This property can hold base64 encoded data of various image and document formats (e.g., PNG, JPG, PDF)."
        },
        "additionalInformationLinkType": {
            "type": "string",
            "format": "uri"
        },
        "apiType": {
            "type": "string",
            "format": "uri",
            "pattern": "^(https?|wss?|ftp)://[^\\s/$.?#].[^\\s]*$"
        },
        "callbackAddressType": {
            "type": "object",
            "properties": {
                "apiCallbackAddress": {
                    "$ref": "#/definitions/apiType",
                    "$comment": "The URI address where the Requester can alert the Responder of Exceptions found in the TI Response (possible future use)."
                },
                "emailCallbackAddress": {
                    "$ref": "#/definitions/emailType",
                    "$comment": "The email address where the Requester can alert the Responder of Exceptions found in the TI Response."
                }
            },
            "$comment": "The methods and addresses where the responder is to send the TI Response message or where the requester can contact is to send exception information.",
            "required": ["emailCallbackAddress"]
        },
        "companyInformationType": {
            "type": "object",
            "properties": {
                "gln": {
                    "$ref": "#/definitions/glnType",
                    "$comment": "The GS1 Global Location Number (GLN) as recorded in the TI record. See Implementation Guideline: Applying GS1 Standards for DSCSA and Traceability."
                },
                "companyName": {"$ref": "#/definitions/nameValueType"},
                "companyAddress": {"$ref": "#/definitions/addressType"},
                "tiRequestConnectivityInformation": {"$ref": "#/definitions/connectivityInformationType"}
            },
            "required": [
                "gln",
                "companyName",
                "companyAddress",
                "tiRequestConnectivityInformation"
            ],
            "$comment": "Information identifying a company recorded in the TI and their connectivity information (used by the Requester to submit a TI Request to them). This can be the seller, buyer or drop ship buyer."
        },
        "connectivityInformationType": {
            "type": "object",
            "properties": {
                "connectivityMethod": {
                    "type": "object",
                    "$comment": "includes Connectivity options by email or URI or both",
                    "properties": {
                        "emailConnectivity": {"$ref": "#/definitions/emailType"},
                        "uriConnectivity": {"$ref": "#/definitions/uriType"}
                    },
                    "anyOf": [
                        {
                            "required": ["emailConnectivity"]
                        },
                        {
                            "required": ["URIConnectivity"]
                        }
                    ]
                }
            },
            "required": ["connectivityMethod"]
        },
        "contactInformationType": {
            "properties": {
                "personOrDepartmentName": {
                    "$ref": "#/definitions/nameValueType",
                    "$comment": "Part of contactInformation. The person or Department that can be contacted regarding the Request or Response."
                },
                "organizationName": {
                    "$ref": "#/definitions/nameValueType",
                    "$comment": "Name of organization requesting TI or responding to a request."
                },
                "contactMethod": {
                    "type": "object",
                    "$comment": "Phone number or email address that the Requester or Responder can be contacted with.",
                    "properties": {
                        "phone": {
                            "$ref": "#/definitions/phoneType",
                            "$comment": "The phone number of the Requester or Responder."
                        },
                        "email": {"$ref": "#/definitions/emailType"}
                    },
                    "anyOf": [
                        {
                            "required": ["phone"]
                        },
                        {
                            "required": ["email"]
                        }
                    ]
                }
            },
            "type": "object",
            "required": [
                "personOrDepartmentName",
                "organizationName",
                "contactMethod"
            ],
            "$comment": "Information to aid the Requester or Responder in contacting the other party in regard to the Request or Response."
        },
        "dateType": {
            "type": "string",
            "maxLength": 6,
            "minLength": 6,
            "pattern": "^\\d{6}$"
        },
        "directPurchaseStatementType": {
            "type": "string",
            "$comment": "The direct purchase statement as recorded in the TI."
        },
        "dropShipIndicatorType": {
            "type": "boolean",
            "enum": [
                true,
                false
            ],
            "default": false,
            "$comment": "True if this TI was the result of a drop shipment, False if not."
        },
        "drugNameType": {"type": "string"},
        "dscsaCredentialPresentationType": {
            "type": "object",
            "properties": {
                "dscsaATPCredentialPresentation": {
                    "type": "string",
                    "format": "jwt"
                },
                "dscsaATP-EquivalentCredentialPresentation": {
                    "type": "string",
                    "format": "jwt"
                },
                "dscsaAuthorityPresentation": {
                    "type": "string",
                    "format": "jwt"
                }
            },
            "oneOf": [
                {
                    "required": ["dscsaATPCredentialPresentation"]
                },
                {
                    "required": ["dscsaATP-EquivalentCredentialPresentation"]
                },
                {
                    "required": ["dscsaAuthorityPresentation"]
                }
            ],
            "$comment": "Requester or Responder signed presentation of an ATP, ATP-Equivalent or DSCSA Authority credential. See latest OCI Schema Version."
        },
        "emailType": {
            "type": "string",
            "format": "email"
        },
        "glnType": {
            "type": "string",
            "minLength": 13,
            "pattern": "^\\d{13}$",
            "maxLength": 13,
            "$comment": "The GS1 Global Location Number (GLN) as recorded in the TI record. See Implementation Guideline: Applying GS1 Standards for DSCSA and Traceability."
        },
        "gtinType": {
            "type": "string",
            "minLength": 14,
            "pattern": "^\\d{14}$",
            "maxLength": 14,
            "$comment": "The GS1 Global Trade Item Number (GTIN) identifying the product. See Implementation Guideline: Applying GS1 Standards for DSCSA and Traceability Conditional based on Product ID choice (GTIN or NDC)."
        },
        "investigationIDType": {
            "type": "string",
            "$comment": "Identifier created by Requester to group and archive requests and their associated responses.  Recommend for Requester to assign unique idenfier and consider use of UUID or unique key combinations of RequestID + CaseID + Requester."
        },
        "lotNumberType": {
            "type": "string",
            "minLength": 1,
            "maxLength": 20,
            "$comment": "The Lot number assigned by the Manufacturer or Repackager found in the original Transaction Information."
        },
        "nameValueType": {"type": "string"},
        "ndcType": {
            "type": "string",
            "oneOf": [
                {
                    "pattern": "^[0-9]{4}-[0-9]{4}-[0-9]{2}$",
                    "$comment": "4-4-2"
                },
                {
                    "pattern": "^[0-9]{5}-[0-9]{3}-[0-9]{2}$",
                    "$comment": "5-3-2"
                },
                {
                    "pattern": "^[0-9]{5}-[0-9]{4}-[0-9]{1}$",
                    "$comment": "5-4-1"
                },
                {
                    "pattern": "^[0-9]{6}-[0-9]{4}-[0-9]{2}$",
                    "$comment": "6-4-2 (future)"
                }
            ],
            "$comment": "The FDA National Drug Code. Conditional based on Request Product ID choice (GTIN or NDC)."
        },
        "ownershipInformationResponses": {
            "items": {
                "properties": {
                    "gtin": {"$ref": "#/definitions/gtinType"},
                    "ndc": {"$ref": "#/definitions/ndcType"},
                    "serialNumber": {"$ref": "#/definitions/serialNumberType"},
                    "knownOwnerInformation": {
                        "$ref": "#/definitions/companyInformationType",
                        "$comment": "Information identifying the company recorded in the TI and their connectivity information (used by the Requester to submit a TI Request to them)."
                    },
                    "ownerInformationNotes": {
                        "type": "string",
                        "$comment": "Used by the Responder to provide additional context to the ownership information provided."
                    }
                },
                "required": [
                    "gtin",
                    "ndc",
                    "serialNumber",
                    "knownOwnerInformation"
                ],
                "type": "object"
            },
            "type": "array",
            "minItems": 1
        },
        "phoneType": {
            "type": "string",
            "$comment": "The phone number of the Requester or Responder."
        },
        "productContainerSizeType": {
            "type": "number",
            "minimum": 1,
            "$comment": "The containerSize of the drug as recorded in the TI."
        },
        "productDataType": {
            "type": "object",
            "properties": {
                "gtin": {"$ref": "#/definitions/gtinType"},
                "ndc": {"$ref": "#/definitions/ndcType"},
                "drugName": {
                    "$ref": "#/definitions/productNameType",
                    "$comment": "The name of the drug as recorded in the TI record."
                },
                "strength": {"$ref": "#/definitions/productStrengthType"},
                "dosageForm": {
                    "$ref": "#/definitions/productDosageFormType",
                    "$comment": "The dosage form of the drug as recorded in the TI."
                },
                "containerSize": {
                    "$ref": "#/definitions/productContainerSizeType",
                    "$comment": "The containerSize of the drug as recorded in the TI."
                },
                "numberOfContainers": {
                    "$ref": "#/definitions/productNumberOfContainersType",
                    "$comment": "As the response is at an individual SNI level, this attribute is always \"1\""
                }
            },
            "required": [
                "gtin",
                "ndc",
                "drugName",
                "strength",
                "dosageForm",
                "containerSize",
                "numberOfContainers"
            ],
            "$comment": "Information about the drug product as recorded in the TI."
        },
        "productDosageFormType": {"type": "string"},
        "productNameType": {"$ref": "#/definitions/nameValueType"},
        "productNumberOfContainersType": {
            "type": "number",
            "minimum": 1
        },
        "productProductionDataType": {
            "properties": {
                "lotNumber": {"$ref": "#/definitions/lotNumberType"},
                "serialNumber": {"$ref": "#/definitions/serialNumberType"},
                "expirationDate": {"$ref": "#/definitions/dateType"}
            },
            "required": [
                "lotNumber",
                "expirationDate",
                "serialNumber"
            ],
            "type": "object"
        },
        "productStrengthType": {"type": "string"},
        "requestResponseMessageType": {
            "properties": {
                "requestResponseMessageCode": {"$ref": "#/definitions/requestResponseItemMessageCodeType"},
                "requestResponseItemMessageDescription": {
                    "type": "string",
                    "maxLength": 250
                }
            },
            "required": [
                "requestResponseMessageCode",
                "requestResponseItemMessageDescription"
            ],
            "type": "object"
        },
        "requestResponseMessageCodeType": {
            "enum": [
                "RM-001",
                "RM-002",
                "RM-003",
                "RM-004"
            ],
            "$comment": "RM-001: Credential verification failed, RM-002: Request parameter error, RM-003: Compliance audit Request Received, RM-004: Request schema verification failed ",
            "type": "string"
        },
        "requestResponseItemMessageCodeType": {
            "enum": [
                "RL-001",
                "RL-002",
                "RL-003",
                "RL-004",
                "RL-005",
                "RL-006"
            ],
            "$comment": "RL-001 Request Closed, RL-002: No TI found for the Request, RL-003: Response Delayed, RL-004: Request addressed via your supplied Contact Information, RL-005: Request GTIN, NDC, Lot Number or Serial Number not formatted correctly., RL-006: Response includes an Intracompany Transfer. ",
            "type": "string"
        },
        "responseMessageType": {
            "properties": {
                "responseMessageCode": {"$ref": "#/definitions/requestResponseMessageCodeType"},
                "responseMessageDescription": {
                    "type": "string",
                    "maxLength": 250
                }
            },
            "required": [
                "responseMessageCode",
                "responseMessageDescription"
            ],
            "type": "object"
        },
        "serialNumberType": {
            "type": "string",
            "maxLength": 20,
            "minLength": 1,
            "pattern": ""
        },
        "timestampType": {
            "$comment": "A timestamp to millisecond precision, with an explicit timezone indicator (+/‐hh:mm) relative to UTC",
            "type": "string",
            "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])T(2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]\\.[0-9]{3}(Z|((\\+|\\-)((0[0-9]|1[0-3]):([0-5][0-9])|14:00)))"
        },
        "tracingSchemaSetVersionType": {
            "type": "string",
            "description": "Tracing Request and Response Schema Set Version. The tracing request and tracing response schema are versioned together to ensure alignment.",
            "default": "2.0.0",
            "pattern": "^[0-9]{1}.[0-9]{1}.[0-9]{1}$"
        },
        "transactionInformationResponses": {
            "items": {
                "properties": {
                    "transactionInformationData": {
                        "type": "object",
                        "properties": {
                            "productData": {
                                "$ref": "#/definitions/productDataType",
                                "$comment": "Information about the drug product as recorded in the TI."
                            },
                            "productProductionData": {"$ref": "#/definitions/productProductionDataType"},
                            "ownershipFromInformation": {
                                "$ref": "#/definitions/companyInformationType",
                                "$comment": "Information identifying the Transfer From party recorded in the TI and their connectivity information (used by the Requester to submit a TI Request to them)."
                            },
                            "ownershipToInformation": {
                                "$ref": "#/definitions/companyInformationType",
                                "$comment": "Information identifying the Transfer To party recorded in the TI and their connectivity information (used by the Requester to submit a TI Request to them)."
                            },
                            "dropShipInfo": {
                                "type": "object",
                                "properties": {
                                    "dropShipIndicator": {
                                        "$ref": "#/definitions/dropShipIndicatorType",
                                        "default": false,
                                        "$comment": "True if this TI was the result of a drop shipment, False if not."
                                    },
                                    "dropShipToInformation": {
                                        "$ref": "#/definitions/companyInformationType",
                                        "$comment": "Information identifying the Ship To party recorded in the TI if this was a drop ship transaction and their connectivity information (used by the Requester to submit a TI Request to them)."
                                    }
                                },
                                "if": {
                                    "properties": {
                                        "dropShipIndicator": {"const": false}
                                    }
                                },
                                "then": {
                                    "not": {
                                        "required": ["dropShipToInformation"]
                                    },
                                    "properties": {
                                        "dropShipToInformation": {
                                            "not": {}
                                        }
                                    }
                                },
                                "else": {
                                    "required": ["dropShipToInformation"]
                                }
                            },
                            "poAssociatedWithTI": {
                                "type": "string",
                                "$comment": "The purchase order number as recorded in the TI."
                            },
                            "transactionStatement": {"$ref": "#/definitions/transactionStatementType"},
                            "directPurchaseStatement": {"$ref": "#/definitions/directPurchaseStatementType"},
                            "dateOfShipment": {
                                "$ref": "#/definitions/timestampType",
                                "$comment": "Will only have a Shipment Date if Shipment date was greater than 24 hours from the transaction."
                            },
                            "dateOfTransaction": {
                                "$ref": "#/definitions/timestampType",
                                "$comment": ""
                            },
                            "transactionInformationNotes": {
                                "type": "string",
                                "$comment": "Used by the Responder to provide additional context to the Transaction Information provided."
                            }
                        },
                        "required": [
                            "productData",
                            "productProductionData",
                            "ownershipFromInformation",
                            "ownershipToInformation",
                            "transactionStatement",
                            "dateOfTransaction"
                        ]
                    }
                },
                "required": ["transactionInformationData"],
                "type": "object"
            },
            "type": "array",
            "minItems": 1
        },
        "transactionStatementType": {"type": "string"},
        "uriType": {
            "type": "string",
            "format": "uri-reference"
        },
        "uuidType": {
            "type": "string",
            "pattern": "^[a-fA-F\\d]{8}-[a-fA-F\\d]{4}-4[a-fA-F\\d]{3}-[89abAB][a-fA-F\\d]{3}-[a-fA-F\\d]{12}$",
            "$comment": "Universally Unique Identifier (UUID)"
        }
    },
    "required": ["tiResponse"]
}