12 KiB
Truthtrance ordinary bid commitments
Richese Once Around bid prototype — 27 October 2026
Prototyped / Partial. The distinct {kind:'richeseBid', target, turn, event, minimum} question binds the current public Once Around lot, not its private
card identity. The original physical Truth card, one bid or pass, bid order,
capacity, currently available spice, pledged ally funding and native winner's
payment remain unchanged. An accepted qualifying bid fulfills Yes even if it
loses; No excludes qualifying declarations. The last-acting Richese owner gets
no opportunity if all other bidders pass, so Yes is not forecast without an
existing positive bid. A real opposing raise or loss of funds can release an
impossible Yes; the respondent cannot deliberately abandon it.
The public question editor, private answer, own receipt, event-bound guide and four minimal legal bot profiles are connected. Existing positive independent financial/transport commitments restrict admission in both answer orders until a combined planner is implemented. Silent and normal special auctions, mixed expressions, optional module combinations, broad Semuta discard interactions, complete modes and browser/deployed acceptance remain open. Basic's native Semuta preview may enter the quiet lot path, without certifying its combinations.
The GF9 November 2020 FAQ p8 supports current-turn action questions and compliance while possible but does not prescribe this Once Around procedure. The online opportunity and release policy is a provisional software interpretation, not a dedicated publisher ruling. Native Basic/Advanced R/A/E starting deals and auction actions exercise answers, costs, lot continuation, rival raises and minimal bots. A separate Advanced bribe conflict uses a labeled card-conserving supplement. Server-rendered controls and guide callbacks are exercised, without operating the stateful selector. Ten focused files pass 120/120; type/lint and build pass.
Phase-wide ordinary bid prototype — 27 October 2026
Prototyped / Partial. A distinct {kind:'phaseBid', target, turn, minimum}
asks whether the respondent will make at least one accepted ordinary bid of
that size after the answer and before this turn's Bidding ends. It may be asked
before Bidding or during a quiet ordinary lot on supported native tables. A Yes
survives lot changes until fulfilled or made impossible; No caps every later
ordinary bid until actual phase close. The original current-lot question and its
saved records remain separate. The general FAQ authority below does not contain
a phase-wide bid worked example, so these online feasibility rules are explicitly
provisional.
An accepted declaration fulfills Yes even if it later loses; purchases retain their real payment. A later lot is not assumed when all players might pass: there must already be a funded positive winning bid, a physically prepared next card and post-purchase hand space and funding. Possible Basic and Advanced Harkonnen bonus draws reserve their hand slot; a cancelable Karama-only overbid is not a funded later-lot witness. Existing current-lot answers are considered before forecasting the later invoice. Before Bidding, a witness uses current eligible hand space, funding and available card count, without inventing a future acquisition. Ixian or Richese special-auction preparation is not forecast. Existing transport, revival and aggregate turn commitments retain current-lot checks; the future combined planner is not implemented. Before Bidding, an independent bribe can be quoted first using currently funded payments, leaving only the actual remaining funds for the bid; current-lot independent bribe combinations remain limited. Uncertain combinations do not create a fictitious later witness or release an answer merely because that planner is absent. Full special-auction, mixed-expression and module coverage remains open.
The private panel displays owned answers and a server-quoted current bid/pass; its event and public lot ordinal reject stale guided actions. The ordinary question control, current answer choices and four minimal bot profiles use the same server projections. No extra card, funds, hand slot, auction or payment is created. Prior bids do not count. Public Basic and Advanced fixtures exercise original Truth cards, actual bids and competing funded and unfunded commitments; additional cases explicitly stage conserved resources. Server-rendered controls and their engine callback have focused smoke coverage. Stateful browser interaction, full-game, recovery and deployed acceptance remain separate. The focused 12-file batch passes 224/224; type/lint and the production build pass.
Admission and external funding correction — 27 October 2026
Later independent shipment, movement, revival and travel answers are checked against an existing phase-bid Yes before they are offered. A movement No does not itself require a movement or suppress a future bid. When the combined future planner cannot prove a positive answer, it may withhold that definite answer; this remains a conservative prototype boundary, not a completed planner. An external change releases an impossible Yes when a bribe and bid are fully quoted, while an unsupported future combination remains unknown. Original Basic/Advanced questions and real bids exercise the acceptance path; revival and external-loss supplements stage a conserved force or spice transfer. Seven focused files pass 88/88; type/lint and build pass.
Current-lot prototype — 26 October 2026
Prototyped / Partial. The question binds one future ordinary bid declaration of at least a chosen positive whole amount in the current lot. Registered native Basic/Advanced tables use their selected decks and ordinary auctions. Optional modules, independent cards, Semuta/Kull, native special auctions and phase-wide/grouped bidding claims remain required work. The native force-revival follow-up adds current-phase ordinary returns; broader revival promises remain due. This does not change game-start permissions.
Authority and selected interpretation
The GF9 November 2020 FAQ, printed p8 permits game-related yes/no questions and current-turn action commitments, requires compliance while possible, and releases a later impossible answer. Its worked example concerns shipment; it does not prescribe a bidding-specific packet or online auction boundary. The official-domain indexed text was checked for this slice. The previous general source audit remains applicable.
Under the standing 14 October choose-recommended instruction, use a single accepted bid in this exact ordinary lot. Only a still-eligible active or waiting bidder can answer; current-highest, already-passed and full-hand players have no new opportunity for this question. An earlier bid does not fulfill it. Yes requires a qualifying declaration at the player's next available opportunity while possible; a smaller bid or pass cannot rely on a future rival raise. No forbids every later qualifying bid through the close of the lot. These are explicit provisional software interpretations, not a dedicated publisher FAQ.
Fulfillment records the declaration, even if someone else wins. The original winning invoice and Karama payment remain separate and binding. Legal native Karama overbidding is retained; the question creates no spice, discount or free purchase. Existing current cash, prepaid allied aid, capacity and normal quote checks remain authoritative. Unknown purchases and future rival income are not assumed. Earlier shipment/movement funding obligations constrain the bid quote.
State, actions and continuation
game/bid-promises.ts validates positive safe-integer turn, one-based lot
and minimum. The new question is {kind:'bid',target,turn,lot,minimum}.
It uses the original card declaration, priority, Ask, public Yes/No, physical
discard and interrupted-auction continuation. It adds no automatic human reply.
The engine privately binds the original physical lot, turn, respondent and asker with a distinct event. Public history contains the stated lot/minimum and answer; the unrevealed card binding is never projected. Only the respondent receives feasible answers and its own sanitized commitment/guide. The guide waits for the real active seat and original pending windows, and its event rejects stale guided callbacks. Ordinary manual bid packets retain their shape.
The native bid quote is shared with ordinary bidding. Yes requirements form a lower bound; No requirements cap the permitted amount. Several original Truthtrances must remain jointly satisfiable. A real accepted bid fulfills each matching Yes; No persists. Native settlement, custody and income then continue normally. A paid purchase is not another bid.
Own voluntary spending or closure cannot erase a remaining Yes. A completed opposing raise can price out the respondent and release only impossible Yes answers in accepted order; feasible answers and No constraints remain. Finished lots fulfill No and release any forced impossible remainder. Records may stay in history, but never bind another lot or turn. Recovery/privacy/custody certification is deferred with the rest of the full-rules review.
Connected controls and evidence
The original Truthtrance selector offers Bind a bid in this ordinary lot,
with fixed public lot/turn, editable validated minimum and an explicit preview.
Only feasible respondent answers are shown. components/bid-promises.tsx
keeps the owner's obligation and fulfilled/released status visible; its guarded
button submits the authoritative bid/pass packet without duplicating prices.
No transient notice is required. All four existing policies use the same legal
answer/next-action guidance; strategy and strength tuning remain deferred.
Pure cases: tests/bid-promises.test.ts. Native source and engine cases:
tests/fixture-truth-bid.ts, tests/truth-bid-runtime.test.ts. Controlled and
source-earned callbacks: tests/truth-bid-controls.test.tsx. Original H/A/E
starts genuinely deal Harkonnen both physical Truthtrances and the other native
hands. Only unopened deal/lot/Spice positions and scalar lotteries are selected;
no played card, purse, force, auction, question or promise is installed.
Frozen integration passes 14 files,175/175, types/lint/build and four native runtime paths with17 GameTable SSR renders and two actual guide callbacks. Ten pure cases, fourteen native engine cases and six controlled/source-earned UI cases cover the new contract. Related original auction, Banker/Bureaucrat, funding and Truthtrance cases remain passing after the native quote extraction.
Public H/A/E Basic/Advanced active sources use22/25 actions plus8 each. Actual declaration/priority/Ask/answer precede the authoritative bid callback; Yes4 fulfills before cash changes, then the original winner pays4. Four existing minimal policies each submit a legal guide action per source. Waiting sources use20+12 actions for No4/lower3/lot expiry/new-lot4, or20+9 for an actual A10 opposing bid, E10's released Yes8 and original A payment/native E income10.
Other native cases bind both original cards as No6 plus Yes4, lose after a fulfilled declaration, spend an original Karama after the promised11 bid and reject stale/foreign packets and voluntary loss of required funding. An earlier shipment Yes9 disallows later bid Yes4; a paid1 card leaves the actual9 for a native nine-force shipment. All33 original cards remain physical. SSR confirms the original authoring option, respondent answers, persistent guide and final statuses; actual hook-free callbacks execute the original native bid packet. This is not DOM/hydration or browser evidence.
Report/source manifest:
/home/quintine/.local/share/dune/checkpoints/20261026-truth-bid-proof-v1/;
journeys/HTML: adjacent 20261026-truth-bid-runtime/.
No saved-room/D1/server, reset/restart, deployment or separate assurance campaign.
Full Truthtrance, module/native-special composition, browser/mobile/deployed
acceptance and final assurance remain open.