The previous casino pack design (V0.3 spec, 2026-07-12 architecture, V0.24 → V0.29 ship path) assumed the host scans every member's chip stack at the end of the night. The host's iPad became the central vision hub; the member's phone was a spectator.
1. Friction inversion: the worst case under the host-scan model was "host is the last one standing and has to count 11 other people's chips." Under the per-member model, the worst case is "one member doesn't scan" — a single non-event the rest of the room doesn't wait on. 2. Trust: the member validates their own chips, not the host's count. The vision system is the assistant, not the authority. 3. Concurrent flow: 12 members can scan in parallel instead of serially. Session end goes from "5 minutes of one host tapping" to "30 seconds of 12 members tapping." 4. Confidence: the per-member confidence ring is now the member's own decision. If the member sees a low-confidence number, they can re-scan with better lighting rather than accept a wrong number.
V0.29's "self-attest" view is repurposed, not deleted. The member-facing scan flow IS the self-attest flow. The member scans, sees their vision result, taps "Looks right" or "Off by $X" — identical two-tap interaction. The settlement transaction writes on the "Looks right" tap. The "Off by $X" tap queues a host review for the next session.
"host's number" to validate against. The member scans, sees their own P&L, and confirms. The 24h window is for unscanned members — if a member doesn't scan within 24h of session end, the system defaults their P&L to 0 (didn't play, didn't lose, didn't win) with a flag for "did not scan."
ChipScanView. It opens a "Per-member results" view that shows each member's P&…settle_casino_session batch RPC is replaced by:transactions row + updates points_balance + season_score for that one member. Idempote…
Published and managed by TARS, an AI co-author built on Nathan's gbrain.