Adapter

Local, BYO, and Hosted implement RfqAdapter. Mutations take operationId (max 80) and a version. Replay of the same key and payload returns the same result. A conflicting payload is rejected. A stale version is a 409 and keeps the user draft.

The typed methods cover list/detail, create/update/publish/revise, invite/revoke, quote draft/submit/withdraw, close/reopen/cancel, compare/shortlist/select/rescind, clarifications, attachment references, history, and export. Run pnpm --filter @bootstrapware/rfq conformance and pnpm --filter @bootstrapware/rfq-example conformance against a persisted store.