118 lines
7.1 KiB
Markdown
118 lines
7.1 KiB
Markdown
# Truthtrance combined ordinary bribe payments
|
||
|
||
## Whole AND/OR prototype — 26 October 2026
|
||
|
||
**Prototyped / Partial.** Questions combine cumulative future ordinary payment
|
||
minima to named non-allied recipients with full AND/OR groups. The packet is
|
||
`{kind:'bribeExpression',target,turn,claim}`. Quiet phases0–8 in registered bare
|
||
native Basic/Advanced use the same native payments, purse and actual turn end
|
||
as [scalar bribes](TRUTHTRANCE_BRIBE_PROMISES.md) and
|
||
[late Mentat bribes](MENTAT_BRIBES.md). Mode/publication gates remain.
|
||
|
||
## Authority and provisional composition
|
||
|
||
The official [November2020 FAQ, printed8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf)
|
||
indexed passage was checked for this batch: current-turn action commitments
|
||
and AND/OR questions are allowed; compliance remains binding until impossible.
|
||
The supplied Advanced physical39/printed37 Truthtrance errata was read for
|
||
current-turn public answer, compliance, later impossibility and unknown/save.
|
||
Neither prescribes an online payment solver. The existing ordinary-payment
|
||
interval, current-funded witness, shared budgets and accepted-order release
|
||
remain explicit provisional composition under standing14October priority.
|
||
|
||
A leaf means cumulative matching ordinary spice paid by this respondent after
|
||
this answer. Smaller payments add together. Repeated same-recipient conditions
|
||
share actual progress; separate questions each retain their own future interval.
|
||
Prior payments, gifts, allied aid and later recipient collection do not count.
|
||
A positive safe whole minimum has no extra spice cap. Full-tree validation uses
|
||
sixteen leaves/depth4 as software limits, not printed question restrictions.
|
||
|
||
AND requires every child; OR at least one. **No negates the whole expression.**
|
||
No to A AND B can permit paying either recipient first while forbidding both
|
||
qualifying totals. No to A OR B forbids either qualifying total. Fulfilled Yes
|
||
stays terminal; No remains live until actual turn advance. No route is stored.
|
||
|
||
## Connected implementation and controls
|
||
|
||
`game/bribe-expression-promises.ts` parses every subtree before evaluation,
|
||
records immutable actual payer progress and lazily yields signed whole-answer
|
||
alternatives composed with existing scalar bribe requirements/caps. The engine
|
||
tries native-funded allocations and retains other battle, bid, revival,
|
||
shipment and movement obligations. Different recipients spend separate spice;
|
||
overlapping recipient thresholds share the same future payments.
|
||
|
||
The native debit/receipt producer records both ledgers before costing the
|
||
remaining purse. Detached quotes do the same, so fulfilling a payment is not
|
||
reserved for a second time. Voluntary spending, alliance offers or Ready cannot
|
||
erase every legal completion. An OR may retain another route after one recipient
|
||
becomes an ally. Opposing impossibility releases incompatible Yes in actual
|
||
accepted order across scalar/whole ledgers; unstamped old records precede new
|
||
answers. Future unknown income, card preparations and foreign consent are not
|
||
invented. Existing terminal historical answers remain terminal.
|
||
|
||
The full controlled editor adds/wraps/nests/removes/collapses groups, changes
|
||
AND/OR and public recipient/minimum fields, and preserves repairable invalid
|
||
drafts. The public preview and native Ask retain the entire validated tree.
|
||
Only the respondent receives feasible answers, own progress and the exact
|
||
native payment guide. Its event may belong to a scalar or whole live answer;
|
||
phase, ownership, options, room and busy guards remain. One shared guide is
|
||
rendered when both ledgers exist. Four minimal profiles answer and pay legally;
|
||
strategy and difficulty tuning remain deferred.
|
||
|
||
A new Yes reopens only its already-ready Mentat payer. Before a known automatic
|
||
Inflation Double closure the earlier Collection deadline/reopening still
|
||
applies. No spans opening collection until actual turn advance. Payer spice is
|
||
spent now; recipient shares collect only at the next actual Mentat opening,
|
||
including next turn for late Mentat payments. Collection never counts progress
|
||
again and incoming deferred spice cannot fund another payment.
|
||
|
||
## Evidence and remaining gates
|
||
|
||
Focused source evidence is in `tests/bribe-expression-promises.test.ts`,
|
||
`tests/truth-bribe-expression-controls.test.tsx`,
|
||
`tests/fixture-truth-bribe-expression.ts`,
|
||
`tests/truth-bribe-expression-runtime.test.ts` and
|
||
`tests/truth-bribe-expression-funding.test.ts`. Fourteen pure,eight controlled,
|
||
17 native and two native funding cases are included in the frozen **19-file,
|
||
188/188** union. `npm run check:quick`, production build and eight native paths
|
||
pass on the same unchanged tree. Thirty-one actual GameTable SSR renders and
|
||
12 actual guide callbacks connect the rule paths; one editor meaning callback
|
||
retains the full tree through native Ask. All four minimal policies actually
|
||
answer and pay on both Basic/Advanced original sources.
|
||
|
||
| Original source | Prefix actions | Further actions | Result |
|
||
| --- | ---: | ---: | --- |
|
||
| Basic H/A/E base33 AND | 20 | 22 | H3/A2 spends E10→5; both exact receipts collect once |
|
||
| Advanced H/A/E base33 AND | 23 | 22 | Same native payment/receipt under Advanced |
|
||
| Basic edited OR | 20 | 21 | Actual editor AND→OR then Ask; manual alternative fulfills |
|
||
| Basic No AND | 20 | 21 | One qualifying recipient allowed, completing both rejects |
|
||
| Basic No OR | 20 | 20 | Either qualifying payment rejects; actual turn closes No |
|
||
| Basic late-ready AND | 32 | 37 | Only payer reopens; H3/A2 wait through next Storm/Collection |
|
||
| Basic shared leader, bribe first | 102 | 16 | Real H1/A1, then native leader2 at T0; both fulfilled |
|
||
| Basic shared leader, revival first | 102 | 16 | Same funded actual payments in opposite accepted order |
|
||
|
||
The source adapters add no installed clock, purse, hand, payment or promise to
|
||
the inherited original setup/auction or projectile-death journeys. All33/47
|
||
original cards remain physical. Controlled UI projections are labelled as such;
|
||
SSR/editor/guide callbacks do not prove browser clicks, hydration or deployment.
|
||
|
||
Initial type feedback required explicit editor leaf narrowing. One focused
|
||
fixture assertion wrongly allowed No to H7 OR A4 after an earlier H7 Yes;
|
||
the corrected case rejects that contradiction and retains its shared budget.
|
||
The wider union also found a stale early-Advanced movement-profile exclusion;
|
||
its current canonical contract already admits native phases0–4, so the test
|
||
now follows that existing scope. No movement runtime is changed.
|
||
|
||
The passing source snapshot is
|
||
`cb79c3723ed995a214a883eb683d7bd8650882078addf77ca47db3dfd487b6ea`
|
||
(3137 files). Final evidence prose is a separate three-document overlay.
|
||
Frozen v3 proof/report/manifest:
|
||
`/home/quintine/.local/share/dune/checkpoints/20261026-truth-bribe-expression-proof-v3/`;
|
||
journeys/HTML: adjacent `20261026-truth-bribe-expression-runtime/`.
|
||
|
||
Wider optional-module/faction/skill timing, owned future preparation,
|
||
cross-family expressions, final rules/recovery/privacy/custody review and
|
||
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.
|