Files
Dune/docs/TRUTHTRANCE_HAND_INVENTORY.md
T
Quintine 6eb417ff32
Verify and publish checkpoint container / container (push) Failing after 11m16s
Add Truthtrance weapon and defense types
2026-10-29 03:46:42 +11:00

82 lines
5.0 KiB
Markdown

# Truthtrance hand inventory
13 September 2026. A bounded current-fact capability; public Advanced and unfinished
expansion starts remain gated. Freeform interpretation and broader commitments are
still incomplete.
## Primary attack and defense types — 29 October 2026
The inventory question now also compares the number of held primary
projectile weapons, poison weapons, projectile defenses or poison defenses.
This is a game-related current-hand fact under the existing FAQ authority,
not a new Voice command or promise about future battle slots. Exact, minimum
and maximum comparisons use the same private answer and physical-card flow.
The question names a **primary** role. Poison Blade contributes to both weapon
types; Shield Snooper contributes to both defense types. Poison Tooth is a
poison weapon; Portable Snooper and Chemistry are poison defenses. Weirding
Way defaults to a projectile weapon, even though it can later be used as a
projectile defense; Chemistry's alternate poison-weapon role likewise is not
counted while in hand. Lasgun, Artillery Strike, Stone Burner and Mirror Weapon
are distinct primary weapons and do not supply a generic poison or projectile
type merely because their conditional battle effects might overlap. These
subtypes use the existing default-category and battle-type helpers, not a new
classification of a played card. Counts may overlap across subtype questions.
## Contract and authority
The [GF9 November 2020 FAQ, p8](https://www.gf9games.com/dune/wp-content/uploads/2020/11/Dune-FAQ-Nov-2020.pdf)
permits game-related Yes/No questions and AND/OR combinations, including a weapon
and defense example. Official-domain indexed page text was retrieved on this date.
This implementation supplies precise current-hand predicates, not a restriction on
the questions allowed by the published card.
`HandInventoryFact` compares physical cards currently held with a nonnegative safe
integer, using exactly, at least or at most. Categories are all cards, primary
weapons, primary defenses, Worthless, Cheap Hero/Heroine, and remaining Special
cards. Decks, discards, separate caches and on-table cards are outside the hand.
Reserved cards still held in hand count. This fact creates no obligation to keep
cards, acquire more, or use them in a particular slot.
Primary roles are an explicitly worded query definition. They reuse the existing
component presentation and canonical Richese definitions, not battle-slot legality:
Weirding Way is primarily a weapon, Chemistry a defense, and Worthless cards remain
separate even for BG/CHOAM. Stone Burner and Mirror Weapon are printed weapons;
Portable Snooper is a printed defense despite their persisted `special` kind.
See [Richese components](RICHESE_COMPONENTS.md) for that physical inventory audit.
No unfinished effect is enabled by counting its held card.
`game/card-category.ts` provides the shared classification. The focused inventory
module parses, compares and renders the predicate; the existing Truthtrance flow
handles priority, aggregate three-valued logic, truthful responses, physical card
disposal and resuming the interrupted decision. Only the respondent sees the
verified answer before publication. Exact Yes comparisons necessarily disclose
the selected count, but matching card identities and individual compound results
are not added to other views. All four bots use the same owner-only answer.
## Verification and limits
`tests/truthtrance-hand-inventory.test.ts` exercises physical copies, default and
alternate roles, input rejection, actual questions/answers, private views, four
profiles, JSON continuations and the absence of a retention promise. The existing
production-room SQLite suite `tests/truthtrance-spice-recovery.test.ts` now covers
total/category and compound inventory facts across module restarts, suspended
auction payment, unchanged private views and competing answers committing once.
Browser acceptance and final required check results are recorded in the milestone
checkpoint and its private verification report. These checks establish the stated
fact boundary; they do not certify every card interaction, arbitrary question,
AI question strategy, complete Advanced play or expansion readiness.
Browser room `LC3E55GY` was created through the lobby, backed up, then staged through
the genuine Basic initializer into an isolated phase-five question opportunity.
Its Medium Emperor held four physical cards: two Shields, Lasgun and Baliset.
The human asker submitted primary-weapon-at-least-one AND
primary-defense-at-least-two; the AI publicly answered Yes. A negative count
disabled submission and showed the correction. At 390px width the human then
submitted total-hand-exactly-four and refreshed during the answer wait. The room
restored both Yes records, an empty asker hand and the prior movement decision.
Phone screenshots showed readable controls and the public preview; the temporary
viewport was reset. Other saved rooms were not used as fixtures. This is targeted
question/recovery evidence, not a complete-game browser run.