{"openapi":"3.1.0","info":{"title":"TastePolicy Preference Authority API","version":"tastepolicy-platform-contract-v1","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority."},"servers":[{"url":"https://tastepolicy.vercel.app"}],"paths":{"/api/v1/capabilities":{"post":{"summary":"Describe capabilities","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/passport":{"post":{"summary":"Read Passport summary","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority. Requires credential scope PASSPORT_READ.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"passportRef":{"type":"string","minLength":1,"maxLength":128,"description":"Passport reference issued to the account"},"grantId":{"description":"Only for access to another account's Passport","type":"string","minLength":1,"maxLength":128},"stateSummary":{"description":"Counts only, no raw anchors","type":"boolean"}},"required":["passportRef"],"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/policy":{"post":{"summary":"Read autonomy rules","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority. Requires credential scope PASSPORT_READ.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"passportRef":{"type":"string","minLength":1,"maxLength":128},"grantId":{"type":"string","minLength":1,"maxLength":128},"agentId":{"description":"Resolve autonomy rules for this agent","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["passportRef"],"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/lease":{"post":{"summary":"Request a lease","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority. Requires credential scope TASTE_EVALUATE.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":80},"evaluationRef":{"type":"string","minLength":1,"maxLength":128},"ttlSeconds":{"type":"integer","minimum":60,"maximum":86400},"checkpointSeconds":{"type":"integer","minimum":30,"maximum":86400}},"required":["idempotencyKey","evaluationRef"],"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/lease-verify":{"post":{"summary":"Verify a lease","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority. Requires credential scope RECEIPT_READ.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"leaseRef":{"type":"string","pattern":"^tl_[a-f0-9]{48}$"},"expectedRev":{"type":"integer","minimum":0,"maximum":9007199254740991},"candidate":{"description":"The candidate as it is now; only its material fields count","type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"}},"required":["id","name","type"],"additionalProperties":{}},"context":{"description":"The context as it is now; only key, domain and price count","type":"object","properties":{"key":{"type":"string"},"domain":{"type":"string"}},"required":["key","domain"],"additionalProperties":{}},"candidateCommitment":{"type":"string","pattern":"^sha-256:[A-Za-z0-9_-]{43}$","description":"taste-commitments-v1 commitment"},"contextCommitment":{"type":"string","pattern":"^sha-256:[A-Za-z0-9_-]{43}$","description":"taste-commitments-v1 commitment"}},"required":["leaseRef"],"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/lease-checkpoint":{"post":{"summary":"Checkpoint a lease","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority. Requires credential scope TASTE_EVALUATE.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"leaseRef":{"type":"string","pattern":"^tl_[a-f0-9]{48}$"},"expectedRev":{"type":"integer","minimum":0,"maximum":9007199254740991},"candidate":{"description":"The candidate as it is now; only its material fields count","type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"}},"required":["id","name","type"],"additionalProperties":{}},"context":{"description":"The context as it is now; only key, domain and price count","type":"object","properties":{"key":{"type":"string"},"domain":{"type":"string"}},"required":["key","domain"],"additionalProperties":{}},"candidateCommitment":{"type":"string","pattern":"^sha-256:[A-Za-z0-9_-]{43}$","description":"taste-commitments-v1 commitment"},"contextCommitment":{"type":"string","pattern":"^sha-256:[A-Za-z0-9_-]{43}$","description":"taste-commitments-v1 commitment"}},"required":["leaseRef"],"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/lease-resume":{"post":{"summary":"Resume a suspended lease","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority. Requires credential scope TASTE_EVALUATE.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":80},"leaseRef":{"type":"string","pattern":"^tl_[a-f0-9]{48}$"},"evaluationRef":{"type":"string","minLength":1,"maxLength":128},"candidate":{"description":"The candidate as it is now; only its material fields count","type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"}},"required":["id","name","type"],"additionalProperties":{}},"context":{"description":"The context as it is now; only key, domain and price count","type":"object","properties":{"key":{"type":"string"},"domain":{"type":"string"}},"required":["key","domain"],"additionalProperties":{}},"candidateCommitment":{"type":"string","pattern":"^sha-256:[A-Za-z0-9_-]{43}$","description":"taste-commitments-v1 commitment"},"contextCommitment":{"type":"string","pattern":"^sha-256:[A-Za-z0-9_-]{43}$","description":"taste-commitments-v1 commitment"}},"required":["idempotencyKey","leaseRef","evaluationRef"],"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/lease-release":{"post":{"summary":"Release a lease","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority. Requires credential scope TASTE_EVALUATE.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"leaseRef":{"type":"string","pattern":"^tl_[a-f0-9]{48}$"},"expectedRev":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["leaseRef"],"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/attestation":{"post":{"summary":"Issue a verifiable attestation for a lease","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority. Requires credential scope TASTE_EVALUATE.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"leaseRef":{"type":"string","pattern":"^tl_[a-f0-9]{48}$"},"audience":{"type":"string","pattern":"^https:\\/\\/[a-z0-9.-]{1,190}(:\\d{1,5})?$","description":"Origin of the party that will verify the proof"},"holderKey":{"description":"Public JWK of the holder; adds key binding","type":"object","properties":{"kty":{"type":"string"},"crv":{"type":"string"},"x":{"type":"string"}},"required":["kty","crv","x"],"additionalProperties":{}},"delegateAgentId":{"description":"Hand the proof to another agent (requires holderKey)","type":"string","pattern":"^[a-zA-Z0-9_-]{1,64}$"}},"required":["leaseRef","audience"],"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/attestation-verify":{"post":{"summary":"Verify an attestation you received (any valid credential)","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"presentation":{"type":"string","maxLength":16384,"description":"SD-JWT presentation (with key-binding JWT when holder-bound)"},"audience":{"type":"string","pattern":"^https:\\/\\/[a-z0-9.-]{1,190}(:\\d{1,5})?$","description":"Your own origin: the proof must have been issued for it"},"nonce":{"description":"Your key-binding challenge","type":"string","maxLength":200},"dryRun":{"description":"Check without recording the proof","type":"boolean"},"requireKeyBinding":{"type":"boolean"},"expect":{"description":"The choice and situation you are about to act on (or their commitments). Without it the result says the proof was NOT compared with them.","type":"object","properties":{"candidate":{"type":"object","properties":{},"additionalProperties":{}},"context":{"type":"object","properties":{},"additionalProperties":{}},"candidateCommitment":{"type":"string","pattern":"^sha-256:[A-Za-z0-9_-]{43}$","description":"taste-commitments-v1 commitment"},"contextCommitment":{"type":"string","pattern":"^sha-256:[A-Za-z0-9_-]{43}$","description":"taste-commitments-v1 commitment"}},"additionalProperties":false}},"required":["presentation","audience"],"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/evaluate":{"post":{"summary":"Evaluate a proposed choice","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority. Requires credential scope TASTE_EVALUATE.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"idempotencyKey":{"type":"string","minLength":8,"maxLength":128},"passportRef":{"type":"string","minLength":1,"maxLength":128},"grantId":{"type":"string","minLength":1,"maxLength":128},"requestedAction":{"description":"The subjective action you intend to take if allowed, from least to most consequential. Omit it to keep the legacy contract (SUGGEST through ADD_TO_DRAFT). If it goes further than the owner lets this agent go, the answer is ASK (AUTHORITY_CONFIRMATION).","type":"string","enum":["SUGGEST","RANK","SHORTLIST","ADD_TO_DRAFT","PRESENT_AS_SELECTED"]},"proposal":{"type":"object","properties":{"agentId":{"type":"string","minLength":1,"maxLength":80},"expectedStateVersion":{"type":"integer","minimum":1,"maximum":9007199254740991},"candidate":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":80},"name":{"type":"string","minLength":1,"maxLength":160},"type":{"type":"string","enum":["brand","place","destination"]}},"required":["id","name","type"],"additionalProperties":false},"context":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":80},"domain":{"type":"string","minLength":1,"maxLength":40}},"required":["key","domain"],"additionalProperties":{}}},"required":["agentId","expectedStateVersion","candidate","context"],"additionalProperties":{}}},"required":["idempotencyKey","passportRef","proposal"],"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/receipt":{"post":{"summary":"Read a recorded receipt","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority. Requires credential scope RECEIPT_READ.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"evaluationRef":{"type":"string","minLength":1,"maxLength":128}},"required":["evaluationRef"],"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/status":{"post":{"summary":"Read evaluation status","description":"Cultural preference authorization only. ALLOW never grants purchase, payment, booking, messaging, legal, account or private-data authority. Requires credential scope RECEIPT_READ.","security":[{"bearer":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"evaluationRef":{"type":"string","minLength":1,"maxLength":128}},"required":["evaluationRef"],"additionalProperties":false}}}},"responses":{"200":{"description":"Available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Envelope"}}}},"400":{"description":"INVALID_INPUT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"AUTH_REQUIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"ACCESS_DENIED and grant/credential states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"PASSPORT_NOT_FOUND","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"STATE_VERSION_CONFLICT or IDEMPOTENCY_KEY_CONFLICT","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"428":{"description":"COMMITMENT_REQUIRED: a commitment-aware lease needs the candidate and the context presented; `missing` names what was left out","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"RATE_LIMITED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"NOT_CONFIGURED or PROVIDER_UNAVAILABLE","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"TastePolicy developer credential (tp_live_…)"}},"schemas":{"Envelope":{"type":"object","required":["status","data","requestId"],"properties":{"status":{"const":"available"},"data":{"type":"object"},"requestId":{"type":"string"}}},"Error":{"type":"object","required":["status","code","requestId"],"properties":{"status":{"const":"error"},"code":{"type":"string"},"requestId":{"type":"string"}}}}}}