{
  "tool_id": "art-16-google-ap2-mandate-builder",
  "note": "golden_hash pinned (see vectors).",
  "vectors": [
    {
      "name": "page_defaults_open_checkout_mandate",
      "policy_parameters": {
        "mandate_type": "checkout",
        "stage": "open",
        "agent_id": "did:web:agent.example.com",
        "subject": "urn:user:demo-001",
        "merchant": "merchant.example.com",
        "amount": "3239 USD"
      },
      "output_payload": {
        "vdc": {
          "@context": [
            "https://www.w3.org/ns/credentials/v2",
            "https://ap2-protocol.org/context/v1"
          ],
          "type": [
            "VerifiableCredential",
            "CheckoutMandate"
          ],
          "issuer": "did:web:agent.example.com",
          "credentialSubject": {
            "id": "urn:user:demo-001",
            "mandateType": "checkout",
            "stage": "open",
            "merchant": "merchant.example.com",
            "constraints": {
              "merchantAllowList": [
                "merchant.example.com"
              ],
              "goal": "user-stated purchase intent"
            }
          },
          "proof": {
            "type": "DataIntegrityProof",
            "cryptosuite": "eddsa-2022",
            "verificationMethod": "did:web:agent.example.com#key-1",
            "proofPurpose": "assertionMethod",
            "proofValue": "<ILLUSTRATIVE — sign with the agent key>"
          }
        },
        "vdc_type": "CheckoutMandate",
        "vdc_stage": "open",
        "issuer": "did:web:agent.example.com",
        "has_proof": true,
        "note": "Illustrative Google AP2 mandate skeleton (external spec, ap2-protocol.org) — distinct from the AINumbers Policy Mandate. Field names illustrative; sign with the agent key and verify against the live spec before real use."
      },
      "golden_hash": "81a8f63c837ebb9103da7dc905dd29aa2dd9b75f525d5f2e3df32b0431a9b7f5"
    },
    {
      "name": "closed_payment_mandate",
      "policy_parameters": {
        "mandate_type": "payment",
        "stage": "closed",
        "agent_id": "did:web:agent.example.com",
        "subject": "urn:user:demo-001",
        "merchant": "merchant.example.com",
        "amount": "3239 USD"
      },
      "output_payload": {
        "vdc": {
          "@context": [
            "https://www.w3.org/ns/credentials/v2",
            "https://ap2-protocol.org/context/v1"
          ],
          "type": [
            "VerifiableCredential",
            "PaymentMandate"
          ],
          "issuer": "did:web:agent.example.com",
          "credentialSubject": {
            "id": "urn:user:demo-001",
            "mandateType": "payment",
            "stage": "closed",
            "merchant": "merchant.example.com",
            "checkoutRef": "checkout:merchant.example.com",
            "amount": {
              "value": "3239",
              "currency": "USD"
            }
          },
          "proof": {
            "type": "DataIntegrityProof",
            "cryptosuite": "eddsa-2022",
            "verificationMethod": "did:web:agent.example.com#key-1",
            "proofPurpose": "assertionMethod",
            "proofValue": "<ILLUSTRATIVE — sign with the agent key>"
          }
        },
        "vdc_type": "PaymentMandate",
        "vdc_stage": "closed",
        "issuer": "did:web:agent.example.com",
        "has_proof": true,
        "note": "Illustrative Google AP2 mandate skeleton (external spec, ap2-protocol.org) — distinct from the AINumbers Policy Mandate. Field names illustrative; sign with the agent key and verify against the live spec before real use."
      },
      "golden_hash": "1a5651fba013a2db76b2f2c22c25742c96108a13a86f3b68321990bb9646b6f4"
    }
  ]
}
