Model private information in multiplayer https://patrickz.ai/learn/private-multiplayer-state/ OUTCOME Separate public room state from private player information. YOU NEED A chat assistant and a paper or local prototype with two fictional players. No access to private source is required. 1. Set your boundary Stay offline for the first version: one pass-and-play round for two fictional players, plus a table of every fact and who may see it (player A, player B, everyone, server only). Add rooms and realtime only after that table is agreed. 2. Play one offline round Build an offline pass-and-play round for two fictional players. 3. Separate public and private state Define public and private state as separate schemas. 4. List who may see each fact Make a table of every fact and who may see it: player A, player B, everyone or server only. LATER (NOT TODAY) - Rooms and join codes: Add rooms and join codes so two devices can share a round. - Seat tokens: Assign each seat an unguessable token. - Server-side hands: Move private-hand creation to the server. - Realtime updates: Add realtime updates for public state, then test with two ordinary browser sessions, not only one developer account. PROMPT Help me model private information in a two-player card game, in a new practice folder or on paper. Stay offline for the first version: one pass-and-play round for two fictional players, plus a table of who may see each fact. No rooms, join codes, seat tokens, server-side hands or realtime updates yet. If code is involved, list the setup commands before changing files. Then work in three checkpoints and, after each, tell me how to check it: 1. An offline pass-and-play round. 2. Public and private state defined as separate schemas. 3. A table of every fact and who may see it: player A, player B, everyone or server only. Then show the exact data each player would receive and confirm neither contains the other hand. My game in one sentence: [rules]. My tool: [a language you know, or paper]. FOLLOW-UP PROMPT Write acceptance tests for this offline two-player round. Prove that each player receives only their own hand, one turn action updates public state correctly, a round reset clears both hands, and neither player’s view contains the other hand. Mark which tests will need a server once rooms and realtime updates are added. EXAMPLE / EXPERIMENT Draw the data returned to each player. Confirm neither response contains the other hand. Add reconnect and round reset without broadening that visibility. CHECK YOUR RESULT [ ] Private hands are absent from public state. [ ] Each player request is authorized independently. [ ] Reconnect preserves the correct player boundary. IF IT FAILS A hidden UI element does not protect data already sent to a browser. Private values must stay out of unauthorized responses. MY RESULT / NEXT CHANGE