{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://acdl.dev/schemas/tagging-standard.json",
  "title": "ACDL Tagging Standard",
  "description": "Required tags for all taggable AWS resources created by the platform. Enforced by a Checkov custom Python rule (adapters/terraform/policy/custom_rules/acdl_tagging.py). The checkov adapter maps ACDL_TAG_NAMING as a real rule (D-054, D-043 closure).",
  "type": "object",
  "properties": {
    "required_tags": {
      "type": "object",
      "description": "The set of tags that must be present on every taggable AWS resource.",
      "properties": {
        "acdl:owner": {
          "type": "string",
          "description": "The consumer repository name (e.g. 'consumer-repo'). Injected from the ABAC session."
        },
        "acdl:contract": {
          "type": "string",
          "description": "The contract ID (UUID)."
        },
        "acdl:environment": {
          "type": "string",
          "enum": ["dev", "qa", "prod", "dr"],
          "description": "The environment name."
        },
        "acdl:cost-center": {
          "type": "string",
          "description": "The cost center (consumer-provided or platform-default 'acdl-default')."
        }
      },
      "required": ["acdl:owner", "acdl:contract", "acdl:environment", "acdl:cost-center"],
      "additionalProperties": false
    },
    "default_values": {
      "type": "object",
      "description": "Default values used when the consumer does not supply the tag.",
      "properties": {
        "acdl:cost-center": {
          "type": "string",
          "default": "acdl-default"
        }
      }
    }
  },
  "required": ["required_tags"],
  "additionalProperties": false
}