{
  "spec": "aiqr-id-v1.0",
  "alphabet": "0235689ACEHJMPTXY",
  "length": 16,
  "data": 13,
  "check": 3,
  "vectors": [
    {
      "desc": "canonical form",
      "input": "AIQR:0ATA-XJH3-YXYC-PCC5",
      "expect_status": "valid",
      "expect_id": "0ATA-XJH3-YXYC-PCC5"
    },
    {
      "desc": "lower case, no sentinel",
      "input": "0ata-xjh3-yxyc-pcc5",
      "expect_status": "valid",
      "expect_id": "0ATA-XJH3-YXYC-PCC5"
    },
    {
      "desc": "unhyphenated",
      "input": "0ATAXJH3YXYCPCC5",
      "expect_status": "valid",
      "expect_id": "0ATA-XJH3-YXYC-PCC5"
    },
    {
      "desc": "spaces as separators",
      "input": "AIQR: 0ATA XJH3 YXYC PCC5",
      "expect_status": "valid",
      "expect_id": "0ATA-XJH3-YXYC-PCC5"
    },
    {
      "desc": "embedded in prose",
      "input": "the sticker reads AIQR:0ATA-XJH3-YXYC-PCC5 underneath",
      "expect_status": "valid",
      "expect_id": "0ATA-XJH3-YXYC-PCC5"
    },
    {
      "desc": "fold O to 0 (no parity spent)",
      "input": "OATAXJH3YXYCPCC5",
      "expect_status": "valid",
      "expect_id": "0ATA-XJH3-YXYC-PCC5"
    },
    {
      "desc": "fold S to 5",
      "input": "0ATAXJH3YXYCPCCS",
      "expect_status": "valid",
      "expect_id": "0ATA-XJH3-YXYC-PCC5"
    },
    {
      "desc": "single substitution at index 3",
      "input": "0ATTXJH3YXYCPCC5",
      "expect_status": "repaired",
      "expect_id": "0ATA-XJH3-YXYC-PCC5"
    },
    {
      "desc": "one unreadable char (I)",
      "input": "0ATAXJI3YXYCPCC5",
      "expect_status": "repaired",
      "expect_id": "0ATA-XJH3-YXYC-PCC5"
    },
    {
      "desc": "three unreadable chars",
      "input": "IATAXIH3YXYIPCC5",
      "expect_status": "repaired",
      "expect_id": "0ATA-XJH3-YXYC-PCC5"
    },
    {
      "desc": "four unreadable chars -> reject",
      "input": "IITAXJH3IIYCPCC5",
      "expect_status": "unrepairable",
      "expect_id": null
    },
    {
      "desc": "two substitutions -> reject",
      "input": "0HTAXJH3Y5YCPCC5",
      "expect_status": "unrepairable",
      "expect_id": null
    },
    {
      "desc": "adjacent transposition -> reject",
      "input": "0ATAJXH3YXYCPCC5",
      "expect_status": "unrepairable",
      "expect_id": null
    },
    {
      "desc": "too short",
      "input": "AIQR:23AC-5H8M",
      "expect_status": "malformed",
      "expect_id": null
    },
    {
      "desc": "random prose",
      "input": "AIQR: hello world not an identifier",
      "expect_status": "malformed",
      "expect_id": null
    },
    {
      "desc": "second sample id",
      "input": "AIQR:5PYA-M8YM-E82Y-635M",
      "expect_status": "valid",
      "expect_id": "5PYA-M8YM-E82Y-635M"
    }
  ]
}