{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://decisionprovenancestandard.org/schemas/v5.0/article-50-disclosure-metadata.json",
  "title": "Disclosure Block (Standard §4.6)",
  "description": "Decision Provenance Standard — the disclosure block. The five Standard §4.6.2 required fields are declaring_authority, ai_system_identity, jurisdictional_applicability, content_type_tag, generation_timestamp. The schema also accepts optional extra fields: disclosure_text_pointer and attached_at (serving the §6.2.3 attachment-moment audit), mode_1_edge_case_flag, last_reviewed_at and disclosure_provenance. The schema describes the fields of the disclosure block defined in Standard §4.6.2. Whether Article 50, or any other disclosure law, applies to an artifact is for the deployer to determine. The schema does not satisfy, ensure, or certify any regulatory obligation.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "declaring_authority",
    "ai_system_identity",
    "jurisdictional_applicability",
    "content_type_tag",
    "generation_timestamp"
  ],
  "properties": {
    "declaring_authority": {
      "type": "object",
      "additionalProperties": false,
      "anyOf": [
        {"required": ["full_name"]},
        {"required": ["employer"]}
      ],
      "properties": {
        "full_name": {"type": "string", "description": "Legal name as on employment record"},
        "role_title": {"type": "string", "description": "Role title at attestation moment"},
        "employer": {"type": "string", "description": "Legal entity employing the declaring authority"},
        "capacity": {"type": "string", "enum": ["employee", "contractor", "officer", "director"]}
      },
      "description": "The person who prepares the disclosure and the organization they act for (Standard §2.2.12, §4.6.2). A value that names only the person (full_name) or only the organization (employer) is valid; new records should name both. Not the AI system; not the Charter."
    },
    "ai_system_identity": {
      "type": "object",
      "additionalProperties": false,
      "required": ["system_name", "system_version", "model_provider"],
      "properties": {
        "system_name": {"type": "string"},
        "system_version": {"type": "string"},
        "model_provider": {"type": "string"},
        "deployment_context": {"type": "string"},
        "model_card_pointer": {
          "type": "string",
          "format": "uri-reference",
          "description": "URL or path to the operator's model card."
        }
      }
    },
    "jurisdictional_applicability": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string",
        "anyOf": [
          {"enum": ["US-FED", "US-DE", "UK", "EU", "IL", "OTHER", "eu", "us-federal", "us-delaware", "uk", "israel"]},
          {"pattern": "^other:.+$"}
        ]
      },
      "description": "Records where the artifact is intended to circulate, in the text's values eu, us-federal, us-delaware, uk, israel or other:<jurisdiction> (Standard §4.6.2). The earlier spellings US-FED, US-DE, UK, EU, IL and OTHER remain valid. It is an input to the deployer's own determination of which laws apply, not that determination itself."
    },
    "content_type_tag": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string",
        "anyOf": [
          {"enum": ["decision-summary", "recommendation", "decision-aid", "draft", "classification", "synthetic-media", "other"]},
          {"pattern": "^other:.+$"}
        ]
      },
      "description": "Standard §4.6.2 field #4. Controlled vocabulary tagging the type of AI-generated content the disclosure block covers. `other:<type>` names an open type (the text's spelling); the earlier bare `other`, with detail recorded out-of-band, remains valid. Survives the §4.6.3 4-of-5 anonymization rule."
    },
    "generation_timestamp": {
      "type": "string",
      "format": "date-time",
      "description": "Standard §4.6.2 field #5. ISO 8601 timestamp of content GENERATION (the moment the AI produced the artifact) — distinct from `attached_at` (the moment the block attached to a Charter/record). Anchor for regulatory-state inquiry into when the artifact was produced. Survives the §4.6.3 4-of-5 anonymization rule."
    },
    "mode_1_edge_case_flag": {
      "type": "boolean",
      "description": "True when the Charter is Mode 1 but a specific decision embeds an AI-generated summary. False otherwise. Structural trigger for per-decision-record disclosure attachment in the Mode 1 edge case."
    },
    "disclosure_text_pointer": {
      "type": "string",
      "description": "Optional. Reference to the actual disclosure text the declaring authority approved. The schema does not generate disclosure text; it points to text the declaring authority signed off on."
    },
    "attached_at": {
      "type": "string",
      "format": "date-time",
      "description": "Optional. When the disclosure block attached to the Charter or decision record (ISO 8601 UTC)."
    },
    "last_reviewed_at": {
      "type": "string",
      "format": "date-time",
      "description": "When the declaring authority last reviewed and reaffirmed the disclosure. One way to show the block was reviewed within the Charter's cadence (Standard §7.4.1)."
    },
    "disclosure_provenance": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "approved_by": {"type": "string"},
        "approved_at": {"type": "string", "format": "date-time"},
        "charter_version_at_approval": {"type": "string"}
      },
      "description": "Audit-ready provenance for the disclosure decision itself."
    }
  }
}
