377 lines
23 KiB
Markdown
377 lines
23 KiB
Markdown
# Truthtrance: recorded predictions and storm knowledge
|
||
|
||
## Freeform compound current facts — 29 October 2026
|
||
|
||
**Prototyped / Partial.** New current-fact questions can combine two to eight
|
||
recognized fact clauses with a single AND or OR. This includes combining
|
||
prediction or forecast knowledge with physical force counts, card facts and
|
||
personal spice. For example, “Did you predict Guild and do you have at least
|
||
3 forces in your reserves?” is checked as one aggregate; the editor previews
|
||
its interpretation and the target alone sees the result before responding.
|
||
Unavailable knowledge retains the existing three-valued AND/OR behavior.
|
||
|
||
Newly recognized expressions carry version 7. Earlier versioned and
|
||
unstamped questions retain their previous meaning. Mixed operators without
|
||
explicit supported grouping, ambiguous partitions, current-turn commitments
|
||
and unrecognized wording remain player-managed. This bounded grammar is a
|
||
provisional online interpretation, not general language understanding. The
|
||
runtime fixture stages the Truthtrance card while preserving its physical
|
||
inventory; seventeen related freeform files pass 79 cases. Full rules and
|
||
deployed verification remain open.
|
||
|
||
## Freeform predictions, forecasts and forces — 29 October 2026
|
||
|
||
**Prototyped / Partial.** New current-fact questions recognize bounded wording
|
||
for the recorded Bene Gesserit prediction, a submitted storm dial, Fremen's
|
||
storm forecast, Atreides' known next Spice Blow, and counts of the respondent's
|
||
physical forces in reserves, Tanks or on the board. For example, “Did you
|
||
predict Harkonnen?” and “Do you have at least 3 forces in your reserves?” use
|
||
the same checked facts as the structured editor. Unavailable knowledge yields
|
||
I don't know; the preview names the interpretation and only the respondent sees
|
||
the checked answer before replying. Physical counts exclude concealed markers.
|
||
|
||
Newly recognized questions carry version 6; older versions and unstamped
|
||
questions retain their original behavior. The bounded wording is an online
|
||
interpretation, not general natural-language understanding. The focused Spice
|
||
fixture stages a conserved card to arrange the known forecast; wider grammar,
|
||
current-turn commitments and deployed verification remain open. Fourteen
|
||
related freeform files pass 65 cases.
|
||
|
||
## Freeform compound hand-category facts — 29 October 2026
|
||
|
||
**Prototyped / Partial.** New fact-scoped freeform questions can combine two
|
||
supported current-hand facts with one unambiguous AND or OR, including printed
|
||
weapon/defense categories and supported negative card or category counts. For
|
||
example, a player may ask whether the respondent holds both a poison weapon and
|
||
a defense, or holds a Shield and no poison weapons. The public editor previews
|
||
the interpreted aggregate; the target alone sees the verified answer before
|
||
publishing it, and minimal bots follow the same authoritative fact. Category
|
||
meanings use the existing printed primary-role classification.
|
||
|
||
Newly recognized compositions carry version 5. Existing versions 1–4 and
|
||
unstamped saved questions keep their original behavior. Ambiguous forms, mixed
|
||
operators, unsupported wording and current-turn promises remain player-managed;
|
||
this is a bounded interpretation of the FAQ's general game-related yes/no
|
||
permission, not general language understanding. The focused runtime fixture
|
||
stages conserved physical card custody, rather than claiming the exact starting
|
||
hand was earned. See [parser](../game/truthtrance-freeform-facts-v5.ts),
|
||
[pure cases](../tests/truth-freeform-facts-v5.test.ts) and
|
||
[runtime cases](../tests/truthtrance-freeform-v5-runtime.test.ts). Full rules,
|
||
deployed and broader combinations remain open.
|
||
|
||
## Freeform negative hand facts — 29 October 2026
|
||
|
||
**Prototyped / Partial.** New current-fact questions recognize bounded forms
|
||
such as “Do you have no Shield?” and “Do you not have any poison weapons?”
|
||
The editor shows the checked zero-card interpretation, the respondent sees
|
||
the private answer, and bots use the same truthful answer. Named faces and
|
||
the existing primary-role categories use their existing count predicates.
|
||
Newly recognized questions carry version 4; older versions and unstamped
|
||
questions retain their prior semantics. Ambiguous, unsupported compound, future and other
|
||
unrecognized wording remains player-managed; the later V5 section adds bounded
|
||
compound forms. The parser is a provisional
|
||
online interpretation of the FAQ's game-related yes/no permission, not
|
||
general language understanding. [Parser](../game/truthtrance-freeform-facts-v4.ts),
|
||
[runtime cases](../tests/truthtrance-freeform-v4-runtime.test.ts).
|
||
|
||
## Freeform hand-category facts — 29 October 2026
|
||
|
||
**Prototyped / Partial.** New fact-scoped questions can ask whether a player
|
||
holds a weapon, defense, Worthless card, or projectile/poison weapon or defense,
|
||
or compare a numeric category count using exactly, at least or at most. The
|
||
editor shows the canonical printed primary-role interpretation before asking;
|
||
only the target sees the checked answer before publishing it. Unsupported
|
||
wording and current-turn promises keep their existing manual semantics.
|
||
|
||
Newly recognized category questions carry a version 3 interpretation. Existing
|
||
version 1 and 2 parsers and unstamped questions retain their original meaning.
|
||
The [parser](../game/truthtrance-freeform-facts-v3.ts), [rule cases](../tests/truthtrance-freeform-v3.test.ts)
|
||
and [action journeys](../tests/truthtrance-freeform-v3-runtime.test.ts) cover
|
||
physical hands, truthful answers and minimal legal bots. This is a bounded
|
||
online interpretation, not general language understanding or complete rules.
|
||
|
||
|
||
## Freeform hand size and combined facts — 29 October 2026
|
||
|
||
**Prototyped / Partial.** New fact-scoped questions recognize exact comparisons
|
||
of total cards in hand and two current-spice or named-card conditions joined by
|
||
one AND or OR. For example, “Do you have at least 3 cards in your hand?” and
|
||
“Do you have at least 5 spice and a Shield?” receive a displayed interpretation
|
||
and a verified aggregate answer. The table does not receive separate condition
|
||
results; all minimal bot profiles use that same aggregate.
|
||
|
||
Version 2 retains the earlier exact forms for newly asked questions. Saved
|
||
version 1 questions are validated against the unchanged version 1 parser, and
|
||
unstamped older questions keep their original behavior. Mixed operators,
|
||
ambiguous names, unsupported negation, future promises and other grammar remain
|
||
player-managed with unknown bot answers. This bounded grammar is an online
|
||
interpretation of the FAQ's game-related yes/no permission, not general natural
|
||
language understanding. See the [parser](../game/truthtrance-freeform-facts-v2.ts)
|
||
and [runtime evidence](../tests/truthtrance-freeform-v2-runtime.test.ts).
|
||
|
||
## Recognized freeform current facts — 29 October 2026
|
||
|
||
**Prototyped / Partial.** New freeform questions explicitly scoped as current
|
||
facts recognize the exact forms “Do you have at least/exactly/at most N spice?”
|
||
and “Do you have a/an [printed card name]?” with case-insensitive wording and
|
||
optional question mark. The former counts the respondent's own current spice;
|
||
the latter checks their physical hand. The public editor and pending question
|
||
show the canonical interpretation. The respondent alone sees the verified
|
||
answer until publishing it; the server rejects an inconsistent answer. All bot
|
||
profiles use the same answer path.
|
||
|
||
Only anchored supported phrases are interpreted. Ambiguous, unsupported, compound,
|
||
future or otherwise unsupported wording keeps the existing human-managed
|
||
behavior, and bots answer unknown. Current-turn promise text is never parsed.
|
||
The server stamps a versioned interpretation on each newly asked recognized
|
||
question and validates it against its text; older unstamped questions keep
|
||
their original behavior. This does not implement general language understanding
|
||
or enforcement of arbitrary promises. The FAQ allows game-related yes/no
|
||
questions; this limited parser is an online interpretation, not a printed
|
||
restriction. See the [parser](../game/truthtrance-freeform-facts.ts) and its
|
||
[rule](../tests/truthtrance-freeform-facts.test.ts) and
|
||
[runtime](../tests/truthtrance-freeform-runtime.test.ts) tests.
|
||
|
||
## Public Advanced Richese cache lot — 29 October 2026
|
||
|
||
**Prototyped / Partial.** A structured cache-lot question can also name the
|
||
currently offered public Richese cache card in Advanced play. Any seated
|
||
respondent can answer while that actual lot is active. A missing, settled,
|
||
non-cache or inaccessible lot yields unknown; the private Black Market hand
|
||
card is never exposed by this question. The existing Yes/No answer and minimal
|
||
bot paths are unchanged.
|
||
|
||
The [Advanced journey](../tests/truthtrance-cache-lot-advanced.test.ts) starts
|
||
an Advanced game and exercises the real cache and Black Market actions, human
|
||
answers and all four bot profiles. Full Truthtrance, wider combinations and
|
||
deployed acceptance remain open. The selector expresses the FAQ's general
|
||
yes/no question permission; it is a provisional online interpretation.
|
||
|
||
## Public Basic Richese cache lot — 28 October 2026
|
||
|
||
**Prototyped / Partial.** A separate `{kind:'cacheLot', name}` fact asks whether
|
||
the currently offered public Basic Richese cache card has a named printed face.
|
||
Any seated respondent can give a definite answer while that actual lot is
|
||
active. At that checkpoint missing, completed, Advanced and Black Market lots
|
||
returned unknown; Advanced public cache support is described above.
|
||
Only the offered card is read, not the other cached cards; the existing
|
||
Atreides inspection question keeps its original meaning. Single and compound
|
||
editors use the public name registry and minimal bots use the same answer path.
|
||
|
||
The [GF9 FAQ p. 8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf#page=8)
|
||
permits game-related yes/no questions. This selector and its active-lot boundary
|
||
are a provisional online interpretation; broader special auctions and full
|
||
Truthtrance acceptance remain open.
|
||
|
||
## Already answered battle Prescience — 28 October 2026
|
||
|
||
**Prototyped / Partial.** A current-fact question can compare the leader,
|
||
weapon, defense or exact dial already revealed through native battle
|
||
Prescience. The field must match the answered inspection and the respondent
|
||
must be entitled to the existing battle insight. Pending or unavailable
|
||
inspection, a different field and an expired battle return unknown. The
|
||
normal inspection category conversion is reused, including an Ecaz battle
|
||
special represented as no element. The question exposes no inspected value to
|
||
the asker beyond the target's ordinary Yes/No response.
|
||
|
||
The [GF9 FAQ p. 8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf#page=8)
|
||
permits game-related yes/no and compound questions. This bounded selector
|
||
expresses that general permission and is not a new printed restriction.
|
||
Other forms of private knowledge, general freeform interpretation and complete
|
||
Truthtrance coverage remain unfinished.
|
||
|
||
Eleven focused files pass 58 cases, including genuine Basic Prescience answers,
|
||
Truthtrance questions, all four minimal bot responses and battle continuation
|
||
for all four fields. The native fixture orders unopened cards without staging
|
||
hands or positions. Controlled component callbacks exercise the selectors;
|
||
`npm run check:quick` and the production build also passed. Browser and
|
||
deployed acceptance remain open.
|
||
|
||
## Advanced Ixian auction knowledge — 29 October 2026
|
||
|
||
**Prototyped / Partial.** Native Advanced Ixians can answer the existing
|
||
structured auction-group question using the private group they actually
|
||
inspected in the current Bidding phase and turn. Advanced Technology updates
|
||
the recorded group when a substitution succeeds; a canceled exchange keeps
|
||
the previous record. An absent, stale, canceled or unauthorized inspection
|
||
yields unknown. This is the known group, including later sold cards, not a
|
||
prediction of the next lot or another player's hand. The respondent sees the
|
||
verified answer and may answer normally; the group remains private.
|
||
|
||
The [Advanced journey](../tests/truthtrance-ix-pool-advanced.test.ts) starts a
|
||
native Advanced game, exercises actual inspection and a substitution, and
|
||
checks the human and minimal legal bot paths. The selector is a software
|
||
interpretation of the FAQ's game-related yes/no question permission, not a
|
||
printed restriction. Borrowed Homeworld knowledge, wider interactions, full
|
||
games and deployed acceptance remain open.
|
||
|
||
## Basic Ixian auction knowledge — 28 October 2026
|
||
|
||
**Prototyped / Partial.** The structured fact `{kind:'ixPoolPeek', name}`
|
||
asks whether a named printed Treachery Card is in the Basic Ixian's recorded
|
||
inspected auction group. The group records cards retained after Ixians returned
|
||
one to the deck; it is not the current unsold lots, and retains cards sold
|
||
afterward. The current Bidding phase and turn, native Ixian seat and matching
|
||
recorded controller are required. A canceled, absent, stale or unauthorized
|
||
inspection yields unknown. Other factions do not receive the group; the target
|
||
alone sees the verified scalar, and the normal answer publishes the response.
|
||
|
||
The [GF9 FAQ p. 8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf#page=8)
|
||
permits game-related yes/no and compound questions. This selector and its
|
||
boundary are a software interpretation, not a printed restriction. At that
|
||
checkpoint Advanced Technology and borrowed Homeworld inspection were separate.
|
||
Eight related unit files pass 27 cases, including a genuine Basic inspection,
|
||
private questions and all-profile responses. Missing and aged observations are
|
||
explicitly staged; broader combinations and deployed acceptance remain open.
|
||
|
||
## Advanced Black Market inspection — 29 October 2026
|
||
|
||
**Prototyped / Partial.** The existing `auctionPeek` fact now also reports the
|
||
native Atreides seat's successful inspection of an active Advanced Richese
|
||
Black Market lot, regardless of its normal, Once Around or Silent method. It
|
||
uses the offered card bound to that lot, or the reserved physical seller card
|
||
in older frames. Missing, canceled, expired, completed or other-faction
|
||
observations return unknown. This does not disclose the card to
|
||
the questioner. A real Advanced setup exercises the offer, inspection, private
|
||
Yes/No question and four bot responses for Silent and Once Around; a conserved
|
||
Truthtrance is transferred between hands by the fixture. Semuta, occupied Homeworld inspection and broader
|
||
auction interactions remain open.
|
||
|
||
## Atreides ordinary auction knowledge — 27 October 2026
|
||
|
||
**Prototyped / Partial.** The structured fact `{kind:'auctionPeek', name}` asks
|
||
whether Atreides' currently inspected ordinary auction card has the named
|
||
printed face. The answer uses only the current lot's successful native
|
||
inspection. Other factions, canceled or expired inspections and missing lots
|
||
return unknown. The Black Market extension is described above, while public
|
||
cache lots use the separate `cacheLot` fact. Non-Atreides occupied Homeworld
|
||
inspection remains unfinished. The card identity is
|
||
not added to another seat's view; the selected answer is public through the
|
||
normal Truthtrance flow. Single and compound selectors use the public printed
|
||
name registry, and existing bots answer from their own projected scalar.
|
||
|
||
The [GF9 FAQ p. 8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf#page=8)
|
||
permits game-related yes/no and compound questions. This selector and its
|
||
software boundary are a bounded interpretation, not a printed restriction.
|
||
Native Basic/Advanced auction progression exercises an actual card inspection,
|
||
question, answer and all four minimal AI profiles; the unavailable-inspection
|
||
case is staged. Eight related unit files pass 32 cases. Broader question
|
||
language and special-auction interactions remain open.
|
||
|
||
## Atreides Spice Blow knowledge — 27 October 2026
|
||
|
||
**Prototyped / Partial.** The structured fact `{kind:'spicePeek', value}` asks
|
||
whether Atreides' currently known next Spice Card is a sandworm, Sandtrout, or
|
||
a blow naming one of the printed territories. A Discovery card at the named
|
||
territory also matches that territory question. Only the native Atreides seat
|
||
with an active, uncanceled Shipment and Movement peek receives a definite
|
||
answer; an unavailable peek, another faction or an empty deck yields unknown.
|
||
This reports existing knowledge rather than granting a forecast, looking at a
|
||
future replacement card or promising a future outcome. Both single and
|
||
compound controls use public face choices; the owner-only scalar, physical
|
||
Truthtrance handling and four legal bot answer paths remain shared.
|
||
|
||
The existing general [GF9 FAQ p. 8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf#page=8)
|
||
permits game-related yes/no and combined questions. These particular selectors
|
||
and entitlement boundaries are software interpretations, not a new printed
|
||
restriction. Five focused files pass 24 cases; two runtime cases include real
|
||
Basic/Advanced progression to the successful peek, actual asking and answering,
|
||
all four bot profiles, a staged canceled-peek state and physical card custody.
|
||
Full Truthtrance language, broader interactions and deployed acceptance remain
|
||
open.
|
||
|
||
14 September 2026. **Prototyped**, with **Partial** coverage. This extends the
|
||
existing question flow with four typed predicates; freeform interpretation,
|
||
general future commitments and complete mode acceptance remain unfinished.
|
||
|
||
## Authority and semantics
|
||
|
||
The [GF9 November 2020 FAQ, p. 8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf#page=8)
|
||
permits game-related Yes/No questions and AND/OR combinations. Its unknown-answer
|
||
flow allows another question or retaining the card. Publisher-indexed text was
|
||
retrieved again for this batch. These precise predicate definitions implement
|
||
part of that broad permission; they are not additional printed restrictions.
|
||
|
||
- **Prediction faction:** compare the respondent's already-recorded native Bene
|
||
Gesserit prediction with a named faction.
|
||
- **Prediction turn:** compare the turn in that stored prediction using exactly,
|
||
at least or at most. This asks what was selected, not whether that future win
|
||
will happen or whether the player promises to make it happen.
|
||
- **Submitted storm dial:** compare this respondent's locked value while the
|
||
current Storm phase and its submission remain active. A not-yet-submitted or
|
||
expired dial is unknown; zero is a real first-turn value, not missing data.
|
||
The separate combined turn-action question can bind an eligible Basic player’s
|
||
future exact dial; it does not turn an unsubmitted dial into a recorded fact.
|
||
- **Known forecast:** compare the current storm card only for native Advanced
|
||
Fremen when the existing knowledge flag is true. Canceled peeks, unknown cards
|
||
and other factions receive unknown; no new deck lookup or borrowed knowledge
|
||
is granted. The question concerns the known card, not a promise about eventual
|
||
storm movement after other effects.
|
||
|
||
The shared parser accepts canonical faction identities, prediction turns 1–10,
|
||
dials 0–20 and forecasts 1–6, and rejects malformed comparisons and values.
|
||
Stored dial entitlement also checks the turn's actual legal dialing range.
|
||
Missing knowledge yields unknown rather than inventing a choice or an answer.
|
||
|
||
## Connected behavior and privacy
|
||
|
||
`truthKnowledgeOf` constructs only the target's eligible facts. Both server answer
|
||
validation and target-only answer projection use that same snapshot. AND/OR uses
|
||
the existing three-valued evaluation: a false AND term or true OR term can settle
|
||
the aggregate despite an unknown sibling. No matching-clause list is published.
|
||
|
||
The public question and response controls are independent of private values. The
|
||
target sees the verified scalar, and its answer becomes public through the normal
|
||
history flow. Neither prediction fields nor an unrevealed dial/forecast are added
|
||
to rivals' views. Equality answers can naturally reveal the queried value, as the
|
||
chosen question intends. A definite answer discards the actual Truthtrance once;
|
||
unknown retains its retry/save continuation. The original storm, auction, battle
|
||
or other interaction remains in place while the question is open.
|
||
|
||
The four UI choices share faction/value fields and numeric comparison controls.
|
||
Both compound clauses support them, with invalid-input and busy submission guards.
|
||
All four AI profiles answer the existing owner-only scalar. They do not receive
|
||
opponent knowledge, and this does not claim new strategic question selection or
|
||
freeform language understanding.
|
||
|
||
## Verification boundary
|
||
|
||
Focused tests use real Basic/Advanced setup, a real locked prediction and ordinary
|
||
storm/forecast progression. They stage only the asker's physical Truthtrance
|
||
acquisition by relocation, without duplicating cards. They cover private Yes/No
|
||
and unknown answers, changed/expired entitlement, invalid queries, dishonest and
|
||
duplicate answers, compound indistinguishability, all profiles and JSON views.
|
||
The isolated component tests check all numeric comparisons and ranges.
|
||
|
||
Thirteen new cases pass (six rules, two controls and five production SQLite
|
||
recovery cases); the focused union with existing Truthtrance/spice coverage passes
|
||
44 cases. Authenticated saved-seat tests restore pending questions and the original
|
||
storm-peek response, preserve all private views and physical custody, reject stale,
|
||
dishonest and duplicate answers, and allow only one competing version write.
|
||
Malformed saved predicates fail without a database write. Independent source and
|
||
privacy review found missing numeric comparison controls; integration review also
|
||
fixed the parent selector mapping and invalid-input submission guard.
|
||
|
||
Two genuine-setup, four-profile games finish without rejected actions: Basic in
|
||
192 actions with five periodic JSON rounds, Advanced in 518 with fourteen. Exact
|
||
card/force custody holds and all eight final seat views restore. Explicitly
|
||
scripted legal questions use naturally held cards: the Basic sample asks about a
|
||
prediction faction and a submitted storm dial; Advanced asks about a prediction
|
||
turn. Neither sample exercises a forecast question. These are bounded continuation
|
||
checks, not evidence of autonomous AI question strategy or strength calibration.
|
||
|
||
The separate browser exercise uses real Advanced setup, a recorded prediction and
|
||
ordinary forecast progression, relocating only two physical Truthtrances to the
|
||
asker. It verifies invalid dial input, an unknown answer and rephrasing, a compound
|
||
faction/turn question, a forecast comparison and refresh after submission and
|
||
resolution. The final history is unknown/Yes/Yes, both physical cards are discarded,
|
||
and unrelated resources and private projections remain unchanged. Pending-answer
|
||
restoration is established by SQLite tests, not a paused browser observation.
|
||
|
||
All 767 opening games and original seat/recovery records match the backup after
|
||
the reported outage. Integrity and foreign keys pass; the healthy server is reused.
|
||
The new browser room brings the preservation baseline to 768 before broad checks.
|
||
Required broad results, source fingerprint, final preservation totals and Git
|
||
delivery are recorded in the checkpoint commit and private report. These results
|
||
do not certify all Truthtrance questions, complete expansions or publication readiness.
|