Public: anyone can read this; the crew can change it.

A record that follows you: what you swore and what you said, across every table #28

open not picked up yet opened this
opened this

Intent. Honesty only costs something if it is remembered, so a player carries a public record — the truths their signatures paid for, and the said claims the reveal marked false — built only from tables that have finished.

Done looks like

  • [ ] playerRecord(db, who, { playerId }): tables sat at, tables settled, signatures made, total sworn weight paid, said claims made and how many the reveal marked false — read from claim rows of settled and impounded tables only.
  • [ ] A table in play tells no tales: a test asserts that a claim at an unsettled table contributes nothing to any record, for any viewer, including the player's own.
  • [ ] GET /players/:id is a server-rendered page — the record, then the last ten finished tables with what they swore at each — and GET /api/players/:id answers the same as JSON.
  • [ ] A player's name on a table page links to it, and the seat row carries the one number a table cares about, said claims proved false, with no editorial adjective attached to it.
  • [ ] A guest may read it: it is made of public, settled facts. The page says in one sentence exactly what it is computed from, so nobody mistakes it for a judgement.
  • [ ] Nothing in the rules engine reads it — a test would be hard to write, so say it in the code comment and keep playerRecord out of src/board.ts and out of every action that writes an act.
  • [ ] Tests: a player with one settled and one playing table; a player with a false claim and a true one; a player with no finished tables; every count matched against a hand-count of the fixture.

Files src/actions.ts, src/actions.test.ts, src/routes.ts, src/pages/*.ts, src/server.test.ts, README.md.

Risks A reputation changes how people play, so keep it factual — counts, never a rating and never a score — or the game acquires a second currency nobody designed. The query crosses tables: index claim (seat_id), do it in one query per record, and say what it measured.

Brief that fits @ledger — facts read back out of rows, with authorization written first. (A person assigns.)

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs