Add an enlarged public sheet beneath each player, available while actions are pending. Only faction identity and table rules mode enter the reader; it sends no action and receives no private player data. Basic/Advanced preview explicitly leaves the table mode unchanged. Native mode control, keyboard scrolling, Escape/focus restoration and internal links use existing dialog components. The internal gallery covers all twelve factions with bundled Homeworld artwork. Share every faction's Basic and Advanced paragraphs with the main reference. Replace Richese's generic placeholder, centralize Ecaz/Moritani guidance from settled contracts, correct CHOAM Auditor/Baliset/Jubba availability and align the Fremen/Ecaz Sietch Tabr exception. Full printed text, unresolved powers and combined-rule acceptance remain explicit. No new rule, AI strategy or gate. Four focused tests cover all12 identities, shared paragraphs, artwork files, internal links, mode separation, gallery defaults and per-viewer busy controls. The first busy-control assertion falsely matched CSS disabled variants; it now checks actual disabled attributes. All16 related focused cases pass. Independent review caught missing Moritani optionality and stale Fremen exception text; those were fixed and final review found no material issue. Auditor limits and full actual-card cancellation cost were checked against the existing contract. Types, lint, all 5000 offline tests and production build pass on stable source. No API/auth/persistence changes; HTTP tests were not repeated. Browser QA reused the existing two-player Basic auction without game actions. Both own and opposing inspectors work; Enter opens, Escape closes and returns focus, reopening resets Basic, and Advanced preview explicitly preserves the Basic table. ArrowDown scrolls the focused long sheet. At390px, dialog359x828, scroll client/width342 without horizontal overflow,16px text and44px controls. Gallery334px fits without overflow; Richese, Ecaz and Moritani selection and Advanced paragraphs render, faction change resets Basic and bundled art loads. Internal help and Advanced Moritani links expand their topics. Back and refresh preserve four hand cards and the pending minimum bid2; normal viewport restored. Screenshot capture timed out; full visual/screen-reader acceptance remains open. All 1539 opening games, 3259 saved seats and auxiliary rows remain identical, including the QA room. SQLite integrity and foreign keys pass. No new games, server restart, migration, reset or recurring automation. Private evidence: 20260921-faction-sheets. Verified source tree: 6b738958f30fc381d3e9eb26398239bbd88f1d4281f8ff5ff2bb3b3259494a93
3.1 KiB
Public faction sheets
Connected inspection prototype, 21 September 2026. Every player card has
Inspect faction, available during setup, play and pending decisions. The
internal faction-sheets topic also offers a gallery of all twelve factions.
The inspector receives only a public faction ID and Basic/Advanced mode. It
reads no player state, held cards, leader custody, cache or hidden tokens and
sends no action. The enlarged sheet uses existing bundled Homeworld artwork,
crisp text and the same FACTION_RULES paragraphs as the internal faction topics.
There are no new images, endpoints, persistence fields or AI decisions.
The initial display follows the table mode. Include Advanced powers changes only the local reference display, with an explicit preview notice when it differs from the table. Advanced powers follow their underlying Basic powers. Close, Escape and reopening return to the normal dialog lifecycle; changing faction or table mode resets the reader. Gallery faction changes start with Basic guidance. The long sheet has an independently focusable scrolling region, named controls, 44px control targets and 16px body text. Detailed links remain internal.
Shared guidance and authority
Richese no longer receives a placeholder faction paragraph; Ecaz and Moritani move from embedded topics into the shared typed twelve-faction map. Existing contracts supply the new original-language summaries:
- Richese: auctions, acquisition and No-Field.
- Ecaz: Ambassadors, alliance, Collection and victory.
- Moritani: Terror and Advanced assassination.
- CHOAM: Auditor and the existing internal Worthless-card guides supersede stale claims that Auditor setup, Baliset and Jubba Cloak are absent. The Auditor inspects up to two unused cards on survival or one on death; prevention costs one spice per card that would actually be inspected.
The supported Ecaz/Fremen Sietch Tabr exception replaces the old blanket missing claim. Unfinished Ecaz Advanced powers, Duke/Occupy interactions, Richese card and auction combinations, Moritani effects and normal-traitor forfeiture remain explicit. No new source interpretation or mode gate is introduced. These are readable faction guides; complete printed-sheet text and combined rule acceptance are still open requirements.
Verification
npm test -- faction-inspector covers all twelve identities, shared reference
text, bundled artwork, valid internal links, Basic/Advanced separation, gallery
defaults, and public table controls for either viewer while actions are busy.
Tests do not claim interactive focus, rule correctness for every paragraph or
full game acceptance. Independent review, browser observations, final check/build,
saved-game preservation and Git delivery belong to the private source-bound
checkpoint. Existing gameplay and minimal legal AI participation are unchanged.