five-on-it / packages/catalogue/src/level-spec / LevelSpec
Variable: LevelSpec
constLevelSpec:ZodDiscriminatedUnion<[ZodObject<{avenues:ZodDefault<ZodObject<{x:ZodDefault<ZodArray<ZodNumber>>;z:ZodDefault<ZodArray<ZodNumber>>; },$strict>>;blocks:ZodTuple<[ZodNumber,ZodNumber],null>;blockSize:ZodDefault<ZodNumber>;climate:ZodOptional<ZodEnum<{alpine:"alpine";autumn:"autumn";coast:"coast";desert:"desert";farmland:"farmland";forest:"forest";meadow:"meadow";none:"none";steppe:"steppe";temperate:"temperate"; }>>;clock:ZodOptional<ZodObject<{pace:ZodDefault<ZodNumber>;start:ZodDefault<ZodString>; },$strict>>;compounds:ZodDefault<ZodArray<ZodObject<{block:ZodTuple<[ZodNumber,ZodNumber],null>;delivery:ZodOptional<ZodEnum<{east: ...;north: ...;south: ...;west: ...; }>>;gap:ZodOptional<ZodEnum<{east: ...;north: ...;south: ...;west: ...; }>>;gate:ZodEnum<{east:"east";north:"north";south:"south";west:"west"; }>;name:ZodString;roof:ZodDefault<ZodBoolean>;security:ZodDefault<ZodEnum<{high: ...;low: ...;medium: ...; }>>;theme:ZodOptional<ZodEnum<{[key: ...]: ...; }>>;title:ZodOptional<ZodString>; },$strict>>>;districts:ZodDefault<ZodArray<ZodPipe<ZodObject<{blocks:ZodDefault<ZodArray<...>>;density:ZodOptional<ZodObject<..., ...>>;landmarks:ZodOptional<ZodArray<...>>;landuse:ZodOptional<ZodEnum<...>>;mix:ZodOptional<ZodRecord<..., ...>>;name:ZodString;theme:ZodOptional<ZodEnum<...>>;title:ZodOptional<ZodString>; },$strict>,ZodTransform<object&object, {blocks: [..., ...][];density?: {built?: ...;height?: ...;setback?: ...; };landmarks?: ...[];landuse?:"residential"|"farm"|"industrial"|"leisure"|"civic"|"commercial"|"retail";mix?:Record<..., ...>;name:string;theme?:string;title?:string; }>>>>;dressing:ZodDefault<ZodEnum<{lived-in:"lived-in";none:"none"; }>>;name:ZodString;parks:ZodDefault<ZodArray<ZodTuple<[ZodNumber,ZodNumber],null>>>;props:ZodDefault<ZodObject<{hydrants:ZodDefault<ZodBoolean>;lamps:ZodDefault<ZodBoolean>;trafficLights:ZodDefault<ZodBoolean>;trees:ZodDefault<ZodBoolean>; },$strict>>;seed:ZodDefault<ZodNumber>;streetWidth:ZodDefault<ZodNumber>;template:ZodLiteral<"grid-town">; },$strict>,ZodObject<{base:ZodDefault<ZodNumber>;biome:ZodDefault<ZodEnum<{alpine:"alpine";autumn:"autumn";coast:"coast";desert:"desert";farmland:"farmland";forest:"forest";meadow:"meadow";steppe:"steppe"; }>>;climate:ZodOptional<ZodEnum<{alpine:"alpine";autumn:"autumn";coast:"coast";desert:"desert";farmland:"farmland";forest:"forest";meadow:"meadow";none:"none";steppe:"steppe";temperate:"temperate"; }>>;clock:ZodOptional<ZodObject<{pace:ZodDefault<ZodNumber>;start:ZodDefault<ZodString>; },$strict>>;details:ZodDefault<ZodEnum<{plain:"plain";rich:"rich"; }>>;features:ZodDefault<ZodArray<ZodDiscriminatedUnion<[ZodObject<{at:ZodTuple<..., ...>;kind:ZodLiteral<...>;level:ZodNumber;lighthouse:ZodOptional<...>;name:ZodOptional<...>;radius:ZodOptional<...>;steep:ZodOptional<...>; },$strict>,ZodObject<{at:ZodTuple<..., ...>;kind:ZodLiteral<...>;level:ZodNumber;name:ZodOptional<...>;radius:ZodOptional<...>; },$strict>,ZodObject<{at:ZodTuple<..., ...>;kind:ZodLiteral<...>;level:ZodNumber;name:ZodOptional<...>;size:ZodTuple<..., ...>; },$strict>],"kind">>>;landuse:ZodDefault<ZodArray<ZodObject<{at:ZodTuple<[ZodNumber,ZodNumber],null>;kind:ZodEnum<{allotments:"allotments";campsite:"campsite";cemetery:"cemetery";farmland:"farmland";forest:"forest";heath:"heath";meadow:"meadow";orchard:"orchard";park:"park";quarry:"quarry";vineyard:"vineyard";wetland:"wetland"; }>;name:ZodOptional<ZodString>;size:ZodTuple<[ZodNumber,ZodNumber],null>; },$strict>>>;name:ZodString;props:ZodDefault<ZodObject<{rocks:ZodDefault<ZodBoolean>;trees:ZodDefault<ZodBoolean>; },$strict>>;roads:ZodDefault<ZodArray<ZodObject<{class:ZodEnum<{avenue:"avenue";country:"country";highway:"highway";lane:"lane";street:"street";track:"track"; }>;from:ZodUnion<readonly [ZodEnum<...>,ZodTuple<..., ...>,ZodString]>;name:ZodOptional<ZodString>;to:ZodUnion<readonly [ZodEnum<...>,ZodTuple<..., ...>,ZodString]>;tunnels:ZodOptional<ZodEnum<{auto: ...;never: ...; }>>;via:ZodOptional<ZodArray<ZodTuple<..., ...>>>; },$strict>>>;seed:ZodDefault<ZodNumber>;size:ZodTuple<[ZodNumber,ZodNumber],null>;start:ZodOptional<ZodString>;template:ZodLiteral<"region">;towns:ZodDefault<ZodArray<ZodObject<{at:ZodTuple<[ZodNumber,ZodNumber],null>;avenues:ZodDefault<ZodObject<{x: ...;z: ...; },$strict>>;blocks:ZodTuple<[ZodNumber,ZodNumber],null>;blockTiles:ZodDefault<ZodUnion<readonly [..., ...]>>;districts:ZodDefault<ZodArray<ZodPipe<..., ...>>>;dressing:ZodDefault<ZodEnum<{lived-in: ...;none: ...; }>>;name:ZodString;parks:ZodDefault<ZodArray<ZodTuple<..., ...>>>;props:ZodDefault<ZodObject<{hydrants: ...;lamps: ...;trafficLights: ...;trees: ...; },$strict>>;streetWidth:ZodDefault<ZodNumber>; },$strict>>>; },$strict>,ZodObject<{climate:ZodOptional<ZodEnum<{alpine:"alpine";autumn:"autumn";coast:"coast";desert:"desert";farmland:"farmland";forest:"forest";meadow:"meadow";none:"none";steppe:"steppe";temperate:"temperate"; }>>;clock:ZodOptional<ZodObject<{pace:ZodDefault<ZodNumber>;start:ZodDefault<ZodString>; },$strict>>;districts:ZodArray<ZodObject<{area:ZodOptional<ZodUnion<readonly [ZodUnion<...>,ZodArray<...>]>>;at:ZodOptional<ZodUnion<readonly [ZodTuple<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>]>>;landmarks:ZodOptional<ZodArray<ZodString>>;name:ZodString;style:ZodEnum<{civic:"civic";docks:"docks";financial:"financial";garden-suburb:"garden-suburb";high-street:"high-street";hillside:"hillside";midtown:"midtown";old-town:"old-town";parkland:"parkland";suburb:"suburb";townhouses:"townhouses";waterfront:"waterfront";works:"works"; }>;title:ZodOptional<ZodString>; },$strict>>;grids:ZodDefault<ZodArray<ZodObject<{bearing:ZodDefault<ZodNumber>;class:ZodDefault<ZodEnum<{avenue: ...;boulevard: ...;lane: ...;one-way: ...;parkway: ...;street: ...; }>>;name:ZodString;origin:ZodUnion<readonly [ZodTuple<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>]>;u:ZodDefault<ZodArray<ZodUnion<...>>>;v:ZodDefault<ZodArray<ZodUnion<...>>>; },$strict>>>;hills:ZodDefault<ZodArray<ZodObject<{at:ZodUnion<readonly [ZodTuple<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>]>;height:ZodNumber;name:ZodString;reach:ZodNumber; },$strict>>>;name:ZodString;parks:ZodDefault<ZodArray<ZodObject<{area:ZodUnion<readonly [ZodObject<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>]>;kind:ZodDefault<ZodEnum<{green: ...;park: ...;square: ...; }>>;name:ZodString; },$strict>>>;places:ZodDefault<ZodArray<ZodObject<{at:ZodUnion<readonly [ZodTuple<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>]>;name:ZodString; },$strict>>>;roads:ZodDefault<ZodArray<ZodObject<{arriving:ZodOptional<ZodNumber>;boundary:ZodDefault<ZodBoolean>;class:ZodEnum<{avenue:"avenue";boulevard:"boulevard";lane:"lane";one-way:"one-way";parkway:"parkway";street:"street"; }>;closed:ZodDefault<ZodBoolean>;cycle:ZodDefault<ZodBoolean>;from:ZodOptional<ZodUnion<readonly [..., ..., ..., ..., ..., ...]>>;leaving:ZodOptional<ZodNumber>;line:ZodDefault<ZodEnum<{eased: ...;rounded: ...;spline: ...;straight: ...; }>>;name:ZodString;radius:ZodOptional<ZodUnion<readonly [..., ...]>>;step:ZodOptional<ZodNumber>;through:ZodDefault<ZodArray<ZodUnion<...>>>;to:ZodOptional<ZodUnion<readonly [..., ..., ..., ..., ..., ...]>>;turningCircle:ZodDefault<ZodBoolean>; },$strict>>>;roundabouts:ZodDefault<ZodArray<ZodObject<{arms:ZodArray<ZodUnion<readonly [..., ...]>>;at:ZodUnion<readonly [ZodTuple<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>,ZodObject<..., ...>]>;island:ZodDefault<ZodEnum<{green: ...;market: ...;plain: ...; }>>;lanes:ZodDefault<ZodUnion<readonly [..., ...]>>;name:ZodString;radius:ZodDefault<ZodNumber>; },$strict>>>;seed:ZodDefault<ZodNumber>;size:ZodDefault<ZodNumber>;spawn:ZodObject<{near:ZodOptional<ZodUnion<readonly [ZodTuple<[..., ...],null>,ZodObject<{at: ...;grid: ...; },$strict>,ZodObject<{arm: ...;roundabout: ...; },$strict>,ZodObject<{at: ...;road: ...; },$strict>,ZodObject<{hill: ...; },$strict>]>>;road:ZodString; },$strict>;template:ZodLiteral<"city">;water:ZodDefault<ZodArray<ZodObject<{name:ZodDefault<ZodString>;through:ZodArray<ZodUnion<readonly [..., ..., ..., ..., ...]>>;widen:ZodOptional<ZodObject<{from: ...;to: ...;width: ...; },$strict>>;width:ZodDefault<ZodNumber>; },$strict>>>; },$strict>],"template">
Defined in: packages/catalogue/src/level-spec.ts:246
A level spec: a union on template (grid-town, region, city).