[
  {
    "version": "1",
    "caseId": "email-basic",
    "input": "alex@example.com",
    "context": "ascii-signup-v1",
    "expected": "accept",
    "expectedValue": "alex@example.com",
    "note": "Basic address; example.com is a documentation domain."
  },
  {
    "version": "1",
    "caseId": "email-tag",
    "input": "alex+qa@example.com",
    "context": "ascii-signup-v1",
    "expected": "accept",
    "expectedValue": "alex+qa@example.com",
    "note": "Do not remove plus tags."
  },
  {
    "version": "1",
    "caseId": "email-case",
    "input": "Alex@Example.com",
    "context": "ascii-signup-v1",
    "expected": "accept",
    "expectedValue": "Alex@Example.com",
    "note": "Preserve input case; do not assume local-part case equivalence."
  },
  {
    "version": "1",
    "caseId": "email-trim",
    "input": " alex@example.com ",
    "context": "ascii-signup-v1",
    "expected": "normalize",
    "expectedValue": "alex@example.com",
    "note": "Trim only the documented outer spaces."
  },
  {
    "version": "1",
    "caseId": "email-empty",
    "input": "",
    "context": "ascii-signup-v1",
    "expected": "reject",
    "expectedValue": "",
    "note": "Required field."
  },
  {
    "version": "1",
    "caseId": "email-double-dot",
    "input": "alex..qa@example.com",
    "context": "ascii-signup-v1",
    "expected": "reject",
    "expectedValue": "",
    "note": "Empty local-part segment."
  },
  {
    "version": "1",
    "caseId": "email-leading-dot",
    "input": ".alex@example.com",
    "context": "ascii-signup-v1",
    "expected": "reject",
    "expectedValue": "",
    "note": "Local part begins with a dot."
  },
  {
    "version": "1",
    "caseId": "email-missing-at",
    "input": "alex.example.com",
    "context": "ascii-signup-v1",
    "expected": "reject",
    "expectedValue": "",
    "note": "Missing separator."
  },
  {
    "version": "1",
    "caseId": "email-quoted",
    "input": "\"alex qa\"@example.com",
    "context": "ascii-signup-v1",
    "expected": "reject",
    "expectedValue": "",
    "note": "Quoted local part is outside this product policy, not universally invalid."
  },
  {
    "version": "1",
    "caseId": "email-unicode",
    "input": "üser@example.com",
    "context": "ascii-signup-v1",
    "expected": "reject",
    "expectedValue": "",
    "note": "SMTPUTF8 requires a separately defined internationalized-email policy."
  },
  {
    "version": "1",
    "caseId": "email-invisible",
    "input": "alex​@example.com",
    "context": "ascii-signup-v1",
    "expected": "reject",
    "expectedValue": "",
    "note": "A zero-width space must not silently disappear."
  },
  {
    "version": "1",
    "caseId": "email-64-local",
    "input": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@example.com",
    "context": "ascii-signup-v1",
    "expected": "accept",
    "expectedValue": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@example.com",
    "note": "Exactly 64 ASCII bytes before @."
  },
  {
    "version": "1",
    "caseId": "email-65-local",
    "input": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@example.com",
    "context": "ascii-signup-v1",
    "expected": "reject",
    "expectedValue": "",
    "note": "One byte past the chosen local-part limit."
  },
  {
    "version": "1",
    "caseId": "email-254-total",
    "input": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.ddddddddddddddddddddddddddddddddddddddddddddddddd.example.com",
    "context": "ascii-signup-v1",
    "expected": "accept",
    "expectedValue": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.ddddddddddddddddddddddddddddddddddddddddddddddddd.example.com",
    "note": "Exactly 254 ASCII bytes; every domain label is at most 63."
  },
  {
    "version": "1",
    "caseId": "email-255-total",
    "input": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb.ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc.dddddddddddddddddddddddddddddddddddddddddddddddddd.example.com",
    "context": "ascii-signup-v1",
    "expected": "reject",
    "expectedValue": "",
    "note": "One byte past the total limit."
  }
]