6733d0c7c4
The AP2 primitives (checkout/payment mandates, Ed25519 sign/verify, the x402 rail reference, attach-to-message) already existed, but the gateway only *carried* mandates on the resulting task — it never verified them, so ap2Verifications was never populated and a downstream paid path had no trust signal. Wire opt-in verification: set Options.AP2PublicKey (gateway) or a2a.WithAP2PublicKey (embedded handler) and each mandate carried on a task is verified (signature + task/context binding) with the result recorded in task.AP2Verifications; the x402 settlement rail rides along for the paid path. Off by default — mandates stay carried-but-unverified — so no payment trust decision enters the default flow. Adds a gateway integration test driving a real message/send that carries a signed x402 payment mandate (verified, rail carried; tampered → surfaced as unverified) plus a default-path test proving carry-only is unchanged. Claude-Session: https://claude.ai/code/session_01CmdEY7pYmV5zzwCjNJ4ykL Co-authored-by: Claude <noreply@anthropic.com>