{"service":"liberty-agent-settlement","mode":"demo","money":false,"path":"/api/v0/quote","methods":["POST","OPTIONS"],"auth":{"required":false,"mode":"demo","headers":["Authorization: Bearer <key>","X-Liberty-Key"],"key_id":"sha256 hex prefix (k_ + 12 chars). Raw key is never stored.","missing":"key_optional"},"persistence":false,"dry_run":true,"actions":["create","fund","submit","release","dispute","topup"],"note":"Dry-run of the same engine as POST /api/v0/transition, plus action topup. Validate the body against GET /api/schemas/quote.json. Job actions compute the next status and fee math without mutating state. Create quote returns validated open job fields without a durable id. action topup is quote-only: returns credits_charged vs credits_received for the demo top-up markup (5% rounded, added on top of amount). Apply credits_received locally. A quote is not an invoice and not proof of payment. Optional Idempotency-Key is echoed only. Not live escrow custody. Optional demo API key identifies the adapter; omit it and the route still works (key_optional). Not production auth.","idempotency":{"header":"Idempotency-Key","body":"idempotency_key","persistence":false,"replay":false,"note":"Optional. Echoed on success. Create stays dry-check / dry-run and still has no durable id. Liberty does not replay stored responses. No persistence. No SSRF. No real money."},"protocol":"/api/settlement.json","discovery":"/.well-known/agent.json","schema":"/api/schemas/quote.json","errors":"/api/errors.json","quote":"/api/v0/quote","commit":"/api/v0/transition","verify":"/api/v0/verify","simulate":"/api/v0/simulate","validate":"/api/v0/validate"}