8.2 KiB
Truthtrance current facts and ordinary bids
Mixed aggregate prototype — 26 October 2026
Prototyped / Partial. The packet is
{kind:'mixedBid',target,turn,lot,mixed}. Fact/action/AND/OR clauses reuse
MixedActionExpression<BidActionClaim>; each action contains only {minimum}.
All bid leaves concern the same current ordinary lot. Quiet native Basic/
Advanced tables retain existing bid eligibility,
mode gates, funded completion and original payment rules.
Authority and snapshot meaning
Reuse the recorded publisher November2020 FAQp8 current-turn/AND/OR and supplied Advanced physical39/printed37 compliance/release/unknown authority. The existing mixed Revival and movement models define the same answer-time fact snapshot. No source supplies a complete online solver; native current-lot opportunity, owned witness and accepted-order release remain provisional under standing14October priority.
Every fact freezes at the actual answer. A current-spice fact at10 stays that answer-time fact after an accepted bid4 and later winning payment leave6. Declaration itself spends no spice; the actual winning invoice does. Later resource/custody changes do not create new fact answers. No negates the entire mixed expression. Unknown takes false for Yes and true for No; any remaining native obligation must guarantee the selected aggregate. Correlations between unknown predicates are not inferred. If neither definite answer has a known guaranteed completion, unknown/save/change-question remains available.
True fact OR bid can settle Yes immediately, false fact AND bid No immediately, without binding any bid. Otherwise every positive leaf is a threshold on the maximum future accepted declaration in this exact lot. AND takes the maximum threshold; OR takes the minimum. This exact reduction preserves all legal amounts and whole No; it chooses no fixed route. Smaller declarations never sum into a larger bid, and a purchase invoice is not a new declaration.
Native interval and shared implementation
game/mixed-bid-question.ts strictly accepts one positive safe whole minimum,
rejecting turn/lot/private metadata inside a leaf. Shared parsing validates all
raw clauses under one16-leaf/depth4 budget including nested facts. Public frozen
constants are not accepted. mixedBidMinimum reduces only an action residual;
it never evaluates a fact or invents funds/opportunities.
The shared compiler eagerly snapshots facts before folding known constants,
identities and singleton groups. Only a needed residual enters the existing
bidPromises ledger with its original hidden physical-lot source/event.
Internal mixedBidQuestions links the original raw tree to that native event;
constants create only terminal aggregate metadata. No second auction, native
bid quote, winning-price solver or custody path is added.
Existing current cash, prepaid ally aid, native Karama, capacity, active/waiting eligibility and earlier shipment/movement/revival/payment budgets remain. Current highest, passed and full-hand participants have no supported future opportunity. Prior declarations cannot fulfill a new answer. Yes requires a qualifying declaration at the next available opportunity while possible; a lower bid/pass assumes no future rival raise. Fulfillment survives losing. No caps every later declaration until actual lot close. Opposing raises may release an impossible Yes in accepted order; voluntary evasion is rejected. No finished record binds a new lot or turn.
Own projection contains only original raw question, turn/lot, whole answer and fulfilled/released status. Frozen values, reduced minimum, binding metadata and hidden lot source remain unprojected; pure bid projection excludes mixed events. There is no additional progress counter because one qualifying declaration immediately fulfills Yes; No persists until actual close. The shared exact native bid/pass guide accepts a live pure or mixed event and retains its original owner/turn/lot/phase/funding guards. Historical panels stay passive. New mixed discard signatures include raw/native metadata without changing old record signatures or reactivating history.
The full shared editor adds/wraps/nests/switches/removes groups and exposes only per-leaf minimum controls with the fixed current turn/lot. Invalid drafts remain repairable. Raw preview/Ask, private answer choices and persistent own aggregate status connect through the table. Four minimal profiles answer and execute native guides; strategy/calibration remain deferred.
Evidence and remaining gates
Pure reduction: tests/mixed-bid-question.test.ts. Original native adapter and
journeys: tests/fixture-truth-mixed-bid.ts,
tests/truth-mixed-bid-runtime.test.ts, tests/truth-mixed-bid-funding.test.ts.
Controlled editor/guide: tests/truth-mixed-bid-controls.test.tsx.
Six pure reduction,19 original native,three funding and nine controlled cases
supplement existing shared compiler/scalar bid/auction/funding coverage. The
frozen 20-file,225/225 union, types/lint, production build and ten native
paths pass on the same unchanged repository source. Actual GameTable SSR renders
33 times; six exact bid-guide callbacks and one editor callback submit native
packets. All four minimal profiles actually answer and declare legal bids on
both original Basic/Advanced sources.
| Original source | Prefix actions | Further actions | Actual result |
|---|---|---|---|
| Basic frozen spice | 22 | 11 | Future bid4 fulfills before original invoice changes E10→6 |
| Advanced frozen spice | 25 | 11 | Same snapshot, actual declaration and original payment |
| Basic edited true OR | 22 | 11 | Actual AND→OR editor/Ask; immediate Yes, later real bid5 remains legal |
| Basic false AND | 22 | 11 | Immediate No leaves a real bid4/purchase legal |
| Basic unknown OR Yes | 22 | 11 | Unknown forecast requires actual future bid4 |
| Basic unknown AND No | 22 | 11 | Bid4 forbidden, actual lower3 purchase settles No at close |
| Basic nested thresholds | 22 | 11 | AND4 with OR7/5 requires exact5; actual purchase leaves E5 |
| Basic waiting opposing raise | 20 | 12 | Real A10 releases E's impossible Yes; A pays and E earns native10 income |
| Basic own bribe budget | 20 | 14 | Bribe7 rejected, real bribe6 plus bid4/invoice leaves E0 |
| Original Karama source | 25 | 12 | Actual11 declaration fulfills, original physical Karama settles free invoice |
Other native cases retain every later No cap after an outbid, previous bid exclusion, exact wire/owner/lot/event, raw own projection, losing after a fulfilled Yes, and new-lot nonreactivation. Two original Truths preserve No6 plus Yes4 with one real5 declaration; shipment9 funding rejects later bidYes4 while actual bid1 leaves the native9-force shipment affordable. All33 cards remain physical.
V1 passes types but lint flags the adapter's capitalized helper call nested in
JSX. The adapter retains the existing shared tail-delegation pattern, with fixed
turn/lot in its legend. No rule or native test expectation changes. All frozen
checks pass in v2. Verified source tree:
09637da04aa264eca212233ba2e33fb40529babab8e92d3caf46e0072425b3a8
(3179 files). Final evidence prose is a separate three-document overlay.
Proof/report/manifest: /home/quintine/.local/share/dune/checkpoints/20261026-truth-mixed-bid-proof-v2/;
journeys/HTML: /home/quintine/.local/share/dune/checkpoints/20261026-truth-mixed-bid-runtime/.
SSR/editor/guide callbacks are local engine/control evidence, not DOM,
hydration, browser/mobile or deployed acceptance.
The inherited original H/A/E base33 source genuinely deals both original Harkonnen Truths, opens the native bank lot and reaches active Basic22/Advanced25 or waiting Basic20/Advanced23 histories. Only the raw question changes; no played clock, purse, hand, bid, answer, promise or fulfilled state is installed. Controlled fixtures retain their labels rather than claiming original acquisition histories.
Other action families, correlated unknowns, phase-wide/native-special auction claims, future preparations, optional modules, broader faction/card/funding composition and final rules/recovery/privacy/custody/browser/mobile/deployed acceptance remain required. No complete mode is certified. No saved-game/ database/server/reset/restart/deployment operation is performed by this batch.