{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://schema.twindev.org/documents/DocumentAttestation",
    "title": "DocumentAttestation",
    "description": "Interface describing a document attestation.",
    "type": "object",
    "properties": {
        "@context": {
            "type": "array",
            "prefixItems": [
                {
                    "const": "https://schema.org"
                },
                {
                    "const": "https://schema.twindev.org/documents/"
                },
                {
                    "const": "https://schema.twindev.org/common/"
                }
            ],
            "items": false,
            "minItems": 3,
            "maxItems": 3,
            "description": "JSON-LD Context."
        },
        "type": {
            "const": "DocumentAttestation",
            "description": "JSON-LD Type."
        },
        "documentId": {
            "type": "string",
            "description": "The id of the document."
        },
        "documentCode": {
            "$ref": "https://schema.twindev.org/unece/UneceDocumentCodeList",
            "description": "The code for the document type."
        },
        "documentRevision": {
            "type": "number",
            "description": "The revision of the document as a 0 based index."
        },
        "dateCreated": {
            "type": "string",
            "description": "The date/time of when the document was created."
        },
        "integrity": {
            "type": "string",
            "description": "The integrity of the document being attested."
        }
    },
    "required": [
        "@context",
        "type",
        "documentId",
        "documentCode",
        "documentRevision",
        "dateCreated",
        "integrity"
    ]
}
