One builder for product acceptance and live projection, alongside validActionsForStatus.
It does not authenticate tokens, load state, persist terms, or mutate a buy.
Call under the existing authorization, governance, revision and idempotency
boundary. Gates and conditions are seller-owned results, not buyer assertions.
Explicitly accept complete binding terms selected by the seller from all
affected product templates. Nothing is materialized from a product alone.
Omitting sellerAccepted or supplying false throws, including for JS callers.
One builder for product acceptance and live projection, alongside validActionsForStatus. It does not authenticate tokens, load state, persist terms, or mutate a buy. Call under the existing authorization, governance, revision and idempotency boundary. Gates and conditions are seller-owned results, not buyer assertions.