133 lines
8.2 KiB
Markdown
133 lines
8.2 KiB
Markdown
# 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](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.
|