{
  "id": "MSG-123",
  "slug": "msg-123",
  "title": "Age-restricted content requires the age-gated attribute",
  "statement": "Where sample or description content covers alcohol, firearms, or tobacco, the age-gated attribute must be set true.",
  "rationale": "The attribute is what tells carriers an age gate is in place, and the underlying categories carry per-message violation fees rather than rejections. Declaring it is the difference between a restricted campaign and an enforcement event.",
  "layer": "MESSAGE_CONTENT",
  "layerSlug": "message-content",
  "object": "campaign.age_gated + campaign content",
  "severity": "BLOCKING",
  "detectability": [
    "AI_FORM"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "TCR",
    "CTIA",
    "T-Mobile",
    "Twilio"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Set the age-gated attribute true and implement real date-of-birth verification at opt-in. Note several providers refuse these categories entirely even with a gate.",
  "example": "Content references alcohol → age gated: true, with DOB collected at opt-in.",
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/message-content/msg-123/",
  "markdown": "https://ekas.io/rules/10dlc/message-content/msg-123.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
