{
  "tool_id": "art-169-eudr-supply-chain-traceability-linker",
  "note": "golden_hash empty until first `node golden-parity.test.mjs --update`.",
  "vectors": [
    {
      "name": "first-operator-clean",
      "policy_parameters": {
        "supply_chain": {
          "operator_is_first": true,
          "upstream_dds_refs": [],
          "plot_geolocation_present": true,
          "custody_chain_complete": true
        }
      },
      "output_payload": {
        "chain_integrity": true,
        "single_dds_rule_met": true,
        "operator_is_first": true,
        "linked_dds_count": 0,
        "refs_valid": null,
        "plot_geolocation_present": true,
        "custody_chain_complete": true,
        "traceability_gaps": []
      },
      "golden_hash": "4971d5dca7c6c186024bf0edd5c2cf83fccfa7bfa8b581497110843e483ffd05"
    },
    {
      "name": "downstream-operator-with-refs",
      "policy_parameters": {
        "supply_chain": {
          "operator_is_first": false,
          "upstream_dds_refs": [
            "TRACES-2026-DE-001234",
            "TRACES-2026-DE-001235"
          ],
          "plot_geolocation_present": true,
          "custody_chain_complete": true
        }
      },
      "output_payload": {
        "chain_integrity": true,
        "single_dds_rule_met": true,
        "operator_is_first": false,
        "linked_dds_count": 2,
        "refs_valid": true,
        "plot_geolocation_present": true,
        "custody_chain_complete": true,
        "traceability_gaps": []
      },
      "golden_hash": "7ca15d02ebc484371764f2caee6b5c341e77f5b23cc1304ab2c5e47e8affb2b2"
    },
    {
      "name": "downstream-no-refs-gaps",
      "policy_parameters": {
        "supply_chain": {
          "operator_is_first": false,
          "upstream_dds_refs": [],
          "plot_geolocation_present": false,
          "custody_chain_complete": false
        }
      },
      "output_payload": {
        "chain_integrity": false,
        "single_dds_rule_met": false,
        "operator_is_first": false,
        "linked_dds_count": 0,
        "refs_valid": null,
        "plot_geolocation_present": false,
        "custody_chain_complete": false,
        "traceability_gaps": [
          "downstream_operator_must_reference_upstream_dds",
          "plot_geolocation_missing",
          "custody_chain_incomplete"
        ]
      },
      "golden_hash": "5989c26a67c07f17b9fbaf1c3bb9cfb289d051e89339ea610e784a76f3911bd3"
    },
    {
      "name": "empty-input",
      "policy_parameters": {},
      "output_payload": {
        "chain_integrity": false,
        "single_dds_rule_met": false,
        "operator_is_first": false,
        "linked_dds_count": 0,
        "refs_valid": null,
        "plot_geolocation_present": false,
        "custody_chain_complete": false,
        "traceability_gaps": [
          "downstream_operator_must_reference_upstream_dds",
          "plot_geolocation_missing",
          "custody_chain_incomplete"
        ]
      },
      "golden_hash": "c06112eff78b4322743a93625cd1c10d64adf0234309cb876aed44295000ee35"
    }
  ]
}
