# 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`; each action contains only `{minimum}`. All bid leaves concern the same current ordinary lot. Quiet native Basic/ Advanced tables retain existing [bid](TRUTHTRANCE_BID_PROMISES.md) 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](TRUTHTRANCE_MIXED_REVIVAL.md) 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.