Files
Dune/docs/TRUTHTRANCE_BRIBE_EXPRESSIONS.md
T

7.1 KiB
Raw Blame History

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.