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. Since 0.1.1, a bid line may include leadTime (a whole number from 0 to 9999, hour, day, or week, starting at award), and rescind clears a recorded selection with a reason and returns the request to closed. Run pnpm --filter @bootstrapware/rfq conformance and pnpm --filter @bootstrapware/rfq-example conformance against a persisted store.