{
  "tool_id": "art-241-cbpr-structured-address-linter",
  "note": "CBPR+ Nov-2026 pacs.008 PostalAddress24 lint. Vector 1: fully-structured compliant. Vector 2: hybrid with silent-fail duplication (known-vector assert). Vector 3: empty-input finite.",
  "vectors": [
    {
      "name": "fully_structured_compliant",
      "description": "Fully-structured address with all ISO fields populated, no AdrLine. Compliant with CBPR+ Nov-2026 mandate.",
      "policy_parameters": {
        "street_name": "Kaiserstrasse",
        "building_number": "29",
        "post_code": "60311",
        "town_name": "Frankfurt",
        "country": "DE",
        "address_lines": []
      },
      "output_payload": {
        "structure_type": "FULLY_STRUCTURED",
        "compliant": true,
        "readiness_pct": 100,
        "error_count": 0,
        "violations": [],
        "cbpr_plus_deadline": "2026-11-14",
        "disambiguation": "lint_cbpr_structured_address checks per-message Nov-2026 hybrid/fully-structured rule lint including the AdrLine silent-fail duplication rule. For batch verification of already-migrated address archives use verify_address_migration_batch (rca-03). For ISO 20022 securities settlement messages (sese/semt) use lint_securities_settlement_message (art-82). This tool operates on pacs.008 payments address blocks only.",
        "pii_note": "All fields operate on STRUCTURAL address components only. No real party PII enters this kernel -- use synthetic or anonymised address data.",
        "table_version": "CBPR-PLUS-STRUCTURED-ADDRESS-NOV2026-V1",
        "table_source": "SWIFT CBPR+ Structured Address Migration Bulletin (verify current guidance at swift.com/cbpr-plus-migration); ISO 20022 PostalAddress24 element set (iso20022.org MX catalogue)",
        "regulatory_basis": "SWIFT CBPR+ Structured Address Migration Bulletin; ISO 20022 PostalAddress24 element set (MX catalogue); SEPA and CHAPS aligned Nov 2026"
      },
      "golden_hash": "8c379a3c8f0aaaa97b0c656dc5d25d065e95693c4f3bdc3b6d560e84ac5eeed1"
    },
    {
      "name": "hybrid_silent_fail_duplication",
      "description": "Hybrid address (TwnNm+Ctry+2 AdrLine) where AdrLine duplicates structured field values -- the silent-fail duplication rule that causes STP rejection without a visible error code.",
      "policy_parameters": {
        "street_name": "Main Street",
        "town_name": "London",
        "country": "GB",
        "address_lines": [
          "123 Main Street",
          "London EC2R 8AH"
        ]
      },
      "output_payload": {
        "structure_type": "HYBRID",
        "compliant": false,
        "readiness_pct": 60,
        "error_count": 2,
        "violations": [
          {
            "code": "SILENT_FAIL_DUPLICATION",
            "severity": "ERROR",
            "field": "AdrLine[0]",
            "message": "AdrLine[0] duplicates structured field value \"Main Street\" -- this silent-fail causes STP rejection without a visible error code. Remove the duplicated component from AdrLine."
          },
          {
            "code": "SILENT_FAIL_DUPLICATION",
            "severity": "ERROR",
            "field": "AdrLine[1]",
            "message": "AdrLine[1] duplicates structured field value \"London\" -- this silent-fail causes STP rejection without a visible error code. Remove the duplicated component from AdrLine."
          }
        ],
        "cbpr_plus_deadline": "2026-11-14",
        "disambiguation": "lint_cbpr_structured_address checks per-message Nov-2026 hybrid/fully-structured rule lint including the AdrLine silent-fail duplication rule. For batch verification of already-migrated address archives use verify_address_migration_batch (rca-03). For ISO 20022 securities settlement messages (sese/semt) use lint_securities_settlement_message (art-82). This tool operates on pacs.008 payments address blocks only.",
        "pii_note": "All fields operate on STRUCTURAL address components only. No real party PII enters this kernel -- use synthetic or anonymised address data.",
        "table_version": "CBPR-PLUS-STRUCTURED-ADDRESS-NOV2026-V1",
        "table_source": "SWIFT CBPR+ Structured Address Migration Bulletin (verify current guidance at swift.com/cbpr-plus-migration); ISO 20022 PostalAddress24 element set (iso20022.org MX catalogue)",
        "regulatory_basis": "SWIFT CBPR+ Structured Address Migration Bulletin; ISO 20022 PostalAddress24 element set (MX catalogue); SEPA and CHAPS aligned Nov 2026"
      },
      "golden_hash": "39f637b409def8287ef15aeadbd3ff56d475299c62f4359e8a824ca4129de1ad"
    },
    {
      "name": "empty_input_finite",
      "description": "Empty input -- all address fields absent. Verifies finite output (no NaN/Infinity) and EMPTY structure type detection.",
      "policy_parameters": {},
      "output_payload": {
        "structure_type": "EMPTY",
        "compliant": false,
        "readiness_pct": 80,
        "error_count": 1,
        "violations": [
          {
            "code": "EMPTY_ADDRESS",
            "severity": "ERROR",
            "field": "PostalAddress24",
            "message": "No address fields populated. pacs.008 requires a populated PostalAddress24 block."
          }
        ],
        "cbpr_plus_deadline": "2026-11-14",
        "disambiguation": "lint_cbpr_structured_address checks per-message Nov-2026 hybrid/fully-structured rule lint including the AdrLine silent-fail duplication rule. For batch verification of already-migrated address archives use verify_address_migration_batch (rca-03). For ISO 20022 securities settlement messages (sese/semt) use lint_securities_settlement_message (art-82). This tool operates on pacs.008 payments address blocks only.",
        "pii_note": "All fields operate on STRUCTURAL address components only. No real party PII enters this kernel -- use synthetic or anonymised address data.",
        "table_version": "CBPR-PLUS-STRUCTURED-ADDRESS-NOV2026-V1",
        "table_source": "SWIFT CBPR+ Structured Address Migration Bulletin (verify current guidance at swift.com/cbpr-plus-migration); ISO 20022 PostalAddress24 element set (iso20022.org MX catalogue)",
        "regulatory_basis": "SWIFT CBPR+ Structured Address Migration Bulletin; ISO 20022 PostalAddress24 element set (MX catalogue); SEPA and CHAPS aligned Nov 2026"
      },
      "golden_hash": "31ee76ae55b38adb0c513f734291b527764919d974ac73804cb062ea5f28c0d6"
    }
  ]
}
