Files
Dune/docs/TRUTHTRANCE_FACE_DANCERS.md
T
Quintine 6ea691255a Add verified current Face Dancer questions to Truthtrance
Ask about a currently held unrevealed printed identity through shared facts
and AND/OR authoring. Keep ordinary Traitor meaning separate, candidate
identities public and only the aggregate answer published. Existing answer,
physical disposal and continuation flow need no new AI strategy.

Verified: 12 affected offline files86/86, types/lint and production build;
twelve actual field/question/gameplay/GameTable SSR journeys and sixteen legal
profile answers. Native Basic/Advanced sources and actual Mentat replacement
prove a current Yes creates no future reveal or retention promise.

Existing mixed-shipment admission stays unchanged. No saved-room, D1, reset,
restart or deployment operation; broader Truthtrance/mode assurance remains.
2026-10-24 19:15:46 +11:00

103 lines
6.3 KiB
Markdown

# Truthtrance: current unrevealed Face Dancer identities
## Source and predicate — 24 October 2026
**Prototyped / Partial.** The [publisher November2020 FAQ, printed p8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf)
allows game-related Yes/No questions and AND/OR combinations. The
[publisher E1 rules, printed p6](https://www.gf9games.com/dunegame/wp-content/uploads/2020/09/IxianAndTleilaxuRulebook.pdf)
establish native Tleilaxu's three Face Dancer cards separately from ordinary
Traitors. The authorized supplied Advanced revision, physical **p38 A** and
**p39 Truthtrance**, retains those cards and broad question permission.
Official indexed text was retrieved; direct FAQ access returned403. This is a
composition of those permissions and a precisely worded current fact, not a
new Face-Dancer-specific publisher FAQ or a new faction power.
The structured fact asks whether the respondent **currently holds the named
identity as an unrevealed Face Dancer**. One matching current card with
`revealed === false` answers Yes. Revealed, absent or returned cards answer No;
history and ordinary Traitor cards do not count. An absent undealt card is not
a prediction of the upcoming deal. Ordinary selected-Traitor questions keep
their existing meaning, including their original selection-time uncertainty.
The identity comes from public native printed rosters plus the shared Cheap
Hero/Heroine Traitor identity; shared Duke has no such card and stays invalid.
The selector never uses the respondent's private cards to populate candidates.
Leader life, captivity, Ghola control or fighting strength does not change this
identity predicate. Auditor is valid when its actual printed identity is in
the selected game; no card, module or roster is invented by asking a question.
## Connected behavior
The focused helper owns exact shape/identity parsing, current matching and
question wording. Shared Truthtrance parsing/evaluation/text uses it, including
existing nested AND/OR questions. The existing target-only verified answer,
storm-order priority, physical question-card disposal and parent continuation
remain. Only the question and whole answer become public; no underlying list
or per-clause match is added to other views. Shared mixed-shipment fact fields
also recognize the predicate, while existing mixed-question mode/turn gates
remain. Native Tleilaxu's current expansion profile does not gain a mixed-shipment
entry merely because this fact exists.
Persistent author controls explicitly distinguish currently unrevealed Face
Dancers from ordinary Traitors and future promises. A current Yes does not
reveal a physical Face Dancer, make it turn traitor, commit a later Face Dance,
or require retaining the card. Actual later native Mentat replacement is still
legal; the historical answer remains about the earlier current holdings.
All four profiles use the same existing owner-only verified-answer path;
there is no new question strategy or calibration.
## Native source and bounded proof
The fixture uses public Basic or explicit Advanced-preview Tleilaxu/Atreides/
Emperor setup with the original Ix family. Atreides is dealt its original
Truthtrance, other players choose actual Traitors, and native setup deals
Tleilaxu three actual Face Dancers. Native Storm/Spice reaches clean Charity.
Only original undealt card/Spice positions and scalar shuffle choices are
selected; no played hand, Face Dancer status, phase, wallet, answer or receipt
is assigned. Optional branches actually reach first Mentat and replace one
unrevealed Face Dancer before or after the answer. Basic and Advanced initial
sources take26/29 actions; replacement-first sources take60/63.
The frozen **12-file86/86** affected offline union, `npm run check:quick`,
production build and changed-control runtime smoke pass. Nine focused helper,
thirteen actual engine and six control cases cover held/unheld/revealed/returned
identity, exact parsing, Hero/Auditor/Duke boundaries, ordinary Traitor separation,
compound aggregate, rejected answers, original physical disposal and actual
Mentat replacement. The existing Truthtrance/knowledge/hand/count/No-Field/mixed
and shared-Duke file union retains its own bounded behavior.
Twelve actual identity-field callback/question/answer/full GameTable SSR
journeys cover Basic and Advanced held/unheld, OR aggregates, replacement-first
old/new and answer-then-replace. Their original parents resume; histories remain
correct after custody changes. Sixteen own-view answer paths across all four
existing profiles accept sixteen native Yes/No actions. Runtime source is
genuine native play; this is not browser/hydration/mobile or complete-game proof.
The one narrow proposed mixed-shipment test initially expected native Tleilaxu
to be admitted. That existing expansion profile is still excluded; the repaired
test proves rejection preserves the held card and permits the standalone fact
instead. No rule, mode or producer is loosened for the fixture. Basic native
fact1/1, actual replacement and the corrected gate case pass, followed by the
entire frozen union and required checks without further failures.
Evidence binds base `eff668b2029fe9935971b41e9f0597c1a014e78b`, tree
`db04e145756ca0eb4af846e62d3a8943d29804c294dffe306ce43e99d267df3b`
(2721 nonignored files). Private reports, logs, full-table/field renderings and
source hashes stay outside Git in `20261024-truthtrance-face-dancer`; four final
checkpoint prose/reference overlays are reviewed separately without changing
the verified application or tests.
Relevant paths: [predicate](../game/truthtrance-face-dancer.ts),
[shared Truthtrance flow](../game/truthtrance.ts),
[public identity field](../components/truthtrance-face-dancer.tsx),
[shared author](../components/mixed-shipment-fields.tsx),
[native fixture](../tests/fixture-truthtrance-face-dancer.ts),
[helper cases](../tests/truthtrance-face-dancer-fact.test.ts),
[engine cases](../tests/truthtrance-face-dancer-engine.test.ts) and
[control cases](../tests/truthtrance-face-dancer-controls.test.tsx).
This is a current-fact prototype, not complete arbitrary Truthtrance, all
future/mixed questions, full modes, comprehensive save/privacy/custody review,
browser/hydration/mobile or deployed acceptance. No saved-room/D1/reset/restart/
deployment operation is needed. Wider printed rules and final AI remain due.