Skip to content

assetSchema

const assetSchema: ZodDiscriminatedUnion<[ZodObject<{ biome: ZodString; edgeMask: ZodOptional<ZodNumber>; format: ZodEnum<{ glb: "glb"; gltf: "gltf"; png: "png"; }>; id: ZodString; path: ZodString; role: ZodLiteral<"tile">; }, $strip>, ZodObject<{ biome: ZodOptional<ZodString>; format: ZodLiteral<"png">; grid: ZodObject<{ cellHeight: ZodNumber; cellWidth: ZodNumber; cols: ZodNumber; rows: ZodNumber; }, $strip>; id: ZodString; path: ZodString; role: ZodLiteral<"tileset">; transition: ZodOptional<ZodObject<{ edgeCells: ZodRecord<ZodString, ZodNumber>; }, $strip>>; }, $strip>, ZodObject<{ category: ZodOptional<ZodEnum<{ encounter: "encounter"; enemy: "enemy"; npc: "npc"; pc: "pc"; prop: "prop"; structure: "structure"; unit: "unit"; }>>; format: ZodLiteral<"png">; id: ZodString; path: ZodString; role: ZodLiteral<"sprite">; }, $strip>, ZodObject<{ category: ZodOptional<ZodEnum<{ encounter: "encounter"; enemy: "enemy"; npc: "npc"; pc: "pc"; prop: "prop"; structure: "structure"; unit: "unit"; }>>; format: ZodEnum<{ glb: "glb"; gltf: "gltf"; }>; id: ZodString; path: ZodString; role: ZodLiteral<"model">; }, $strip>], "role">

Defined in: packages/declarative-hex-worlds/src/asset-source/spec.ts:119

One asset, discriminated by role so per-role format/field rules apply.