@thegeem/protocol 0.1.20 → 0.1.21

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
@@ -125,6 +125,10 @@ var ClientMsg = import_zod.z.discriminatedUnion("t", [
125
125
  totalRounds: import_zod.z.number().int().min(1).max(50),
126
126
  categoryIds: import_zod.z.array(import_zod.z.string().max(60)).min(0).max(12),
127
127
  // empty for games without categories (Dama); trivia rejects empty in-handler
128
+ // Ersimha (gs#45): include the HOST connection in the drawer rotation (host draws/buzzes like a
129
+ // player; first drawer, Dama-parity) — a pair plays with 2 devices, no separate TV connection.
130
+ // Omit/false = the host stays the room's TV/spectator (the D-030 MVP shape). Additive, no pv bump.
131
+ hostPlays: import_zod.z.boolean().optional(),
128
132
  // PREFERRED: pick a mode from the registry (see MODES). The server maps it to the engine
129
133
  // rules. Send this and omit buzzerMode/noHost. Falls back to the legacy flags below if omitted.
130
134
  modeId: import_zod.z.enum(MODE_IDS).optional(),
package/dist/index.d.cts CHANGED
@@ -295,6 +295,7 @@ declare const ClientMsg: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
295
295
  game: z.ZodOptional<z.ZodEnum<["seedha", "snag", "trivia", "dama", "ersimha"]>>;
296
296
  totalRounds: z.ZodNumber;
297
297
  categoryIds: z.ZodArray<z.ZodString, "many">;
298
+ hostPlays: z.ZodOptional<z.ZodBoolean>;
298
299
  modeId: z.ZodOptional<z.ZodEnum<["solo", "oneDevice", "snag", "multiplayer"]>>;
299
300
  buzzerMode: z.ZodOptional<z.ZodEnum<["off", "solo", "race", "controller"]>>;
300
301
  noHost: z.ZodOptional<z.ZodBoolean>;
@@ -304,6 +305,7 @@ declare const ClientMsg: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
304
305
  totalRounds: number;
305
306
  game?: "seedha" | "snag" | "trivia" | "dama" | "ersimha" | undefined;
306
307
  modeId?: "snag" | "solo" | "oneDevice" | "multiplayer" | undefined;
308
+ hostPlays?: boolean | undefined;
307
309
  buzzerMode?: "solo" | "off" | "race" | "controller" | undefined;
308
310
  noHost?: boolean | undefined;
309
311
  }, {
@@ -312,6 +314,7 @@ declare const ClientMsg: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
312
314
  totalRounds: number;
313
315
  game?: "seedha" | "snag" | "trivia" | "dama" | "ersimha" | undefined;
314
316
  modeId?: "snag" | "solo" | "oneDevice" | "multiplayer" | undefined;
317
+ hostPlays?: boolean | undefined;
315
318
  buzzerMode?: "solo" | "off" | "race" | "controller" | undefined;
316
319
  noHost?: boolean | undefined;
317
320
  }>, z.ZodObject<{
package/dist/index.d.ts CHANGED
@@ -295,6 +295,7 @@ declare const ClientMsg: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
295
295
  game: z.ZodOptional<z.ZodEnum<["seedha", "snag", "trivia", "dama", "ersimha"]>>;
296
296
  totalRounds: z.ZodNumber;
297
297
  categoryIds: z.ZodArray<z.ZodString, "many">;
298
+ hostPlays: z.ZodOptional<z.ZodBoolean>;
298
299
  modeId: z.ZodOptional<z.ZodEnum<["solo", "oneDevice", "snag", "multiplayer"]>>;
299
300
  buzzerMode: z.ZodOptional<z.ZodEnum<["off", "solo", "race", "controller"]>>;
300
301
  noHost: z.ZodOptional<z.ZodBoolean>;
@@ -304,6 +305,7 @@ declare const ClientMsg: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
304
305
  totalRounds: number;
305
306
  game?: "seedha" | "snag" | "trivia" | "dama" | "ersimha" | undefined;
306
307
  modeId?: "snag" | "solo" | "oneDevice" | "multiplayer" | undefined;
308
+ hostPlays?: boolean | undefined;
307
309
  buzzerMode?: "solo" | "off" | "race" | "controller" | undefined;
308
310
  noHost?: boolean | undefined;
309
311
  }, {
@@ -312,6 +314,7 @@ declare const ClientMsg: z.ZodDiscriminatedUnion<"t", [z.ZodObject<{
312
314
  totalRounds: number;
313
315
  game?: "seedha" | "snag" | "trivia" | "dama" | "ersimha" | undefined;
314
316
  modeId?: "snag" | "solo" | "oneDevice" | "multiplayer" | undefined;
317
+ hostPlays?: boolean | undefined;
315
318
  buzzerMode?: "solo" | "off" | "race" | "controller" | undefined;
316
319
  noHost?: boolean | undefined;
317
320
  }>, z.ZodObject<{
package/dist/index.js CHANGED
@@ -90,6 +90,10 @@ var ClientMsg = z.discriminatedUnion("t", [
90
90
  totalRounds: z.number().int().min(1).max(50),
91
91
  categoryIds: z.array(z.string().max(60)).min(0).max(12),
92
92
  // empty for games without categories (Dama); trivia rejects empty in-handler
93
+ // Ersimha (gs#45): include the HOST connection in the drawer rotation (host draws/buzzes like a
94
+ // player; first drawer, Dama-parity) — a pair plays with 2 devices, no separate TV connection.
95
+ // Omit/false = the host stays the room's TV/spectator (the D-030 MVP shape). Additive, no pv bump.
96
+ hostPlays: z.boolean().optional(),
93
97
  // PREFERRED: pick a mode from the registry (see MODES). The server maps it to the engine
94
98
  // rules. Send this and omit buzzerMode/noHost. Falls back to the legacy flags below if omitted.
95
99
  modeId: z.enum(MODE_IDS).optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thegeem/protocol",
3
- "version": "0.1.20",
3
+ "version": "0.1.21",
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",