7.1 KiB
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 and
late Mentat bribes. Mode/publication gates remain.
Authority and provisional composition
The official November2020 FAQ, printed8 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.