@thegeem/protocol 0.1.27 → 0.1.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -113,6 +113,9 @@ var ClientMsg = import_zod.z.discriminatedUnion("t", [
113
113
  import_zod.z.object({ t: import_zod.z.literal("setProfile"), name: DisplayName.optional(), avatar: Avatar.optional(), character: Character.optional() }),
114
114
  import_zod.z.object({ t: import_zod.z.literal("joinRoom"), code: RoomCode, name: DisplayName, avatar: Avatar.optional(), character: Character.optional(), pv: Pv, idToken: IdToken, platform: Platform }),
115
115
  import_zod.z.object({ t: import_zod.z.literal("resume"), code: RoomCode, token: import_zod.z.string().max(120), avatar: Avatar.optional(), character: Character.optional(), pv: Pv, idToken: IdToken, platform: Platform }),
116
+ // `tally` (gs#46) = wins per PLAYER across every game this room has played tonight — «نتيجة الليلة».
117
+ // Keyed by playerId, NOT by team: team names are recycled each game, so a per-team count means nothing
118
+ // across a night. Survives playAgain. A One Device game credits nobody (its team slots hold no players).
116
119
  // Participation (D-042): every person in a room is PLAYING or WATCHING, one model for every game.
117
120
  // The badge means "I'm IN", NOT "I'm on the board" — the playing list is ORDERED and each game seats
118
121
  // up to its own capacity (دامة 2; ارسمها/trivia everyone), so extras are WAITING rather than wearing a
package/dist/index.d.cts CHANGED
@@ -902,6 +902,7 @@ type ServerMsg = {
902
902
  selectedCategoryIds: string[];
903
903
  teams: TeamSlotView[];
904
904
  hostActivity: 'configuring' | 'idle';
905
+ tally?: Record<string, number>;
905
906
  modeId: ModeId | null;
906
907
  you: YouContext;
907
908
  } | {
package/dist/index.d.ts CHANGED
@@ -902,6 +902,7 @@ type ServerMsg = {
902
902
  selectedCategoryIds: string[];
903
903
  teams: TeamSlotView[];
904
904
  hostActivity: 'configuring' | 'idle';
905
+ tally?: Record<string, number>;
905
906
  modeId: ModeId | null;
906
907
  you: YouContext;
907
908
  } | {
package/dist/index.js CHANGED
@@ -76,6 +76,9 @@ var ClientMsg = z.discriminatedUnion("t", [
76
76
  z.object({ t: z.literal("setProfile"), name: DisplayName.optional(), avatar: Avatar.optional(), character: Character.optional() }),
77
77
  z.object({ t: z.literal("joinRoom"), code: RoomCode, name: DisplayName, avatar: Avatar.optional(), character: Character.optional(), pv: Pv, idToken: IdToken, platform: Platform }),
78
78
  z.object({ t: z.literal("resume"), code: RoomCode, token: z.string().max(120), avatar: Avatar.optional(), character: Character.optional(), pv: Pv, idToken: IdToken, platform: Platform }),
79
+ // `tally` (gs#46) = wins per PLAYER across every game this room has played tonight — «نتيجة الليلة».
80
+ // Keyed by playerId, NOT by team: team names are recycled each game, so a per-team count means nothing
81
+ // across a night. Survives playAgain. A One Device game credits nobody (its team slots hold no players).
79
82
  // Participation (D-042): every person in a room is PLAYING or WATCHING, one model for every game.
80
83
  // The badge means "I'm IN", NOT "I'm on the board" — the playing list is ORDERED and each game seats
81
84
  // up to its own capacity (دامة 2; ارسمها/trivia everyone), so extras are WAITING rather than wearing a
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thegeem/protocol",
3
- "version": "0.1.27",
3
+ "version": "0.1.28",
4
4
  "description": "Geem's wire protocol — shared zod schemas + TypeScript types for talking to the Geem game server over Socket.IO. The source of truth all clients implement against.",
5
5
  "license": "UNLICENSED",
6
6
  "homepage": "https://geem.tv",