Variable optionsConst

options: ZodReadonly<
    ZodObject<
        {
            allOrNothing: ZodDefault<ZodBoolean>;
            cardCycle: ZodDefault<ZodBoolean>;
            deckPlays: ZodDefault<ZodBoolean>;
            detrimentalCharacters: ZodDefault<ZodBoolean>;
            emptyClues: ZodDefault<ZodBoolean>;
            maxPlayers: ZodOptional<
                ZodType<2 | 3 | 4 | 5 | 6, ZodTypeDef, 2 | 3 | 4 | 5 | 6>,
            >;
            numPlayers: ZodDefault<
                ZodType<2 | 3 | 4 | 5 | 6, ZodTypeDef, 2 | 3 | 4 | 5 | 6>,
            >;
            oneExtraCard: ZodDefault<ZodBoolean>;
            oneLessCard: ZodDefault<ZodBoolean>;
            speedrun: ZodDefault<ZodBoolean>;
            startingPlayer: ZodDefault<ZodType<PlayerIndex, ZodTypeDef, PlayerIndex>>;
            tableName: ZodOptional<ZodString>;
            timeBase: ZodDefault<ZodNumber>;
            timed: ZodDefault<ZodBoolean>;
            timePerTurn: ZodDefault<ZodNumber>;
            variantName: ZodDefault<ZodString>;
        },
        "strict",
        ZodTypeAny,
        {
            allOrNothing: boolean;
            cardCycle: boolean;
            deckPlays: boolean;
            detrimentalCharacters: boolean;
            emptyClues: boolean;
            maxPlayers?: 3
            | 2
            | 4
            | 5
            | 6;
            numPlayers: 2 | 3 | 4 | 5 | 6;
            oneExtraCard: boolean;
            oneLessCard: boolean;
            speedrun: boolean;
            startingPlayer: PlayerIndex;
            tableName?: string;
            timeBase: number;
            timed: boolean;
            timePerTurn: number;
            variantName: string;
        },
        {
            allOrNothing?: boolean;
            cardCycle?: boolean;
            deckPlays?: boolean;
            detrimentalCharacters?: boolean;
            emptyClues?: boolean;
            maxPlayers?: 3
            | 2
            | 4
            | 5
            | 6;
            numPlayers?: 3 | 2 | 4 | 5 | 6;
            oneExtraCard?: boolean;
            oneLessCard?: boolean;
            speedrun?: boolean;
            startingPlayer?: PlayerIndex;
            tableName?: string;
            timeBase?: number;
            timed?: boolean;
            timePerTurn?: number;
            variantName?: string;
        },
    >,
> = ...

We use a Zod object instead of a class because this is sent over the wire and Zod cannot validate class shapes.