{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/ai-law-tracker-com/json-schema/ai-law-tracker-com-enforcement-item-schema.json",
  "title": "EnforcementItem",
  "description": "One AI enforcement action or litigation matter, over news_articles (change_type enforcement|litigation). Only status published rows are ever returned. Pending and approved rows are internal editorial states, so an empty data[] is expected until a story is actually published. Enterprise-tier only — every other tier gets 403 tier_upgrade_required before this schema is reached.",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/ai-law-tracker-com-openapi.json#/components/schemas/EnforcementItem",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "change_type": {
      "type": "string",
      "enum": [
        "enforcement",
        "litigation"
      ],
      "description": "'enforcement' = an agency action; 'litigation' = a civil docket."
    },
    "title": {
      "type": [
        "string",
        "null"
      ]
    },
    "agency": {
      "type": [
        "string",
        "null"
      ],
      "description": "WHO acted — the regulator/AG (null on a private litigation matter with no agency)."
    },
    "scope": {
      "type": "string",
      "enum": [
        "state",
        "federal",
        "eu",
        "global"
      ]
    },
    "jurisdiction": {
      "type": "object",
      "properties": {
        "slug": {
          "type": [
            "string",
            "null"
          ]
        },
        "name": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    },
    "date": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "description": "published_at, else approved_at, else the draft's created_at."
    },
    "source_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "The official source: the agency's release, or the court docket."
    },
    "respondent": {
      "type": [
        "string",
        "null"
      ],
      "description": "AGAINST WHOM the action/suit is brought."
    },
    "allegation": {
      "type": [
        "string",
        "null"
      ],
      "description": "WHAT was alleged."
    },
    "outcome": {
      "type": [
        "string",
        "null"
      ],
      "description": "HOW it ended (e.g. settlement, suit filed, pending)."
    },
    "penalty": {
      "type": [
        "string",
        "null"
      ],
      "description": "WHAT it cost, verbatim from the source."
    },
    "statutory_basis": {
      "type": [
        "string",
        "null"
      ],
      "description": "UNDER WHICH LAW, verbatim from the source."
    },
    "forum": {
      "type": [
        "string",
        "null"
      ],
      "description": "The court, for a litigation row (null on enforcement)."
    },
    "summary": {
      "type": [
        "string",
        "null"
      ]
    },
    "gated": {
      "type": "boolean",
      "description": "Reserved — always absent for the Enterprise-only 200 response (no teaser tier reaches this schema)."
    },
    "attribution": {
      "type": "string"
    }
  }
}