{
  "page": "dl-aamva",
  "name": "DL/ID (AAMVA PDF417) — parse and verify, never store",
  "address": "https://barcoding.dev/schemes/dl-aamva",
  "scheme": "dl-aamva",
  "reference": {
    "grammar": "The AAMVA DL/ID Card Design Standard's PDF417 payload: typed data elements (name, DOB, document numbers, jurisdiction fields) behind the ANSI header; jurisdiction versions pinned.",
    "check": "Structural validation of the AAMVA envelope and element types; derived outputs (age_over_21-style) computed locally from parsed fields.",
    "canonical": "A typed local parse — never a stored record.",
    "symbologies": "PDF417 on the card back",
    "enrichment": "none — statutory. The row carries hard flags: no_retention, enrich: refused. enrich on a DL parse is a typed policy_refusal, exit 1, no override at any tier.",
    "join": "None on purpose. resolve has no network path for any scheme — for this one, that fact is the compliance posture."
  },
  "registry": {
    "dl-aamva": {
      "scheme": "dl-aamva",
      "title": "AAMVA DL/ID — parse and verify, never store",
      "grammar": "^@\\n?\\u001e\\r?ANSI ",
      "check": {
        "algorithm": "none",
        "label": "none",
        "source": "AAMVA DL/ID Card Design Standard — structural parse and verify only",
        "vectors": []
      },
      "canonical": "withheld — no_retention",
      "segments": [
        {
          "name": "compliance header",
          "note": "@ · ANSI · IIN · AAMVA version"
        },
        {
          "name": "subfiles",
          "note": "parse-and-verify anatomy only; derived outputs (age_over_21-style), never the record"
        }
      ],
      "symbologies": [
        "pdf417"
      ],
      "generate": {
        "refuses": {
          "reason": "ILLEGAL_ARTIFACT",
          "note": "generating an AAMVA DL/ID barcode is manufacturing a government-credential artifact — refused at every tier, no override"
        }
      },
      "enrich": {
        "refuses": {
          "reason": "policy_refusal",
          "note": "no enrichment of license data at any tier"
        }
      },
      "policy": {
        "no_retention": true,
        "enrich": "refused",
        "log_exclusion": true
      },
      "handoff": "parsed and verified here · never stored, never resolved",
      "address": null,
      "digest": "sha256:8d8bbb7f63d26f11a7c4ab0caf54fa495bbd9b271f58fe276222c194bdf2df80",
      "digest_source": "engine/pins/PINS.json — pin verified against the artifact this build consumed"
    }
  },
  "resolution_stance": "barcoding.dev detects, parses, verifies, enriches and generates — the codec and the data layer. Resolution — an identifier answered with identity and its linkset of live doors — is ONE capability family-wide, served by the family's identity layer, id.org.ai; vertical estates project the same one capability (vehicles: auto.dev). This registry row is the data that resolution consumes.",
  "posts": [
    "https://barcoding.dev/blog/drivers-licenses-parse-verify-never-store/"
  ],
  "faces": {
    "html": "https://barcoding.dev/schemes/dl-aamva/",
    "json": "https://barcoding.dev/schemes/dl-aamva.json",
    "markdown": "https://barcoding.dev/schemes/dl-aamva.md"
  }
}
