{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://decisionprovenancestandard.org/schemas/v5.0/article-50-disclosure-metadata.json",
  "title": "Article 50 Disclosure Metadata Block",
  "description": "Decision Provenance Standard — Article 50 disclosure metadata block. The five Standard §4.6.2 required fields are declaring_authority, ai_system_identity, jurisdictional_applicability, content_type_tag, generation_timestamp. The schema additionally carries disclosure_text_pointer and attached_at as permitted substrate fields (serving §6.2.3 attachment-moment audit) plus optional mode_1_edge_case_flag, last_reviewed_at, disclosure_provenance. The schema structures inputs the declaring authority needs to discharge the Article 50 disclosure obligation. The schema does not satisfy, ensure, or certify Article 50 conformance; those verbs belong to the regulator.",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "declaring_authority",
    "ai_system_identity",
    "jurisdictional_applicability",
    "content_type_tag",
    "generation_timestamp",
    "disclosure_text_pointer",
    "attached_at"
  ],
  "properties": {
    "declaring_authority": {
      "type": "object",
      "additionalProperties": false,
      "required": ["full_name", "role_title", "employer", "capacity"],
      "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 named human responsible for discharging the Article 50 disclosure obligation. Not the AI system; not the Charter; not the organization at large. The obligation belongs to a person."
    },
    "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; substrate counsel uses to verify Article 50 disclosure adequacy."
        }
      }
    },
    "jurisdictional_applicability": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string",
        "enum": ["US-FED", "US-DE", "UK", "EU", "IL", "OTHER"]
      },
      "description": "Per 0.5.D extraterritorial-reach scoping. Article 50 reaches outputs delivered to EU natural persons regardless of operator location; this field is structured input to that determination, not the determination itself."
    },
    "content_type_tag": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "string",
        "enum": ["decision-summary", "recommendation", "decision-aid", "draft", "classification", "synthetic-media", "other"]
      },
      "description": "Standard §4.6.2 field #4. Controlled vocabulary tagging the type of AI-generated content the disclosure block covers. `other` permits an open type with detail recorded out-of-band. 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": "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": "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. Drives Privacy Counsel re-review cadence per Section 4."
    },
    "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."
    }
  }
}
