92 lines
5.3 KiB
Markdown
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.
|