UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

1,455 lines 559 kB
/** * Zod schemas for Minecraft Content Meta-Schema. * * These schemas are used for: * 1. MCP tool input validation * 2. Runtime type checking * 3. AI-friendly schema descriptions * * The schemas mirror the TypeScript interfaces in IContentMetaSchema.ts */ import { z } from "zod"; /** * Color specification - hex string or RGB object. */ export declare const McpColorSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{ r: z.ZodNumber; g: z.ZodNumber; b: z.ZodNumber; a: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { b?: number; a?: number; g?: number; r?: number; }, { b?: number; a?: number; g?: number; r?: number; }>]>; /** * Textured rectangle - procedural texture generation. */ export declare const TexturedRectangleSchema: z.ZodObject<{ type: z.ZodEnum<["none", "solid", "random_noise", "dither_noise", "perlin_noise", "stipple_noise", "gradient"]>; colors: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{ r: z.ZodNumber; g: z.ZodNumber; b: z.ZodNumber; a: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { b?: number; a?: number; g?: number; r?: number; }, { b?: number; a?: number; g?: number; r?: number; }>]>, "many">>; factor: z.ZodOptional<z.ZodNumber>; seed: z.ZodOptional<z.ZodNumber>; pixelSize: z.ZodOptional<z.ZodNumber>; scale: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }, { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }>; /** * Pixel art overlay. */ export declare const PixelArtSchema: z.ZodObject<{ scaleMode: z.ZodOptional<z.ZodEnum<["unit", "exact", "cover"]>>; x: z.ZodOptional<z.ZodNumber>; y: z.ZodOptional<z.ZodNumber>; lines: z.ZodArray<z.ZodString, "many">; palette: z.ZodRecord<z.ZodString, z.ZodObject<{ r: z.ZodOptional<z.ZodNumber>; g: z.ZodOptional<z.ZodNumber>; b: z.ZodOptional<z.ZodNumber>; a: z.ZodOptional<z.ZodNumber>; hex: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { hex?: string; b?: number; a?: number; g?: number; r?: number; }, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>>; }, "strip", z.ZodTypeAny, { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }, { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }>; /** * Texture specification. */ export declare const TextureSpecSchema: z.ZodObject<{ file: z.ZodOptional<z.ZodString>; generate: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["none", "solid", "random_noise", "dither_noise", "perlin_noise", "stipple_noise", "gradient"]>; colors: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{ r: z.ZodNumber; g: z.ZodNumber; b: z.ZodNumber; a: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { b?: number; a?: number; g?: number; r?: number; }, { b?: number; a?: number; g?: number; r?: number; }>]>, "many">>; factor: z.ZodOptional<z.ZodNumber>; seed: z.ZodOptional<z.ZodNumber>; pixelSize: z.ZodOptional<z.ZodNumber>; scale: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }, { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }>>; pixelArt: z.ZodOptional<z.ZodArray<z.ZodObject<{ scaleMode: z.ZodOptional<z.ZodEnum<["unit", "exact", "cover"]>>; x: z.ZodOptional<z.ZodNumber>; y: z.ZodOptional<z.ZodNumber>; lines: z.ZodArray<z.ZodString, "many">; palette: z.ZodRecord<z.ZodString, z.ZodObject<{ r: z.ZodOptional<z.ZodNumber>; g: z.ZodOptional<z.ZodNumber>; b: z.ZodOptional<z.ZodNumber>; a: z.ZodOptional<z.ZodNumber>; hex: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { hex?: string; b?: number; a?: number; g?: number; r?: number; }, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>>; }, "strip", z.ZodTypeAny, { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }, { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }>, "many">>; }, "strip", z.ZodTypeAny, { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }, { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }>; /** * Geometry template types. */ export declare const GeometryTemplateSchema: z.ZodEnum<["humanoid", "quadruped", "quadruped_small", "bird", "fish", "insect", "slime", "flying", "block", "item"]>; /** * Geometry specification. */ export declare const GeometrySpecSchema: z.ZodObject<{ file: z.ZodOptional<z.ZodString>; template: z.ZodOptional<z.ZodEnum<["humanoid", "quadruped", "quadruped_small", "bird", "fish", "insect", "slime", "flying", "block", "item"]>>; design: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; }, "strip", z.ZodTypeAny, { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }, { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }>; /** * Entity traits. */ export declare const EntityTraitSchema: z.ZodEnum<["humanoid", "quadruped", "quadruped_small", "flying", "aquatic", "arthropod", "slime", "hostile", "passive", "neutral", "boss", "melee_attacker", "ranged_attacker", "exploder", "trader", "tameable", "rideable", "breedable", "leasable", "undead", "illager", "aquatic_only", "baby_variant", "wanders", "patrols", "guards", "flees_daylight", "teleporter"]>; /** * Entity behavior presets. */ export declare const EntityBehaviorPresetSchema: z.ZodEnum<["wander", "swim", "fly_around", "float", "climb", "melee_attack", "ranged_attack", "target_players", "target_monsters", "flee_when_hurt", "retaliate", "follow_owner", "follow_parent", "herd", "avoid_players", "look_at_player", "beg", "tempt", "sit_command", "eat_grass", "break_doors", "open_doors", "pick_up_items", "sleep_in_bed", "hide_from_sun", "go_home_at_night", "seek_water", "seek_land"]>; /** * Drop definition. */ export declare const DropSchema: z.ZodObject<{ item: z.ZodString; chance: z.ZodOptional<z.ZodNumber>; count: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{ min: z.ZodNumber; max: z.ZodNumber; }, "strip", z.ZodTypeAny, { max?: number; min?: number; }, { max?: number; min?: number; }>]>>; killedByPlayer: z.ZodOptional<z.ZodBoolean>; lootingBonus: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { count?: number | { max?: number; min?: number; }; item?: string; chance?: number; killedByPlayer?: boolean; lootingBonus?: number; }, { count?: number | { max?: number; min?: number; }; item?: string; chance?: number; killedByPlayer?: boolean; lootingBonus?: number; }>; /** * Entity appearance. */ export declare const EntityAppearanceSchema: z.ZodObject<{ bodyType: z.ZodOptional<z.ZodEnum<["humanoid", "quadruped", "quadruped_small", "bird", "fish", "insect", "slime", "flying", "block", "item"]>>; primaryColor: z.ZodOptional<z.ZodString>; secondaryColor: z.ZodOptional<z.ZodString>; textureStyle: z.ZodOptional<z.ZodEnum<["solid", "spotted", "striped", "gradient", "organic", "armored"]>>; scale: z.ZodOptional<z.ZodNumber>; eyes: z.ZodOptional<z.ZodEnum<["normal", "glowing", "red", "none"]>>; particles: z.ZodOptional<z.ZodArray<z.ZodEnum<["flames", "smoke", "drip", "sparkle", "hearts"]>, "many">>; texture: z.ZodOptional<z.ZodObject<{ file: z.ZodOptional<z.ZodString>; generate: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["none", "solid", "random_noise", "dither_noise", "perlin_noise", "stipple_noise", "gradient"]>; colors: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{ r: z.ZodNumber; g: z.ZodNumber; b: z.ZodNumber; a: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { b?: number; a?: number; g?: number; r?: number; }, { b?: number; a?: number; g?: number; r?: number; }>]>, "many">>; factor: z.ZodOptional<z.ZodNumber>; seed: z.ZodOptional<z.ZodNumber>; pixelSize: z.ZodOptional<z.ZodNumber>; scale: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }, { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }>>; pixelArt: z.ZodOptional<z.ZodArray<z.ZodObject<{ scaleMode: z.ZodOptional<z.ZodEnum<["unit", "exact", "cover"]>>; x: z.ZodOptional<z.ZodNumber>; y: z.ZodOptional<z.ZodNumber>; lines: z.ZodArray<z.ZodString, "many">; palette: z.ZodRecord<z.ZodString, z.ZodObject<{ r: z.ZodOptional<z.ZodNumber>; g: z.ZodOptional<z.ZodNumber>; b: z.ZodOptional<z.ZodNumber>; a: z.ZodOptional<z.ZodNumber>; hex: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { hex?: string; b?: number; a?: number; g?: number; r?: number; }, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>>; }, "strip", z.ZodTypeAny, { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }, { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }>, "many">>; }, "strip", z.ZodTypeAny, { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }, { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }>>; geometry: z.ZodOptional<z.ZodObject<{ file: z.ZodOptional<z.ZodString>; template: z.ZodOptional<z.ZodEnum<["humanoid", "quadruped", "quadruped_small", "bird", "fish", "insect", "slime", "flying", "block", "item"]>>; design: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; }, "strip", z.ZodTypeAny, { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }, { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }>>; }, "strip", z.ZodTypeAny, { geometry?: { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }; particles?: ("sparkle" | "flames" | "smoke" | "drip" | "hearts")[]; scale?: number; bodyType?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; primaryColor?: string; secondaryColor?: string; textureStyle?: "gradient" | "solid" | "spotted" | "striped" | "organic" | "armored"; eyes?: "normal" | "none" | "glowing" | "red"; texture?: { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }; }, { geometry?: { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }; particles?: ("sparkle" | "flames" | "smoke" | "drip" | "hearts")[]; scale?: number; bodyType?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; primaryColor?: string; secondaryColor?: string; textureStyle?: "gradient" | "solid" | "spotted" | "striped" | "organic" | "armored"; eyes?: "normal" | "none" | "glowing" | "red"; texture?: { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }; }>; /** * Tameable configuration. */ export declare const TameableConfigSchema: z.ZodObject<{ tameItems: z.ZodArray<z.ZodString, "many">; chance: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { chance?: number; tameItems?: string[]; }, { chance?: number; tameItems?: string[]; }>; /** * Rideable configuration. */ export declare const RideableConfigSchema: z.ZodObject<{ seatCount: z.ZodOptional<z.ZodNumber>; controllable: z.ZodOptional<z.ZodBoolean>; controlItems: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { seatCount?: number; controllable?: boolean; controlItems?: string[]; }, { seatCount?: number; controllable?: boolean; controlItems?: string[]; }>; /** * Breedable configuration. */ export declare const BreedableConfigSchema: z.ZodObject<{ breedItems: z.ZodArray<z.ZodString, "many">; breedCooldown: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { breedItems?: string[]; breedCooldown?: number; }, { breedItems?: string[]; breedCooldown?: number; }>; /** * Spawn configuration. * * There are two spawn-rule shapes: inline on an entity (this one, `entity.spawning`) and a * separate top-level `spawnRules[]` entry (SpawnRuleSchema). Use the inline form for a rule * bound to a single entity. Use the top-level form when the rule references an entity defined * elsewhere (e.g. a vanilla entity) or when you want the rule file separate from the entity. */ export declare const SpawnConfigSchema: z.ZodObject<{ biomes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; weight: z.ZodOptional<z.ZodNumber>; groupSize: z.ZodOptional<z.ZodObject<{ min: z.ZodNumber; max: z.ZodNumber; }, "strip", z.ZodTypeAny, { max?: number; min?: number; }, { max?: number; min?: number; }>>; lightLevel: z.ZodOptional<z.ZodObject<{ min: z.ZodOptional<z.ZodNumber>; max: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { max?: number; min?: number; }, { max?: number; min?: number; }>>; heightRange: z.ZodOptional<z.ZodObject<{ min: z.ZodNumber; max: z.ZodNumber; }, "strip", z.ZodTypeAny, { max?: number; min?: number; }, { max?: number; min?: number; }>>; timeOfDay: z.ZodOptional<z.ZodEnum<["day", "night", "any"]>>; surface: z.ZodOptional<z.ZodBoolean>; spawnOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; populationCap: z.ZodOptional<z.ZodNumber>; rarity: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { weight?: number; biomes?: string[]; groupSize?: { max?: number; min?: number; }; lightLevel?: { max?: number; min?: number; }; heightRange?: { max?: number; min?: number; }; timeOfDay?: "any" | "day" | "night"; surface?: boolean; spawnOn?: string[]; populationCap?: number; rarity?: number; }, { weight?: number; biomes?: string[]; groupSize?: { max?: number; min?: number; }; lightLevel?: { max?: number; min?: number; }; heightRange?: { max?: number; min?: number; }; timeOfDay?: "any" | "day" | "night"; surface?: boolean; spawnOn?: string[]; populationCap?: number; rarity?: number; }>; /** * Entity sounds. */ export declare const EntitySoundsSchema: z.ZodObject<{ ambient: z.ZodOptional<z.ZodString>; hurt: z.ZodOptional<z.ZodString>; death: z.ZodOptional<z.ZodString>; step: z.ZodOptional<z.ZodString>; attack: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { step?: string; ambient?: string; hurt?: string; death?: string; attack?: string; }, { step?: string; ambient?: string; hurt?: string; death?: string; attack?: string; }>; /** * Entity type definition. */ export declare const EntityTypeSchema: z.ZodObject<{ id: z.ZodString; displayName: z.ZodString; traits: z.ZodOptional<z.ZodArray<z.ZodEnum<["humanoid", "quadruped", "quadruped_small", "flying", "aquatic", "arthropod", "slime", "hostile", "passive", "neutral", "boss", "melee_attacker", "ranged_attacker", "exploder", "trader", "tameable", "rideable", "breedable", "leasable", "undead", "illager", "aquatic_only", "baby_variant", "wanders", "patrols", "guards", "flees_daylight", "teleporter"]>, "many">>; health: z.ZodOptional<z.ZodNumber>; attackDamage: z.ZodOptional<z.ZodNumber>; movementSpeed: z.ZodOptional<z.ZodNumber>; followRange: z.ZodOptional<z.ZodNumber>; knockbackResistance: z.ZodOptional<z.ZodNumber>; scale: z.ZodOptional<z.ZodNumber>; collisionWidth: z.ZodOptional<z.ZodNumber>; collisionHeight: z.ZodOptional<z.ZodNumber>; behaviors: z.ZodOptional<z.ZodArray<z.ZodEnum<["wander", "swim", "fly_around", "float", "climb", "melee_attack", "ranged_attack", "target_players", "target_monsters", "flee_when_hurt", "retaliate", "follow_owner", "follow_parent", "herd", "avoid_players", "look_at_player", "beg", "tempt", "sit_command", "eat_grass", "break_doors", "open_doors", "pick_up_items", "sleep_in_bed", "hide_from_sun", "go_home_at_night", "seek_water", "seek_land"]>, "many">>; drops: z.ZodOptional<z.ZodArray<z.ZodObject<{ item: z.ZodString; chance: z.ZodOptional<z.ZodNumber>; count: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{ min: z.ZodNumber; max: z.ZodNumber; }, "strip", z.ZodTypeAny, { max?: number; min?: number; }, { max?: number; min?: number; }>]>>; killedByPlayer: z.ZodOptional<z.ZodBoolean>; lootingBonus: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { count?: number | { max?: number; min?: number; }; item?: string; chance?: number; killedByPlayer?: boolean; lootingBonus?: number; }, { count?: number | { max?: number; min?: number; }; item?: string; chance?: number; killedByPlayer?: boolean; lootingBonus?: number; }>, "many">>; appearance: z.ZodOptional<z.ZodObject<{ bodyType: z.ZodOptional<z.ZodEnum<["humanoid", "quadruped", "quadruped_small", "bird", "fish", "insect", "slime", "flying", "block", "item"]>>; primaryColor: z.ZodOptional<z.ZodString>; secondaryColor: z.ZodOptional<z.ZodString>; textureStyle: z.ZodOptional<z.ZodEnum<["solid", "spotted", "striped", "gradient", "organic", "armored"]>>; scale: z.ZodOptional<z.ZodNumber>; eyes: z.ZodOptional<z.ZodEnum<["normal", "glowing", "red", "none"]>>; particles: z.ZodOptional<z.ZodArray<z.ZodEnum<["flames", "smoke", "drip", "sparkle", "hearts"]>, "many">>; texture: z.ZodOptional<z.ZodObject<{ file: z.ZodOptional<z.ZodString>; generate: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["none", "solid", "random_noise", "dither_noise", "perlin_noise", "stipple_noise", "gradient"]>; colors: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{ r: z.ZodNumber; g: z.ZodNumber; b: z.ZodNumber; a: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { b?: number; a?: number; g?: number; r?: number; }, { b?: number; a?: number; g?: number; r?: number; }>]>, "many">>; factor: z.ZodOptional<z.ZodNumber>; seed: z.ZodOptional<z.ZodNumber>; pixelSize: z.ZodOptional<z.ZodNumber>; scale: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }, { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }>>; pixelArt: z.ZodOptional<z.ZodArray<z.ZodObject<{ scaleMode: z.ZodOptional<z.ZodEnum<["unit", "exact", "cover"]>>; x: z.ZodOptional<z.ZodNumber>; y: z.ZodOptional<z.ZodNumber>; lines: z.ZodArray<z.ZodString, "many">; palette: z.ZodRecord<z.ZodString, z.ZodObject<{ r: z.ZodOptional<z.ZodNumber>; g: z.ZodOptional<z.ZodNumber>; b: z.ZodOptional<z.ZodNumber>; a: z.ZodOptional<z.ZodNumber>; hex: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { hex?: string; b?: number; a?: number; g?: number; r?: number; }, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>>; }, "strip", z.ZodTypeAny, { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }, { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }>, "many">>; }, "strip", z.ZodTypeAny, { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }, { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }>>; geometry: z.ZodOptional<z.ZodObject<{ file: z.ZodOptional<z.ZodString>; template: z.ZodOptional<z.ZodEnum<["humanoid", "quadruped", "quadruped_small", "bird", "fish", "insect", "slime", "flying", "block", "item"]>>; design: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; }, "strip", z.ZodTypeAny, { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }, { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }>>; }, "strip", z.ZodTypeAny, { geometry?: { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }; particles?: ("sparkle" | "flames" | "smoke" | "drip" | "hearts")[]; scale?: number; bodyType?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; primaryColor?: string; secondaryColor?: string; textureStyle?: "gradient" | "solid" | "spotted" | "striped" | "organic" | "armored"; eyes?: "normal" | "none" | "glowing" | "red"; texture?: { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }; }, { geometry?: { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }; particles?: ("sparkle" | "flames" | "smoke" | "drip" | "hearts")[]; scale?: number; bodyType?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; primaryColor?: string; secondaryColor?: string; textureStyle?: "gradient" | "solid" | "spotted" | "striped" | "organic" | "armored"; eyes?: "normal" | "none" | "glowing" | "red"; texture?: { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }; }>>; families: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; hostile: z.ZodOptional<z.ZodBoolean>; tameable: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{ tameItems: z.ZodArray<z.ZodString, "many">; chance: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { chance?: number; tameItems?: string[]; }, { chance?: number; tameItems?: string[]; }>]>>; rideable: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{ seatCount: z.ZodOptional<z.ZodNumber>; controllable: z.ZodOptional<z.ZodBoolean>; controlItems: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; }, "strip", z.ZodTypeAny, { seatCount?: number; controllable?: boolean; controlItems?: string[]; }, { seatCount?: number; controllable?: boolean; controlItems?: string[]; }>]>>; breedable: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{ breedItems: z.ZodArray<z.ZodString, "many">; breedCooldown: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { breedItems?: string[]; breedCooldown?: number; }, { breedItems?: string[]; breedCooldown?: number; }>]>>; components: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; componentGroups: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodAny>>>; events: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; geometry: z.ZodOptional<z.ZodObject<{ file: z.ZodOptional<z.ZodString>; template: z.ZodOptional<z.ZodEnum<["humanoid", "quadruped", "quadruped_small", "bird", "fish", "insect", "slime", "flying", "block", "item"]>>; design: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; }, "strip", z.ZodTypeAny, { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }, { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }>>; texture: z.ZodOptional<z.ZodObject<{ file: z.ZodOptional<z.ZodString>; generate: z.ZodOptional<z.ZodObject<{ type: z.ZodEnum<["none", "solid", "random_noise", "dither_noise", "perlin_noise", "stipple_noise", "gradient"]>; colors: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{ r: z.ZodNumber; g: z.ZodNumber; b: z.ZodNumber; a: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { b?: number; a?: number; g?: number; r?: number; }, { b?: number; a?: number; g?: number; r?: number; }>]>, "many">>; factor: z.ZodOptional<z.ZodNumber>; seed: z.ZodOptional<z.ZodNumber>; pixelSize: z.ZodOptional<z.ZodNumber>; scale: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }, { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }>>; pixelArt: z.ZodOptional<z.ZodArray<z.ZodObject<{ scaleMode: z.ZodOptional<z.ZodEnum<["unit", "exact", "cover"]>>; x: z.ZodOptional<z.ZodNumber>; y: z.ZodOptional<z.ZodNumber>; lines: z.ZodArray<z.ZodString, "many">; palette: z.ZodRecord<z.ZodString, z.ZodObject<{ r: z.ZodOptional<z.ZodNumber>; g: z.ZodOptional<z.ZodNumber>; b: z.ZodOptional<z.ZodNumber>; a: z.ZodOptional<z.ZodNumber>; hex: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { hex?: string; b?: number; a?: number; g?: number; r?: number; }, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>>; }, "strip", z.ZodTypeAny, { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }, { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }>, "many">>; }, "strip", z.ZodTypeAny, { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }, { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }>>; sounds: z.ZodOptional<z.ZodObject<{ ambient: z.ZodOptional<z.ZodString>; hurt: z.ZodOptional<z.ZodString>; death: z.ZodOptional<z.ZodString>; step: z.ZodOptional<z.ZodString>; attack: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { step?: string; ambient?: string; hurt?: string; death?: string; attack?: string; }, { step?: string; ambient?: string; hurt?: string; death?: string; attack?: string; }>>; spawning: z.ZodOptional<z.ZodObject<{ biomes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; weight: z.ZodOptional<z.ZodNumber>; groupSize: z.ZodOptional<z.ZodObject<{ min: z.ZodNumber; max: z.ZodNumber; }, "strip", z.ZodTypeAny, { max?: number; min?: number; }, { max?: number; min?: number; }>>; lightLevel: z.ZodOptional<z.ZodObject<{ min: z.ZodOptional<z.ZodNumber>; max: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { max?: number; min?: number; }, { max?: number; min?: number; }>>; heightRange: z.ZodOptional<z.ZodObject<{ min: z.ZodNumber; max: z.ZodNumber; }, "strip", z.ZodTypeAny, { max?: number; min?: number; }, { max?: number; min?: number; }>>; timeOfDay: z.ZodOptional<z.ZodEnum<["day", "night", "any"]>>; surface: z.ZodOptional<z.ZodBoolean>; spawnOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; populationCap: z.ZodOptional<z.ZodNumber>; rarity: z.ZodOptional<z.ZodNumber>; }, "strip", z.ZodTypeAny, { weight?: number; biomes?: string[]; groupSize?: { max?: number; min?: number; }; lightLevel?: { max?: number; min?: number; }; heightRange?: { max?: number; min?: number; }; timeOfDay?: "any" | "day" | "night"; surface?: boolean; spawnOn?: string[]; populationCap?: number; rarity?: number; }, { weight?: number; biomes?: string[]; groupSize?: { max?: number; min?: number; }; lightLevel?: { max?: number; min?: number; }; heightRange?: { max?: number; min?: number; }; timeOfDay?: "any" | "day" | "night"; surface?: boolean; spawnOn?: string[]; populationCap?: number; rarity?: number; }>>; }, "strip", z.ZodTypeAny, { geometry?: { template?: "flying" | "item" | "slime" | "humanoid" | "block" | "bird" | "insect" | "fish" | "quadruped" | "quadruped_small"; file?: string; design?: Record<string, any>; }; sounds?: { step?: string; ambient?: string; hurt?: string; death?: string; attack?: string; }; id?: string; scale?: number; health?: number; components?: Record<string, any>; events?: Record<string, any>; hostile?: boolean; traits?: ("flying" | "neutral" | "boss" | "passive" | "teleporter" | "slime" | "hostile" | "humanoid" | "quadruped" | "quadruped_small" | "aquatic" | "arthropod" | "melee_attacker" | "ranged_attacker" | "exploder" | "trader" | "tameable" | "rideable" | "breedable" | "leasable" | "undead" | "illager" | "aquatic_only" | "baby_variant" | "wanders" | "patrols" | "guards" | "flees_daylight")[]; tameable?: boolean | { chance?: number; tameItems?: string[]; }; rideable?: boolean | { seatCount?: number; controllable?: boolean; controlItems?: string[]; }; breedable?: boolean | { breedItems?: string[]; breedCooldown?: number; }; texture?: { file?: string; generate?: { type?: "none" | "gradient" | "solid" | "random_noise" | "dither_noise" | "perlin_noise" | "stipple_noise"; scale?: number; seed?: number; colors?: (string | { b?: number; a?: number; g?: number; r?: number; })[]; factor?: number; pixelSize?: number; }; pixelArt?: { x?: number; y?: number; palette?: Record<string, { hex?: string; b?: number; a?: number; g?: number; r?: number; }>; lines?: string[]; scaleMode?: "exact" | "unit" | "cover"; }[]; }; displayName?: string; attackDamage?: number; movementSpeed?: number; followRange?: number; knockbackResistance?: number; collisionWidth?: number; collisionHeight?: number; behaviors?: ("float" | "wander" | "swim" | "fly_around" | "climb" | "melee_attack" | "ranged_attack" | "target_players" | "target_monsters" | "flee_when_hurt" | "retaliate" | "follow_owner" | "follow_parent" | "herd" | "avoid_players" | "look_at_player" | "beg"