7.7 KiB
Truthtrance current facts and ordinary payments
Mixed aggregate prototype — 26 October 2026
Prototyped / Partial. The packet is
{kind:'mixedBribe',target,turn,mixed}. Raw fact/action/AND/OR clauses reuse
MixedActionExpression<BribePaymentClaim>; a payment leaf contains only
{recipient,minimum}. Quiet native Basic/Advanced phases0–8 retain the existing
ordinary payment scope and all mode gates.
Authority and snapshot meaning
Reuse the mixed-movement composition, recorded publisher November2020 FAQp8 current-turn/AND/OR authority and supplied Advanced physical39/printed37 public answer/compliance/release/unknown text. Existing Mentat timing and cumulative native payer accounting remain. No source supplies a complete online solver; current-funded witnesses, snapshot/unknown and accepted-order release remain provisional under standing14October priority.
Facts freeze at the actual answer. A current-spice fact at10 stays that answer-time fact after promised payments reduce the same purse to5. Later spending/card changes create no new fact answer. No negates the entire mixed expression. Unknown takes false for a definite Yes and true for No, then the remaining owned payment completion must guarantee the aggregate. Correlations between unknown predicates are not inferred. When neither definite completion is known, unknown/save/change-question remains available.
A true held Shield OR payment can settle Yes immediately; false held Hajr AND payment can settle No immediately. Otherwise the action-only residual uses the existing cumulative native payment ledger. Smaller payments after the answer add together per named recipient. Prior payments, gifts, allied aid and later recipient collection do not count. Different questions keep their own future intervals; repeated recipient thresholds share actual payer progress.
Shared implementation and controls
game/mixed-bribe-question.ts rejects leaf metadata/extra keys and reuses scalar
recipient/minimum decoding. The generic mixed parser validates every subtree
and shares one16-leaf/depth4 budget with nested current facts. A positive safe
whole minimum has no artificial extra cap. Server context validates every
recipient as another current nonally, including below decisive fact branches.
Public frozen constants or compiled fields are not accepted.
The existing compiler eagerly reads all current facts before folding known
constants/identity children/singletons. A remaining payment tree binds the
original bribe-expression ledger and accepted order; raw mixedBribeQuestions
metadata links the original question to that event. A constant aggregate has no
native payment binding. There is no second payment/debit/receipt implementation.
Native quotes preserve earlier scalar, grouped, revival, bid, shipment,
movement and battle budgets using the same current uncommitted purse.
Own raw question, aggregate status and recorded payer totals are projected. Compiled residuals are excluded from the public pure-expression ledger; raw internal metadata and frozen per-fact values remain unprojected. The common exact event/phase payment guide can belong to scalar, grouped or mixed answers. Uniform existing Yes readiness reopening applies even to decisive constants, so no immediate compiled-branch readiness flag is added. Required aggregate release and public actual payments retain their original information.
components/mixed-action-fields.tsx shares full add/wrap/nest/switch/remove/
collapse editing and current-fact controls. Movement retains its public API,
IDs/data attributes and callback traversal through a thin adapter. Bribe fields
supply public recipient choices and uniquely identified per-leaf numeric inputs;
invalid numeric/empty-recipient drafts remain repairable. Preview/Ask keep the
complete original tree. Scalar/grouped/mixed panels choose exactly one guide
using live ownership rather than fulfilled historical rows. Four minimal
policies answer and pay legally; strategy/calibration remain deferred.
Payer spice is spent now. Recipient shares remain deferred until the next actual Mentat opening; late Mentat payments wait for next turn's opening. Existing ally, pending-choice, Inflation Double and Bureaucrat guards remain. Yes cannot evade Mentat Ready; No remains binding through collection until actual turn advance. A known automatic Double closure retains the earlier Collection deadline. New mixed discard signatures bind metadata/residual without altering older record signatures. No historical answer is reactivated or database rewritten.
Evidence and remaining gates
Source cases: tests/fixture-truth-mixed-bribe.ts,
tests/truth-mixed-bribe-runtime.test.ts,
tests/truth-mixed-bribe-funding.test.ts.
Controlled shared editing/guide cases: tests/truth-mixed-bribe-controls.test.tsx;
existing mixed-movement controls retain their scope. Nineteen native,two native
funding and nine controlled cases supplement existing generic/scalar/grouped/
movement coverage in the frozen 21-file,216/216 union. Types/lint, production
build and ten native paths pass on the same unchanged source. Actual GameTable
SSR renders33 times;13 guide callbacks submit native packets. Two editor
meaning callbacks (payment and retained movement adapter) preserve their whole
raw questions through native Ask. Four minimal profiles actually answer and pay
on both Basic/Advanced original sources.
| Original source | Prefix actions | Further actions | Actual result |
|---|---|---|---|
| Basic frozen spice | 20 | 22 | H3/A2 reduces E10→5; both exact opening receipts |
| Advanced frozen spice | 23 | 22 | Same answer-time snapshot/native payment/receipt |
| Basic edited true OR | 20 | 20 | Real AND→OR editor/Ask; immediate Yes, no payment binding |
| Basic false AND | 20 | 21 | Immediate No permits an actual ordinary payment |
| Basic unknown OR Yes | 20 | 21 | Unknown forecast requires actual payment |
| Basic unknown AND No | 20 | 21 | Cumulative payments remain below the qualifying minimum |
| Basic late-ready mixed | 32 | 37 | Only payer reopens; receipts wait for next real opening |
| Basic shared leader, bribe first | 102 | 16 | H1/A1 then native leader2 at T0; both obligations fulfilled |
| Basic shared leader, revival first | 102 | 16 | Same real purse in opposite accepted order |
| Basic shared movement editor | 20 | 5 | Retained movement IDs/callbacks edit/Ask the same raw tree |
The first frozen batch passes after updating one old assertion to live scalar
ownership. The passing source snapshot is
ae77b288d097191c4b1f1ecdea123d564184532a9e06b7555f4b2e3fe79a9d0d
(3162 files). Final evidence prose is a separate three-document overlay.
Frozen proof/report/manifest:
/home/quintine/.local/share/dune/checkpoints/20261026-truth-mixed-bribe-proof-v1/;
journeys/HTML: adjacent 20261026-truth-mixed-bribe-runtime/.
SSR/editor/guide callbacks are local engine/control evidence, not DOM,
hydration, browser/mobile or deployed acceptance.
Original H/A/E base33 Basic20/Advanced23 and late Mentat32/35 sources supply E10, its printed Shield and both original H Truths. H/A/T Ix47 sources supply actual T4/dead native leader2 for shared-funding orders. No played clock, purse, hand, payment, fact answer, promise or progress is installed. Controlled views keep those labels rather than claiming original acquisition histories.
Other action families, correlated unknowns, future owned income/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.