127 lines
7.7 KiB
Markdown
127 lines
7.7 KiB
Markdown
# 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](TRUTHTRANCE_BRIBE_EXPRESSIONS.md) scope and all mode gates.
|
||
|
||
## Authority and snapshot meaning
|
||
|
||
Reuse the [mixed-movement composition](TRUTHTRANCE_MIXED_MOVEMENT.md), recorded
|
||
[publisher November2020 FAQp8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf)
|
||
current-turn/AND/OR authority and supplied Advanced physical39/printed37 public
|
||
answer/compliance/release/unknown text. Existing [Mentat timing](MENTAT_BRIBES.md)
|
||
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.
|