{"service":"liberty-agent-settlement","mode":"demo","money":false,"path":"/api/v0/transition","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":false,"actions":["create","fund","submit","release","dispute"],"note":"Stateless demo engine. Client holds the job and credits. Liberty returns the next state and fee math. Optional Idempotency-Key makes create ids stable for retries; it does not replay stored responses. 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. On create, SHA-256 of the key plus title/amount/criteria yields as_ + 10 hex. Same key and create fields = same job id. Different keys = different ids. Missing key = random as_ + 10 hex. Echoed on success; idempotent is true when the id came from the key. Later actions echo the key only. 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/transition.json","quote":"/api/v0/quote","commit":"/api/v0/transition","verify":"/api/v0/verify","simulate":"/api/v0/simulate","validate":"/api/v0/validate"}