{
  "tool_id": "art-602-mica-register-presence-check",
  "note": "golden_hash filled by `node golden-parity.test.mjs --update`. Every output_payload below was produced by EXECUTING compute() in this kernel over the policy_parameters shown (SO #34 independent derivation), never hand-composed. Vectors are synthetic: the LEI-shaped identifiers are placeholders, not real register entries, and the two extracts are illustrative shapes of the ESMA crypto-asset white paper register and CASP register exports, not copies of either.",
  "vectors": [
    {
      "name": "white-paper-register-presence-match",
      "policy_parameters": {
        "register_type": "white_paper",
        "entity_identifier": "984500XXXXXXXXXXXX02",
        "register_extract": "lei,issuer_name,crypto_asset_name,notification_date,home_member_state\n984500XXXXXXXXXXXX01,Example Issuer SA,EXAMPLE-EURO-TOKEN,2026-01-15,FR\n984500XXXXXXXXXXXX02,Second Issuer NV,SECOND-TOKEN,2026-02-03,NL\n984500XXXXXXXXXXXX03,Third Issuer GmbH,THIRD-TOKEN,2026-03-21,DE\n",
        "retrieval_date": "2026-08-11",
        "register_source_ref": "ESMA crypto-asset white paper register export (synthetic sample)",
        "delimiter": ",",
        "header_row": true,
        "match_column": "lei",
        "case_sensitive": true
      },
      "output_payload": {
        "register_type": "white_paper",
        "register_label": "white-paper",
        "entity_identifier": "984500XXXXXXXXXXXX02",
        "retrieval_date": "2026-08-11",
        "register_source_ref": "ESMA crypto-asset white paper register export (synthetic sample)",
        "register_snapshot_digest": "sha256:45775add42af3cdd102e72c39852941693fa387036ca38b7cdaaaa5b82e33acc",
        "snapshot": {
          "extract_length_chars": 272,
          "extract_present": true,
          "extract_too_large": false,
          "max_extract_chars": 262144,
          "parsed_line_count": 4,
          "data_row_count": 3,
          "header_row_declared": true,
          "header_cells": [
            "lei",
            "issuer_name",
            "crypto_asset_name",
            "notification_date",
            "home_member_state"
          ],
          "row_cap_exceeded": false,
          "max_rows": 5000
        },
        "search": {
          "delimiter": ",",
          "case_sensitive": true,
          "match_column_declared": "lei",
          "match_column_resolved": "header \"lei\" at index 0",
          "match_column_unresolved": false,
          "searched": true
        },
        "match_found": true,
        "matched_row": "984500XXXXXXXXXXXX02,Second Issuer NV,SECOND-TOKEN,2026-02-03,NL",
        "matched_rows": [
          {
            "line_number": 3,
            "matched_row": "984500XXXXXXXXXXXX02,Second Issuer NV,SECOND-TOKEN,2026-02-03,NL",
            "cells": [
              "984500XXXXXXXXXXXX02",
              "Second Issuer NV",
              "SECOND-TOKEN",
              "2026-02-03",
              "NL"
            ],
            "matched_column_index": 0
          }
        ],
        "match_count": 1,
        "verdict": "As of 2026-08-11, entity 984500XXXXXXXXXXXX02 was present in the white-paper register snapshot with digest sha256:45775add42af3cdd102e72c39852941693fa387036ca38b7cdaaaa5b82e33acc.",
        "verdict_unavailable_reason": null,
        "judgment_required": null,
        "rationale": [
          "The pasted extract is 272 characters and is pinned by digest sha256:45775add42af3cdd102e72c39852941693fa387036ca38b7cdaaaa5b82e33acc; every statement below is against those exact bytes.",
          "The extract parses to 4 non-blank lines, the first read as a header row, giving 3 data rows to search.",
          "Only the column resolved as header \"lei\" at index 0 was compared, because that is the column the caller declared.",
          "One line matched the identifier 984500XXXXXXXXXXXX02, at line 3 of the paste, and is echoed verbatim.",
          "Presence here is a dated fact about a pasted snapshot. It is not authorisation, not a current status, not a statement that the register is complete or current, and not legal advice."
        ],
        "not_proven": [
          {
            "item": "Authorisation status",
            "detail": "Presence in a register extract is not authorisation, licensing, registration in good standing, or any other status. This kernel reports whether a line was found in pasted text on a stated date, and refuses to say anything about what is true today."
          },
          {
            "item": "Snapshot completeness",
            "detail": "The extract is whatever the reader pasted. Absence of a match proves absence from THAT TEXT, never absence from the register: a partial page, a filtered export, or a different register would each produce the same \"was not present\" reading."
          },
          {
            "item": "Snapshot authenticity",
            "detail": "Nothing here proves the pasted text came from ESMA, was unmodified in transit, or was captured on the date supplied. The digest pins the bytes that were checked; it does not attest their provenance."
          },
          {
            "item": "Identifier correctness",
            "detail": "The entity identifier is compared as a literal string against the extract's own cells. A register spelling the identifier differently, a legal-name change, or a subsidiary listed under a different LEI all read as no match, and none of those is evidence about the entity."
          },
          {
            "item": "Currency of the register",
            "detail": "The register itself may have been stale, mid-update, or corrected after capture. retrieval_date dates the CAPTURE, not the register, and this kernel has no clock with which to compare either against now."
          }
        ],
        "fence": "The register extract, the entity identifier, the register type and the retrieval date are every one of them a caller input. This kernel performs no lookup of any kind (zero-egress by contract), ships no copy of either ESMA register, and has no clock: retrieval_date is the date the reader captured the extract, never a machine clock read. register_snapshot_digest pins the exact pasted bytes the verdict was reached against, so a later register update makes an old receipt dated rather than wrong. Presence in a snapshot is never authorisation and never a statement about today."
      },
      "golden_hash": "504ae607c322c81d93b8182dfec584cd0eaad40c7adb4a8203a13e3961e4c265"
    },
    {
      "name": "casp-register-no-match",
      "policy_parameters": {
        "register_type": "casp",
        "entity_identifier": "529900XXXXXXXXXXXX99",
        "register_extract": "lei,entity_name,authorisation_date,competent_authority,services\n529900XXXXXXXXXXXX11,Alpha Custody Ltd,2026-01-08,CSSF,\"custody,exchange\"\n529900XXXXXXXXXXXX12,Beta Exchange SAS,2026-02-19,AMF,\"exchange,transfer\"\n",
        "retrieval_date": "2026-08-11",
        "register_source_ref": "ESMA CASP register export (synthetic sample)",
        "delimiter": ",",
        "header_row": true,
        "match_column": null,
        "case_sensitive": true
      },
      "output_payload": {
        "register_type": "casp",
        "register_label": "CASP",
        "entity_identifier": "529900XXXXXXXXXXXX99",
        "retrieval_date": "2026-08-11",
        "register_source_ref": "ESMA CASP register export (synthetic sample)",
        "register_snapshot_digest": "sha256:815424784298ba87de39e319f4786dfcce78738863508f4fc550a73f1df15233",
        "snapshot": {
          "extract_length_chars": 212,
          "extract_present": true,
          "extract_too_large": false,
          "max_extract_chars": 262144,
          "parsed_line_count": 3,
          "data_row_count": 2,
          "header_row_declared": true,
          "header_cells": [
            "lei",
            "entity_name",
            "authorisation_date",
            "competent_authority",
            "services"
          ],
          "row_cap_exceeded": false,
          "max_rows": 5000
        },
        "search": {
          "delimiter": ",",
          "case_sensitive": true,
          "match_column_declared": null,
          "match_column_resolved": null,
          "match_column_unresolved": false,
          "searched": true
        },
        "match_found": false,
        "matched_row": null,
        "matched_rows": [],
        "match_count": 0,
        "verdict": "As of 2026-08-11, entity 529900XXXXXXXXXXXX99 was not present in the CASP register snapshot with digest sha256:815424784298ba87de39e319f4786dfcce78738863508f4fc550a73f1df15233.",
        "verdict_unavailable_reason": null,
        "judgment_required": null,
        "rationale": [
          "The pasted extract is 212 characters and is pinned by digest sha256:815424784298ba87de39e319f4786dfcce78738863508f4fc550a73f1df15233; every statement below is against those exact bytes.",
          "The extract parses to 3 non-blank lines, the first read as a header row, giving 2 data rows to search.",
          "Every cell of every data row was compared, because no match_column was declared.",
          "No line in the searched rows carried the identifier 529900XXXXXXXXXXXX99 as a cell value, compared case-sensitively after trimming.",
          "Presence here is a dated fact about a pasted snapshot. It is not authorisation, not a current status, not a statement that the register is complete or current, and not legal advice."
        ],
        "not_proven": [
          {
            "item": "Authorisation status",
            "detail": "Presence in a register extract is not authorisation, licensing, registration in good standing, or any other status. This kernel reports whether a line was found in pasted text on a stated date, and refuses to say anything about what is true today."
          },
          {
            "item": "Snapshot completeness",
            "detail": "The extract is whatever the reader pasted. Absence of a match proves absence from THAT TEXT, never absence from the register: a partial page, a filtered export, or a different register would each produce the same \"was not present\" reading."
          },
          {
            "item": "Snapshot authenticity",
            "detail": "Nothing here proves the pasted text came from ESMA, was unmodified in transit, or was captured on the date supplied. The digest pins the bytes that were checked; it does not attest their provenance."
          },
          {
            "item": "Identifier correctness",
            "detail": "The entity identifier is compared as a literal string against the extract's own cells. A register spelling the identifier differently, a legal-name change, or a subsidiary listed under a different LEI all read as no match, and none of those is evidence about the entity."
          },
          {
            "item": "Currency of the register",
            "detail": "The register itself may have been stale, mid-update, or corrected after capture. retrieval_date dates the CAPTURE, not the register, and this kernel has no clock with which to compare either against now."
          }
        ],
        "fence": "The register extract, the entity identifier, the register type and the retrieval date are every one of them a caller input. This kernel performs no lookup of any kind (zero-egress by contract), ships no copy of either ESMA register, and has no clock: retrieval_date is the date the reader captured the extract, never a machine clock read. register_snapshot_digest pins the exact pasted bytes the verdict was reached against, so a later register update makes an old receipt dated rather than wrong. Presence in a snapshot is never authorisation and never a statement about today."
      },
      "golden_hash": "16634f83fa6bdda9cf488860394af1eb119172a3c6319f933b71d8b7b08183a7"
    },
    {
      "name": "missing-retrieval-date-verdict-withheld",
      "policy_parameters": {
        "register_type": "white_paper",
        "entity_identifier": "984500XXXXXXXXXXXX01",
        "register_extract": "lei,issuer_name,crypto_asset_name,notification_date,home_member_state\n984500XXXXXXXXXXXX01,Example Issuer SA,EXAMPLE-EURO-TOKEN,2026-01-15,FR\n984500XXXXXXXXXXXX02,Second Issuer NV,SECOND-TOKEN,2026-02-03,NL\n984500XXXXXXXXXXXX03,Third Issuer GmbH,THIRD-TOKEN,2026-03-21,DE\n"
      },
      "output_payload": {
        "register_type": "white_paper",
        "register_label": "white-paper",
        "entity_identifier": "984500XXXXXXXXXXXX01",
        "retrieval_date": null,
        "register_source_ref": null,
        "register_snapshot_digest": "sha256:45775add42af3cdd102e72c39852941693fa387036ca38b7cdaaaa5b82e33acc",
        "snapshot": {
          "extract_length_chars": 272,
          "extract_present": true,
          "extract_too_large": false,
          "max_extract_chars": 262144,
          "parsed_line_count": 4,
          "data_row_count": 3,
          "header_row_declared": true,
          "header_cells": [
            "lei",
            "issuer_name",
            "crypto_asset_name",
            "notification_date",
            "home_member_state"
          ],
          "row_cap_exceeded": false,
          "max_rows": 5000
        },
        "search": {
          "delimiter": ",",
          "case_sensitive": true,
          "match_column_declared": null,
          "match_column_resolved": null,
          "match_column_unresolved": false,
          "searched": true
        },
        "match_found": true,
        "matched_row": "984500XXXXXXXXXXXX01,Example Issuer SA,EXAMPLE-EURO-TOKEN,2026-01-15,FR",
        "matched_rows": [
          {
            "line_number": 2,
            "matched_row": "984500XXXXXXXXXXXX01,Example Issuer SA,EXAMPLE-EURO-TOKEN,2026-01-15,FR",
            "cells": [
              "984500XXXXXXXXXXXX01",
              "Example Issuer SA",
              "EXAMPLE-EURO-TOKEN",
              "2026-01-15",
              "FR"
            ],
            "matched_column_index": 0
          }
        ],
        "match_count": 1,
        "verdict": null,
        "verdict_unavailable_reason": "The verdict sentence is withheld because at least one of its four terms is missing: the retrieval date, the register type, the snapshot digest, or a search that actually ran. A sentence assembled from absent terms would read as a finding.",
        "judgment_required": {
          "fields": [
            {
              "field": "retrieval_date",
              "reason": "retrieval_date must be supplied as an ISO calendar date (YYYY-MM-DD). It is the date the READER captured the extract and it is never read from a clock: a machine clock would date the run rather than the capture, and the verdict is a statement about the capture.",
              "supplied": null
            }
          ],
          "reason": "One or more inputs the verdict depends on were absent or unusable, so the corresponding step was not performed. An absent input is reported as unresolved, never defaulted into a reading."
        },
        "rationale": [
          "The pasted extract is 272 characters and is pinned by digest sha256:45775add42af3cdd102e72c39852941693fa387036ca38b7cdaaaa5b82e33acc; every statement below is against those exact bytes.",
          "The extract parses to 4 non-blank lines, the first read as a header row, giving 3 data rows to search.",
          "Every cell of every data row was compared, because no match_column was declared.",
          "One line matched the identifier 984500XXXXXXXXXXXX01, at line 2 of the paste, and is echoed verbatim.",
          "Presence here is a dated fact about a pasted snapshot. It is not authorisation, not a current status, not a statement that the register is complete or current, and not legal advice."
        ],
        "not_proven": [
          {
            "item": "Authorisation status",
            "detail": "Presence in a register extract is not authorisation, licensing, registration in good standing, or any other status. This kernel reports whether a line was found in pasted text on a stated date, and refuses to say anything about what is true today."
          },
          {
            "item": "Snapshot completeness",
            "detail": "The extract is whatever the reader pasted. Absence of a match proves absence from THAT TEXT, never absence from the register: a partial page, a filtered export, or a different register would each produce the same \"was not present\" reading."
          },
          {
            "item": "Snapshot authenticity",
            "detail": "Nothing here proves the pasted text came from ESMA, was unmodified in transit, or was captured on the date supplied. The digest pins the bytes that were checked; it does not attest their provenance."
          },
          {
            "item": "Identifier correctness",
            "detail": "The entity identifier is compared as a literal string against the extract's own cells. A register spelling the identifier differently, a legal-name change, or a subsidiary listed under a different LEI all read as no match, and none of those is evidence about the entity."
          },
          {
            "item": "Currency of the register",
            "detail": "The register itself may have been stale, mid-update, or corrected after capture. retrieval_date dates the CAPTURE, not the register, and this kernel has no clock with which to compare either against now."
          }
        ],
        "fence": "The register extract, the entity identifier, the register type and the retrieval date are every one of them a caller input. This kernel performs no lookup of any kind (zero-egress by contract), ships no copy of either ESMA register, and has no clock: retrieval_date is the date the reader captured the extract, never a machine clock read. register_snapshot_digest pins the exact pasted bytes the verdict was reached against, so a later register update makes an old receipt dated rather than wrong. Presence in a snapshot is never authorisation and never a statement about today."
      },
      "golden_hash": "796a2efa6d0f5fe062beb67cb708ca70a6ac4ea9df84da52c6f3f3b06e59dd2c"
    },
    {
      "name": "empty-extract-indeterminate",
      "policy_parameters": {
        "register_type": "casp",
        "entity_identifier": "529900XXXXXXXXXXXX11",
        "register_extract": "",
        "retrieval_date": "2026-08-11"
      },
      "output_payload": {
        "register_type": "casp",
        "register_label": "CASP",
        "entity_identifier": "529900XXXXXXXXXXXX11",
        "retrieval_date": "2026-08-11",
        "register_source_ref": null,
        "register_snapshot_digest": null,
        "snapshot": {
          "extract_length_chars": 0,
          "extract_present": false,
          "extract_too_large": false,
          "max_extract_chars": 262144,
          "parsed_line_count": 0,
          "data_row_count": 0,
          "header_row_declared": true,
          "header_cells": [],
          "row_cap_exceeded": false,
          "max_rows": 5000
        },
        "search": {
          "delimiter": ",",
          "case_sensitive": true,
          "match_column_declared": null,
          "match_column_resolved": null,
          "match_column_unresolved": false,
          "searched": false
        },
        "match_found": null,
        "matched_row": null,
        "matched_rows": [],
        "match_count": 0,
        "verdict": null,
        "verdict_unavailable_reason": "The verdict sentence is withheld because at least one of its four terms is missing: the retrieval date, the register type, the snapshot digest, or a search that actually ran. A sentence assembled from absent terms would read as a finding.",
        "judgment_required": {
          "fields": [
            {
              "field": "register_extract",
              "reason": "No register extract was pasted, so there is nothing to search and no snapshot to digest. This kernel ships no copy of either ESMA register and performs no lookup, so an absent extract is an absent input, never an empty result.",
              "supplied": null
            }
          ],
          "reason": "One or more inputs the verdict depends on were absent or unusable, so the corresponding step was not performed. An absent input is reported as unresolved, never defaulted into a reading."
        },
        "rationale": [
          "No extract was pasted, so nothing was searched and no snapshot was pinned.",
          "The extract was not searched.",
          "Every cell of every data row was compared, because no match_column was declared.",
          "No presence reading was reached, so match_found is null rather than false: not looking and looking-and-not-finding are different facts.",
          "Presence here is a dated fact about a pasted snapshot. It is not authorisation, not a current status, not a statement that the register is complete or current, and not legal advice."
        ],
        "not_proven": [
          {
            "item": "Authorisation status",
            "detail": "Presence in a register extract is not authorisation, licensing, registration in good standing, or any other status. This kernel reports whether a line was found in pasted text on a stated date, and refuses to say anything about what is true today."
          },
          {
            "item": "Snapshot completeness",
            "detail": "The extract is whatever the reader pasted. Absence of a match proves absence from THAT TEXT, never absence from the register: a partial page, a filtered export, or a different register would each produce the same \"was not present\" reading."
          },
          {
            "item": "Snapshot authenticity",
            "detail": "Nothing here proves the pasted text came from ESMA, was unmodified in transit, or was captured on the date supplied. The digest pins the bytes that were checked; it does not attest their provenance."
          },
          {
            "item": "Identifier correctness",
            "detail": "The entity identifier is compared as a literal string against the extract's own cells. A register spelling the identifier differently, a legal-name change, or a subsidiary listed under a different LEI all read as no match, and none of those is evidence about the entity."
          },
          {
            "item": "Currency of the register",
            "detail": "The register itself may have been stale, mid-update, or corrected after capture. retrieval_date dates the CAPTURE, not the register, and this kernel has no clock with which to compare either against now."
          }
        ],
        "fence": "The register extract, the entity identifier, the register type and the retrieval date are every one of them a caller input. This kernel performs no lookup of any kind (zero-egress by contract), ships no copy of either ESMA register, and has no clock: retrieval_date is the date the reader captured the extract, never a machine clock read. register_snapshot_digest pins the exact pasted bytes the verdict was reached against, so a later register update makes an old receipt dated rather than wrong. Presence in a snapshot is never authorisation and never a statement about today."
      },
      "golden_hash": "364700454e9534ab66e79ebf2cf5941c69f11eb78eaa4e858c42c7720d5b11c5"
    }
  ]
}
