Files
Dune/docs/TRUTHTRANCE_BRIBE_EXPRESSIONS.md
T

118 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.