{
    "$schema": "http://json-schema.org/draft-07/schema",
    "$id": "https://burrito.bible/schema/identification.schema.json",
    "$$target": "identification.schema.json",
    "title": "Identification",
    "type": "object",
    "description": "Identification section.",
    "definitions": {
        "revisionString": {
            "type": "string",
            "pattern": "^[0-9A-Za-z]([0-9A-Za-z_.:\\-]{0,62}[0-9A-Za-z])?$"
        }
    },
    "properties": {
        "name": {
            "$ref": "common.schema.json#/definitions/localizedText"
        },
        "description": {
            "$ref": "common.schema.json#/definitions/localizedText"
        },
        "abbreviation": {
            "$ref": "common.schema.json#/definitions/localizedText"
        },
        "primary": {
            "type": "object",
            "additionalProperties": {
                "type": "object",
                "additionalProperties": {
                    "type": "object",
                    "revision": {
                        "$ref": "common.schema.json#/definitions/revisionString"
                    },
                    "timestamp": {
                        "$ref": "common.schema.json#/definitions/timestamp"
                    },
                    "required": ["revision", "timestamp"]
                }
            },
            "minProperties": 1,
            "maxProperties": 1,
            "description": "Contains the primary authority and identification information."
        },
        "upstream": {
            "type": "object",
            "additionalProperties": {
                "type": "array",
                "items": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "object",
                        "revision": {
                            "$ref": "common.schema.json#/definitions/revisionString"
                        },
                        "timestamp": {
                            "$ref": "common.schema.json#/definitions/timestamp"
                        },
                        "required": ["revision", "timestamp"]
                    }
                }
            },
            "description": "Contains the upstream authority and identification information."
        }
    },
    "required": ["name", "primary"],
    "additionalProperties": false
}
