{
    "type": "object",
    "properties": {
        "study": {
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "summary": {
                    "type": "string"
                },
                "incident-date": {
                    "anyOf": [
                        {
                            "type": "string",
                            "format": "date"
                        },
                        {
                            "type": "string",
                            "format": "date-time"
                        }
                    ]
                },
                "incident-date-granularity": {
                    "enum": [
                        "YEAR",
                        "MONTH",
                        "DATE"
                    ]
                },
                "procedure": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "tactic": {
                                "anyOf": [
                                    {
                                        "$ref": "#/definitions/id_tactic"
                                    },
                                    {
                                        "$ref": "#/definitions/case_study_tactic"
                                    }
                                ]
                            },
                            "technique": {
                                "anyOf": [
                                    {
                                        "$ref": "#/definitions/id_technique"
                                    },
                                    {
                                        "$ref": "#/definitions/id_subtechnique"
                                    },
                                    {
                                        "$ref": "#/definitions/case_study_technique"
                                    }
                                ]
                            },
                            "description": {
                                "type": "string"
                            }
                        },
                        "required": [
                            "tactic",
                            "technique",
                            "description"
                        ],
                        "additionalProperties": false
                    }
                },
                "reporter": {
                    "type": "string"
                },
                "target": {
                    "type": "string"
                },
                "actor": {
                    "type": "string"
                },
                "case-study-type": {
                    "enum": [
                        "incident",
                        "exercise"
                    ]
                },
                "references": {
                    "$ref": "#/definitions/references"
                },
                "id": {
                    "$ref": "#/definitions/id_case_study"
                },
                "object-type": {
                    "const": "case-study"
                },
                "reported-by": {
                    "deprecated": "true",
                    "depMessage": "`reported-by` deprecated as of version 1.1; replaced by `reporter`"
                }
            },
            "required": [
                "name",
                "summary",
                "incident-date",
                "incident-date-granularity",
                "procedure"
            ],
            "additionalProperties": false
        },
        "meta": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": true
        }
    },
    "required": [
        "study"
    ],
    "additionalProperties": true,
    "$id": "atlas_website_case_study_schema",
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "ATLAS Website Case Study Schema",
    "definitions": {
        "id_tactic": {
            "type": "string",
            "pattern": "^(?:[A-Z]+\\d*\\.)+TA\\d{4}$"
        },
        "case_study_tactic": {
            "type": "object",
            "properties": {
                "object-type": {
                    "const": "tactic"
                },
                "description": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "references": {
                    "$ref": "#/definitions/references"
                },
                "id": {
                    "$ref": "#/definitions/id_tactic"
                }
            },
            "required": [
                "object-type",
                "description",
                "name"
            ],
            "additionalProperties": true
        },
        "references": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "title": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "const": null
                            }
                        ]
                    },
                    "url": {
                        "anyOf": [
                            {
                                "type": "string"
                            },
                            {
                                "const": null
                            }
                        ]
                    }
                },
                "required": [
                    "title",
                    "url"
                ],
                "additionalProperties": false
            }
        },
        "id_technique": {
            "type": "string",
            "pattern": "^(?:[A-Z]+\\d*\\.)+T\\d{4}$"
        },
        "id_subtechnique": {
            "type": "string",
            "pattern": "^(?:[A-Z]+\\d*\\.)+T\\d{4}\\.\\d{3}$"
        },
        "case_study_technique": {
            "type": "object",
            "properties": {
                "object-type": {
                    "const": "technique"
                },
                "name": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "references": {
                    "$ref": "#/definitions/references"
                },
                "maturity": {
                    "enum": [
                        "feasible",
                        "demonstrated",
                        "realized"
                    ]
                },
                "id": {
                    "$ref": "#/definitions/id_technique"
                },
                "tactics": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/id_tactic"
                    }
                }
            },
            "required": [
                "object-type",
                "name",
                "description"
            ],
            "additionalProperties": true
        },
        "id_case_study": {
            "type": "string",
            "pattern": "^(?:[A-Z]+\\d*\\.)+CS\\d{4}$"
        }
    },
    "$version": "1.1",
    "description": "Generated on 2026-04-29"
}