{
  "tool_id": "art-559-attest-calc-agent-independence",
  "note": "golden_hash pinned (see vectors).",
  "vectors": [
    {
      "name": "none-declared-clean",
      "description": "Independence declared none; two interested parties, plaintext party_id; cites an art-251 trigger artifact.",
      "policy_parameters": {
        "calc_agent_id": "did:web:calcagent-example.test",
        "interested_parties": [
          {
            "party_role": "cedant",
            "party_id": "cedant-example-co"
          },
          {
            "party_role": "sponsor",
            "party_id": "sponsor-example-spv"
          }
        ],
        "relationship_declaration": "none",
        "trigger_ref": {
          "execution_hash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "tool_id": "art-251-compute-parametric-trigger-payout"
        }
      },
      "output_payload": {
        "calc_agent_id": "did:web:calcagent-example.test",
        "interested_parties": [
          {
            "party_role": "cedant",
            "party_id": "cedant-example-co",
            "label": "asserted"
          },
          {
            "party_role": "sponsor",
            "party_id": "sponsor-example-spv",
            "label": "asserted"
          }
        ],
        "relationship_declaration": "none",
        "disclosure_note": null,
        "trigger_ref": {
          "execution_hash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "tool_id": "art-251-compute-parametric-trigger-payout"
        },
        "independence_asserted": true,
        "rejected_inputs": [],
        "note": "Not a determination of independence -- a citable record of what was declared, and to which specific trigger computation. Whether the declaration is true is a fact for the parties and, on dispute, an arbitrator or court to establish. Self-declared only, never independently verified against an external corporate registry."
      },
      "golden_hash": "dab4b413921e756c264dd65b5320e0b315f9fa293f69279f1c65be41f443c275"
    },
    {
      "name": "disclosed-relationship",
      "description": "Relationship disclosed with a note; independence_asserted must be false.",
      "policy_parameters": {
        "calc_agent_id": "calcagent-2",
        "interested_parties": [
          {
            "party_role": "reinsurer",
            "party_id": "reinsurer-example-re"
          }
        ],
        "relationship_declaration": "disclosed",
        "disclosure_note": "calc agent is a wholly owned subsidiary of the reinsurer named above",
        "trigger_ref": {
          "execution_hash": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
          "tool_id": "art-252-validate-cat-bond-trigger-terms"
        }
      },
      "output_payload": {
        "calc_agent_id": "calcagent-2",
        "interested_parties": [
          {
            "party_role": "reinsurer",
            "party_id": "reinsurer-example-re",
            "label": "asserted"
          }
        ],
        "relationship_declaration": "disclosed",
        "disclosure_note": "calc agent is a wholly owned subsidiary of the reinsurer named above",
        "trigger_ref": {
          "execution_hash": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
          "tool_id": "art-252-validate-cat-bond-trigger-terms"
        },
        "independence_asserted": false,
        "rejected_inputs": [],
        "note": "Not a determination of independence -- a citable record of what was declared, and to which specific trigger computation. Whether the declaration is true is a fact for the parties and, on dispute, an arbitrator or court to establish. Self-declared only, never independently verified against an external corporate registry."
      },
      "golden_hash": "ac378060dbea6df84a4ff73a52e10b2f66b38cef23db8c1b55540918c2a7ab57"
    },
    {
      "name": "private-party-id-commitment",
      "description": "SPEC.md §25 private-input path: party_id supplied as a sha256-salted@1 commitment instead of plaintext.",
      "policy_parameters": {
        "calc_agent_id": "calcagent-3",
        "interested_parties": [
          {
            "party_role": "sponsor",
            "party_id": "sha256:cd5e29fe0b0d8c451c23e571275fd97975c21a7cede5c8c0223ffb9c8daafc55",
            "party_id_commitment_scheme": "sha256-salted@1"
          }
        ],
        "relationship_declaration": "none",
        "trigger_ref": {
          "execution_hash": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
          "tool_id": "art-309-parametric-index-deriver"
        }
      },
      "output_payload": {
        "calc_agent_id": "calcagent-3",
        "interested_parties": [
          {
            "party_role": "sponsor",
            "party_id": "sha256:cd5e29fe0b0d8c451c23e571275fd97975c21a7cede5c8c0223ffb9c8daafc55",
            "label": "private-commitment",
            "party_id_commitment_scheme": "sha256-salted@1"
          }
        ],
        "relationship_declaration": "none",
        "disclosure_note": null,
        "trigger_ref": {
          "execution_hash": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
          "tool_id": "art-309-parametric-index-deriver"
        },
        "independence_asserted": true,
        "rejected_inputs": [],
        "note": "Not a determination of independence -- a citable record of what was declared, and to which specific trigger computation. Whether the declaration is true is a fact for the parties and, on dispute, an arbitrator or court to establish. Self-declared only, never independently verified against an external corporate registry."
      },
      "golden_hash": "7558eb962cdb2437373e74f15b647c3a03b89e433324117b9deed38ecfb94136"
    },
    {
      "name": "rejected-missing-and-unknown-scheme",
      "description": "Finite gate: missing relationship_declaration and trigger_ref.tool_id, plus a rejected unknown commitment scheme.",
      "policy_parameters": {
        "calc_agent_id": "calcagent-4",
        "interested_parties": [
          {
            "party_role": "other",
            "party_id": "some-plaintext-id",
            "party_id_commitment_scheme": "md5-plain"
          }
        ],
        "trigger_ref": {
          "execution_hash": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
        }
      },
      "output_payload": {
        "calc_agent_id": "calcagent-4",
        "interested_parties": [
          {
            "party_role": "other",
            "party_id": null,
            "label": "asserted",
            "party_id_commitment_scheme": "md5-plain"
          }
        ],
        "relationship_declaration": null,
        "disclosure_note": null,
        "trigger_ref": {
          "execution_hash": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
          "tool_id": null
        },
        "independence_asserted": false,
        "rejected_inputs": [
          {
            "where": "relationship_declaration",
            "reason": "absent or not one of \"none\"/\"disclosed\" -- must be explicitly declared, never assumed",
            "supplied": null
          },
          {
            "where": "trigger_ref.tool_id",
            "reason": "absent -- must name which trigger-computation artifact this independence claim covers",
            "supplied": null
          },
          {
            "where": "interested_parties[0].party_id_commitment_scheme",
            "reason": "unknown commitment scheme -- \"sha256-salted@1\" is the sole scheme accepted (SPEC.md §25.1); the declared party_id is excluded rather than trusted as opaque",
            "supplied": "md5-plain"
          }
        ],
        "note": "Not a determination of independence -- a citable record of what was declared, and to which specific trigger computation. Whether the declaration is true is a fact for the parties and, on dispute, an arbitrator or court to establish. Self-declared only, never independently verified against an external corporate registry."
      },
      "golden_hash": "1151b408f62e05ee398a9213ca9de7818bfea40e6f1f80a133f1c372a2893d34"
    }
  ]
}
