Files
Dune/docs/TRUTHTRANCE_TRAITOR_DECISIONS.md
T

92 lines
5.3 KiB
Markdown

# Truthtrance: the current Traitor declaration
## Meaning and authority
**Prototyped / Partial — 25 October 2026.** After both plans reveal, ask an
actual voter who has not submitted whether they will declare the opposing
leader a Traitor in this battle. Yes requires the original legal Reveal; No
requires decline. This concerns the declaration, not whether later Karama or
Nexus betrayal allows its effect. Fulfill at the actual declaration before
those responses. Submitted Yes and No votes are never reopened or rewritten.
This composes the general current-turn action/decision rule from GF9's
November2020 FAQ printedp8, recorded in the
[shipment authority](TRUTHTRANCE_SHIPMENT_PROMISES.md#authority-and-supported-meaning).
No dedicated publisher Traitor-promise example or new ruling is claimed. Future
unrevealed-leader scenarios, arbitrary promises and full-mode acceptance remain
separate. The question has no new faction/module start permission.
## Shared native decision
The engine's original voters and beneficiary determine who can answer, including
combatants, Ecaz co-side voters and a remote Harkonnen ally. Homeworlds retain
their native-voter restriction. Use the same matching physical Traitor and
Kwisatz Haderach check as a real declaration. A Face Dancer is not an ordinary
Traitor. A leaderless/protected or unmatched opponent supplies only No.
Bind current turn, original battle event, voter, beneficiary, opposing player
and revealed leader. Private eligibility stays out of that public source.
Only the respondent sees feasible answers. Public authoring targets depend on
native decision ownership and submission, not hidden card custody. A definite
answer consumes the original physical Truthtrance and resumes the interrupted
parent. Its original discard continuation binds the new promise as well.
Both combatant and allied vote controls use shared private allowed choices and
a persistent promise notice. Busy answer callbacks submit nothing. Existing
minimal policies answer and declare from those choices; no strategy tuning or
difficulty calibration is added. Opposing impossibility can release a still-live
Yes, while voluntary actions cannot erase the required legal declaration.
## Harkonnen Cunning
Printed Cunning may draw during this revealed battle and then requires returning
one held identity. Secret Ally has its existing Mentat timing. See the
[native timing contract](NEXUS_HARKONNEN_RULES.md#timing-composition).
A live promised Reveal protects its matching identity from a voluntary return.
Check the exact selection before applying the exchange or shuffling, and show
the same private blocked reason in controls and legal bot choices. Other held
identities, including the new draw, remain available. A previously selected
blocked identity can be unchecked. No stays binding after a new draw and may
return its matching card. A fulfilled declaration may also return that card:
the original declaration receipt/effective call remains independent of later
custody. A Truthtrance overlay may add its promise during a pending return;
the original parent exempts only the old/new promise ledgers, retaining its
other battle/continuation fields.
## Evidence and remaining scope
The [Basic source](../tests/fixture-truth-traitor-decision.ts) earns original
base33 setup/deal, an actual opposing Traitor choice, paid invasion and two legal
zero-dial unarmed plans. The [Harkonnen sources](../tests/fixture-truth-traitor-harkonnen.ts)
earn actual turn-two alliances, paid Karama/invasion, original four-Traitor hand
and sealed plans. The Cunning branch additionally earns its real original
Harkonnen Nexus draw and pending native return. No played hand, force, wallet,
clock, alliance, vote, promise or parent is installed. A separate unmatched-card
case explicitly uses a conserved original-card exchange. Current choices quote
present native matching eligibility; unknown future Traitor draws are not assumed
to supply a new Yes. Broader owned future-preparation questions remain unfinished.
[Pure choices](../tests/traitor-decision-promises.test.ts),
[native declarations](../tests/truth-traitor-decision-engine.test.ts),
[allied prevention/Cunning](../tests/truth-traitor-harkonnen-engine.test.ts) and
[answer controls](../tests/truth-traitor-decision-controls.test.tsx) cover the
changed path. Frozen **13 files101/101**, types/lint/build and six genuine native
engine/answer-callback/GameTable SSR journeys pass. Basic26, allied Harkonnen72
and Cunning77 source prefixes earn original setup/cards, payments, alliances,
plans and draw/return. Actual answer callbacks respect busy state; four minimal
profiles answer/declare legally. Submitted-false handling and a response-stopping
fixture are repaired; final annotations/narrowing pass, with exact queued
sealed-vote refusal retained.
Private proof/HTML:
`/home/quintine/.local/share/dune/checkpoints/20261025-truth-traitor-decision/`.
`frozen-integrated-3/report.json` binds tree
`1f0db4bd54ba97381e12a3d3c5e98944d387f78fbcd473e212295635aab80c43`,
2787files on base `724eabf99ce0243f9ef27982cbf2509de9ad7550`.
Final prose/reference overlays are separately reviewed.
These are focused prototypes; full faction/mode/module combinations, final
rules/recovery/privacy/custody, browser/hydration/mobile and deployed acceptance
remain open. No saved-game, database, server restart or deployment operation is
part of this checkpoint.