{
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "$id": "https://branddesign.ltd/schemas/brand-evidence-v1.json",
    "title": "Brand Design Ltd. evidence register",
    "description": "Schema for a first-party provenance register that distinguishes source and verification classes without treating every source as an independent endorsement.",
    "type": "object",
    "required": [
        "$schema",
        "version",
        "dateModified",
        "subject",
        "disclosure",
        "classificationDefinitions",
        "identity",
        "experience",
        "reviewEvidence",
        "officialChannels",
        "externalProfiles",
        "publications",
        "ownedMedia",
        "research",
        "partnerships",
        "clientConfirmedCaseStudies",
        "canonicalResources"
    ],
    "properties": {
        "$schema": {
            "type": "string",
            "format": "uri"
        },
        "version": {
            "type": "string"
        },
        "dateModified": {
            "type": "string",
            "format": "date"
        },
        "subject": {
            "type": "object",
            "required": [
                "name",
                "alternateName",
                "url",
                "companyNumber"
            ],
            "properties": {
                "name": {
                    "type": "string"
                },
                "alternateName": {
                    "type": "string"
                },
                "url": {
                    "type": "string",
                    "format": "uri"
                },
                "companyNumber": {
                    "type": "string"
                }
            },
            "additionalProperties": false
        },
        "disclosure": {
            "type": "string"
        },
        "classificationDefinitions": {
            "type": "object",
            "additionalProperties": {
                "type": "string"
            }
        },
        "identity": {
            "type": "object"
        },
        "experience": {
            "type": "object"
        },
        "reviewEvidence": {
            "type": "object"
        },
        "officialChannels": {
            "type": "array",
            "items": {
                "$ref": "#/$defs/link"
            }
        },
        "externalProfiles": {
            "type": "array",
            "items": {
                "$ref": "#/$defs/classifiedLink"
            }
        },
        "publications": {
            "type": "array",
            "items": {
                "type": "object",
                "required": [
                    "name",
                    "publisher",
                    "url",
                    "evidenceClass"
                ]
            }
        },
        "ownedMedia": {
            "type": "array",
            "items": {
                "type": "object",
                "required": [
                    "name",
                    "platform",
                    "url",
                    "channel",
                    "evidenceClass"
                ]
            }
        },
        "research": {
            "type": "array",
            "items": {
                "type": "object",
                "required": [
                    "name",
                    "url",
                    "evidenceClass"
                ]
            }
        },
        "partnerships": {
            "type": "array",
            "items": {
                "$ref": "#/$defs/classifiedLink"
            }
        },
        "clientConfirmedCaseStudies": {
            "type": "array",
            "items": {
                "$ref": "#/$defs/classifiedLink"
            }
        },
        "portfolioVerification": {
            "type": "object"
        },
        "canonicalResources": {
            "type": "object",
            "additionalProperties": {
                "type": "string",
                "format": "uri"
            }
        }
    },
    "$defs": {
        "link": {
            "type": "object",
            "required": [
                "name",
                "url"
            ],
            "properties": {
                "name": {
                    "type": "string"
                },
                "url": {
                    "type": "string",
                    "format": "uri"
                }
            },
            "additionalProperties": true
        },
        "classifiedLink": {
            "allOf": [
                {
                    "$ref": "#/$defs/link"
                },
                {
                    "type": "object",
                    "required": [
                        "evidenceClass"
                    ]
                }
            ]
        }
    },
    "additionalProperties": false
}
