@mbler/mcx-core 0.1.1 → 0.1.2

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.
Files changed (40) hide show
  1. package/dist/chunk-DEq-mXcV.js +15 -0
  2. package/dist/index.d.ts +4861 -5024
  3. package/dist/index.js +6384 -12177
  4. package/dist/index.js.map +1 -1
  5. package/package.json +14 -6
  6. package/dist/types/ast/index.d.ts +0 -7
  7. package/dist/types/ast/prop.d.ts +0 -8
  8. package/dist/types/ast/tag.d.ts +0 -66
  9. package/dist/types/compile-mcx/compiler/compileData.d.ts +0 -20
  10. package/dist/types/compile-mcx/compiler/index.d.ts +0 -36
  11. package/dist/types/compile-mcx/compiler/main.d.ts +0 -6
  12. package/dist/types/compile-mcx/compiler/utils.d.ts +0 -11
  13. package/dist/types/compile-mcx/index.d.ts +0 -1
  14. package/dist/types/compile-mcx/types.d.ts +0 -52
  15. package/dist/types/compile-mcx/utils.node.d.ts +0 -14
  16. package/dist/types/index.d.ts +0 -10
  17. package/dist/types/mcx-component/components/block.d.ts +0 -4
  18. package/dist/types/mcx-component/components/entity.d.ts +0 -1266
  19. package/dist/types/mcx-component/components/item.d.ts +0 -520
  20. package/dist/types/mcx-component/index.d.ts +0 -17
  21. package/dist/types/mcx-component/lib.d.ts +0 -32
  22. package/dist/types/mcx-component/types/AttackCriticalHitChoices.d.ts +0 -3
  23. package/dist/types/mcx-component/types/EnchantableSlot.d.ts +0 -9
  24. package/dist/types/mcx-component/types/ParticleType.d.ts +0 -8
  25. package/dist/types/mcx-component/types/SoundEvent.d.ts +0 -8
  26. package/dist/types/mcx-component/types/StartSoundChoices.d.ts +0 -3
  27. package/dist/types/mcx-component/types.d.ts +0 -3053
  28. package/dist/types/mcx-component/utils.d.ts +0 -2
  29. package/dist/types/mcx-component/vm.d.ts +0 -28
  30. package/dist/types/transforms/config.d.ts +0 -8
  31. package/dist/types/transforms/file_id.d.ts +0 -1
  32. package/dist/types/transforms/index.d.ts +0 -5
  33. package/dist/types/transforms/main.d.ts +0 -2
  34. package/dist/types/transforms/utils.d.ts +0 -22
  35. package/dist/types/transforms/x-comp/index.d.ts +0 -3
  36. package/dist/types/transforms/x-comp/x-app.d.ts +0 -2
  37. package/dist/types/transforms/x-comp/x-event.d.ts +0 -2
  38. package/dist/types/transforms/x-comp/x-ui.d.ts +0 -2
  39. package/dist/types/types.d.ts +0 -100
  40. package/dist/types/utils.d.ts +0 -18
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/ast/tag.ts","../src/ast/prop.ts","../src/ast/index.ts","../src/compile-mcx/types.ts","../src/compile-mcx/compiler/compileData.ts","../src/compile-mcx/compiler/utils.ts","../src/compile-mcx/compiler/index.ts","../src/transforms/config.ts","../src/utils.ts","../src/transforms/file_id.ts","../src/transforms/utils.ts","../src/transforms/x-comp/x-ui.ts","../src/transforms/x-comp/x-event.ts","../src/transforms/x-comp/x-app.ts","../src/mcx-component/vm.ts","../src/mcx-component/components/block.ts","../src/mcx-component/components/entity.ts","../src/mcx-component/types/SoundEvent.ts","../src/mcx-component/types/ParticleType.ts","../src/mcx-component/types/EnchantableSlot.ts","../src/mcx-component/types.ts","../src/mcx-component/components/item.ts","../src/mcx-component/lib.ts","../src/mcx-component/index.ts","../src/transforms/main.ts","../src/transforms/index.ts","../src/compile-mcx/compiler/main.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["Lexer","AST_tag","AST_prop","readFile","Parser","t","CompileData.JsCompileData","CompileData.MCXCompileData","parse","fs","path","McxUtlis","Comp","generator","Module","Buffer","vm","exports","t.ParticleTypeEnum","t.SoundEventEnum","t.EnchantableSlotEnum","t.createFileEdit","statSync","extname","cp","writeFile","readFileSync","mkdir","existsSync","EventComp","UIComp","AppComp","generate","program"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["Lexer","Parser","AST_tag","AST_prop","Utils","CompileData.JsCompileData","Utils","CompileData.MCXCompileData","babelErr","path","Utils","config","McxUtils","Comp","config","Comp","config","#opt","#validateDamageSensorTrigger","#opt","#edit","t.createFileEdit","config","EventComp","UIComp","AppComp"],"sources":["../src/ast/tag.ts","../src/ast/prop.ts","../src/ast/index.ts","../src/compile-mcx/types.ts","../src/compile-mcx/compiler/compileData.ts","../src/compile-mcx/compiler/utils.ts","../src/compile-mcx/compiler/index.ts","../src/transforms/config.ts","../src/utils.ts","../src/transforms/file_id.ts","../src/transforms/utils.ts","../src/transforms/transform/ui.ts","../src/transforms/transform/event.ts","../src/transforms/transform/app.ts","../src/mcx-component/vm.ts","../src/mcx-component/components/block.ts","../src/mcx-component/components/entity.ts","../src/mcx-component/types/SoundEvent.ts","../src/mcx-component/types/ParticleType.ts","../src/mcx-component/types/EnchantableSlot.ts","../src/mcx-component/types.ts","../src/mcx-component/components/item.ts","../src/mcx-component/lib.ts","../src/mcx-component/index.ts","../src/transforms/main.ts","../src/transforms/index.ts","../src/compile-mcx/compiler/main.ts","../src/types.ts"],"sourcesContent":["import type {\n BaseToken,\n TagToken,\n TagEndToken,\n ContentToken,\n CommentToken,\n Token,\n ParsedTagNode,\n AttributeMap,\n ParsedTagContentNode,\n ParsedCommentNode,\n MCXLoc,\n MCXPosition,\n TokenType,\n} from './../types.js';\n\nfunction createPos(line: number, column: number): MCXPosition {\n return { line, column };\n}\nclass Tokenizer {\n private text: string;\n\n constructor(text: string) {\n this.text = text;\n }\n *splitTokens(): IterableIterator<Token> {\n const text = this.text;\n let i = 0;\n let line = 1;\n let column = 0;\n const len = text.length;\n\n while (i < len) {\n const ch = text[i];\n\n if (ch === '<') {\n if (text.startsWith('!--', i + 1)) {\n const commentStart = i;\n const tokenStartLine = line;\n const tokenStartColumn = column;\n const endIdx = text.indexOf('-->', i + 4);\n const commentEnd = endIdx === -1 ? len - 1 : endIdx + 2;\n for (let j = i; j <= commentEnd; j++) {\n if (text[j] === '\\n') {\n line++;\n column = 0;\n } else {\n column++;\n }\n }\n const buffer = text.slice(commentStart, commentEnd + 1);\n const tok: Token = {\n data: buffer,\n type: 'Comment' as TokenType,\n start: createPos(tokenStartLine, tokenStartColumn),\n end: createPos(line, column),\n };\n yield tok;\n i = commentEnd + 1;\n if (i < len && text[i] === '>') column++;\n continue;\n }\n const tokenStart = i;\n const tokenStartLine = line;\n const tokenStartColumn = column;\n let j = i + 1;\n let sawGt = false;\n for (; j < len; j++) {\n const c = text[j];\n if (c === '>') {\n sawGt = true;\n break;\n }\n if (c === '\\n') {\n line++;\n column = 0;\n } else {\n column++;\n }\n }\n const buffer = text.slice(tokenStart, sawGt ? j + 1 : len);\n const type: TokenType = buffer.startsWith('</') ? 'TagEnd' : 'Tag';\n const tok: Token = {\n data: buffer,\n type,\n start: createPos(tokenStartLine, tokenStartColumn),\n end: createPos(line, column),\n };\n yield tok;\n i = sawGt ? j + 1 : len;\n if (sawGt) column++;\n } else {\n const contentStart = i;\n const contentStartLine = line;\n const contentStartColumn = column;\n let j = i;\n for (; j < len; j++) {\n const c = text[j];\n if (c === '<') break;\n if (c === '\\n') {\n line++;\n column = 0;\n } else {\n column++;\n }\n }\n const data = text.slice(contentStart, j);\n const n: Token = {\n data,\n type: 'Content',\n start: createPos(contentStartLine, contentStartColumn),\n end: createPos(line, j > contentStart ? column - 1 : column),\n };\n yield n;\n i = j;\n }\n }\n }\n}\n\nclass Lexer {\n private text: string;\n private includeComments: boolean;\n private booleanProxyCache: WeakMap<object, Record<string, boolean>>;\n\n constructor(text: string, includeComments: boolean = false) {\n this.text = text;\n this.includeComments = includeComments;\n this.booleanProxyCache = new WeakMap();\n }\n *tokenStream(): IterableIterator<Token> {\n const tokenizer = new Tokenizer(this.text);\n\n for (const token of tokenizer.splitTokens()) {\n // 如果includeComments为false,跳过注释Token\n if (!this.includeComments && token.type === 'Comment') {\n continue;\n }\n yield token;\n }\n }\n\n /**\n * 生成 Token 迭代器,用于遍历所有结构化 Token\n */\n *tokenIterator(): IterableIterator<Token> {\n yield* this.tokenStream();\n }\n\n get tokens(): Iterable<Token> {\n return {\n [Symbol.iterator]: () => this.tokenIterator(),\n };\n }\n\n /**\n * 创建一个动态布尔属性访问的 Proxy(可选功能)\n */\n getBooleanCheckProxy(): Record<string, boolean> {\n if (!this.booleanProxyCache.has(this)) {\n const charMap = new Map<string, boolean>();\n const proxy = new Proxy(\n {},\n {\n get(_: unknown, prop: string | symbol): boolean {\n if (typeof prop !== 'string') return false;\n return charMap.get(prop) || false;\n },\n set(_: unknown, prop: string | symbol, value: unknown): boolean {\n if (typeof prop !== 'string') return false;\n charMap.set(prop, Boolean(value));\n return true;\n },\n },\n );\n this.booleanProxyCache.set(this, proxy as Record<string, boolean>);\n }\n return this.booleanProxyCache.get(this) as Record<string, boolean>;\n }\n}\n\n/** Parser - 负责将Token流解析为AST */\nclass Parser {\n private lexer: Lexer;\n\n constructor(lexer: Lexer) {\n this.lexer = lexer;\n }\n\n /**\n * 解析标签属性,如:<div id=\"app\" disabled />\n */\n private parseAttributes(tagContent: string): {\n name: string;\n arr: AttributeMap;\n } {\n const attributes: Record<string, string> = {};\n let currentKey = '';\n let currentValue = '';\n let inKey = true;\n let name = '';\n let inValue = false;\n let quoteChar: string | null = null;\n let isTagName = true;\n\n for (let i = 0; i < tagContent.length; i++) {\n const char = tagContent[i];\n\n if (isTagName) {\n if (char === ' ' || char === '>') {\n name = currentKey.trim();\n currentKey = '';\n isTagName = false;\n if (char === '>') break;\n } else {\n currentKey += char;\n }\n continue;\n }\n\n if (inValue) {\n if (\n char === quoteChar &&\n (currentValue.length === 0 ||\n currentValue[currentValue.length - 1] !== '\\\\')\n ) {\n attributes[currentKey.trim()] = currentValue;\n currentKey = '';\n currentValue = '';\n inKey = true;\n inValue = false;\n quoteChar = null;\n } else {\n currentValue += char;\n }\n } else if (char === '=' && inKey) {\n inKey = false;\n inValue = true;\n const nextIndex = i + 1;\n const nextChar =\n nextIndex < tagContent.length ? tagContent[nextIndex] : ' ';\n quoteChar = null;\n } else if (char === ' ' && inKey && currentKey) {\n attributes[currentKey.trim()] = 'true';\n currentKey = '';\n } else if (inKey) {\n currentKey += char;\n }\n }\n\n if (isTagName) {\n name = currentKey.trim();\n } else if (currentKey) {\n attributes[currentKey.trim()] = inValue\n ? currentValue.replace(/^[\"']/, '').replace(/[\"']$/, '')\n : 'true';\n }\n\n return {\n name,\n arr: attributes,\n };\n }\n\n /**\n * 基于stack的解析以支持嵌套,并为ParsedTagNode添加loc: { start, end }\n * Content和Comment改为递归节点数组 (ParsedTagContentNode | ParsedCommentNode | ParsedTagNode)[]\n */\n *parseAST(): IterableIterator<ParsedTagNode> {\n const rawTokens = Array.from(this.lexer.tokenStream());\n const root: (ParsedTagNode | ParsedTagContentNode | ParsedCommentNode)[] =\n [];\n const stack: ParsedTagNode[] = [];\n\n for (let idx = 0; idx < rawTokens.length; idx++) {\n const token = rawTokens[idx];\n if (!token) continue;\n\n if (token.type === 'Content') {\n const contentNode: ParsedTagContentNode = {\n data: token.data,\n type: 'TagContent',\n };\n if (stack.length > 0) {\n const top = stack[stack.length - 1];\n (top as ParsedTagNode).content.push(contentNode);\n } else {\n root.push(contentNode);\n }\n } else if (token.type === 'Comment') {\n const commentNode: ParsedCommentNode = {\n data: token.data,\n type: 'Comment',\n loc: {\n start: { ...token.start },\n end: { ...token.end },\n },\n };\n if (stack.length > 0) {\n const top = stack[stack.length - 1];\n (top as ParsedTagNode).content.push(commentNode);\n } else {\n root.push(commentNode);\n }\n } else if (token.type === 'Tag') {\n const inner = token.data.slice(1, -1).trim();\n // 自闭合 <br/> 或 <img ... /> 也当作单节点(没有 end),这里简单检测末尾 '/'\n const isSelfClosing = inner.endsWith('/');\n const arr = this.parseAttributes(\n isSelfClosing ? inner.slice(0, -1).trim() : inner,\n );\n const node: ParsedTagNode = {\n start: token as TagToken,\n name: arr.name,\n arr: arr.arr as AttributeMap,\n // content 现在是一个数组,包含文本节点、注释节点或子标签\n content: [] as (\n | ParsedTagContentNode\n | ParsedCommentNode\n | ParsedTagNode\n )[],\n end: null,\n type: 'TagNode',\n loc: {\n start: { ...token.start },\n end: { ...token.end },\n } as MCXLoc,\n };\n\n if (isSelfClosing) {\n // self-closing: immediately close and attach to parent or root\n if (stack.length > 0) {\n (stack[stack.length - 1] as ParsedTagNode).content.push(node);\n } else {\n // yield top-level node\n yield node;\n }\n } else {\n stack.push(node);\n }\n } else if (token.type === 'TagEnd') {\n // 从 '</name>' 中提取 name\n const name = token.data\n .replace(/^<\\/\\s*/, '')\n .replace(/\\s*>$/, '')\n .trim();\n // 找到最近的匹配开始标签\n for (let s = stack.length - 1; s >= 0; s--) {\n const candidate = stack[s];\n if (candidate && candidate.name === name) {\n // 设置结束\n candidate.end = token;\n candidate.loc.end = { ...token.end };\n // 从 stack 中移除并附加到父节点或作为顶层节点产出\n stack.splice(s, 1);\n if (stack.length > 0) {\n (stack[stack.length - 1] as ParsedTagNode).content.push(\n candidate,\n );\n } else {\n // yield completed top-level node\n yield candidate;\n }\n break;\n }\n }\n }\n }\n while (stack.length > 0) {\n const node = stack.shift()!;\n if (stack.length > 0) {\n (stack[0] as ParsedTagNode).content.push(node);\n } else {\n yield node;\n }\n }\n }\n\n get ast(): Iterable<ParsedTagNode> {\n return {\n [Symbol.iterator]: () => this.parseAST(),\n };\n }\n}\nexport default class McxAst {\n private text: string;\n private includeComments: boolean;\n\n constructor(text: string, includeComments: boolean = false) {\n this.text = text;\n this.includeComments = includeComments;\n }\n\n private getAST(): ParsedTagNode[] {\n const lexer = new Lexer(this.text, this.includeComments);\n const parser = new Parser(lexer);\n return Array.from(parser.parseAST());\n }\n\n get data(): ParsedTagNode[] {\n return this.getAST();\n }\n\n parseAST(): ParsedTagNode[] {\n return this.getAST();\n }\n\n /**\n * 生成代码字符串\n * @param node 代码的AST节点\n * @returns 代码字符串\n */\n static generateCode(node: ParsedTagNode): string {\n let code = `<${node.name}`;\n // 添加属性\n for (const [key, value] of Object.entries(node.arr || {})) {\n if (value === 'true') {\n code += ` ${key}`;\n } else {\n code += ` ${key}=${String(value)}`;\n }\n }\n code += '>';\n const contentArr = node.content;\n if (Array.isArray(contentArr)) {\n for (const item of contentArr) {\n if ((item as ParsedTagContentNode).type === 'TagContent') {\n code += (item as ParsedTagContentNode).data;\n } else {\n code += McxAst.generateCode(item as ParsedTagNode);\n }\n }\n }\n code += `</${node.name}>`;\n return code;\n }\n}\n\nexport { Tokenizer, Lexer, Parser, MCXUtils };\nclass MCXUtils {\n static isTagNode(node: unknown): node is ParsedTagNode {\n return (\n !!node &&\n typeof node === 'object' &&\n 'start' in (node as object) &&\n 'name' in (node as object) &&\n 'arr' in (node as object) &&\n 'content' in (node as object) &&\n 'end' in (node as object)\n );\n }\n static isTagContentNode(node: unknown): node is ParsedTagContentNode {\n return (\n !!node &&\n typeof node === 'object' &&\n 'data' in (node as object) &&\n 'type' in (node as object) &&\n (node as ParsedTagContentNode).type === 'TagContent'\n );\n }\n static isCommentNode(node: unknown): node is ParsedCommentNode {\n return (\n !!node &&\n typeof node === 'object' &&\n 'data' in (node as object) &&\n 'type' in (node as object) &&\n 'loc' in (node as object) &&\n (node as ParsedCommentNode).type === 'Comment'\n );\n }\n static isAttributeMap(obj: unknown): obj is AttributeMap {\n return !!obj && typeof obj === 'object' && !Array.isArray(obj);\n }\n static isToken(obj: unknown): obj is Token {\n return (\n !!obj &&\n typeof obj === 'object' &&\n 'data' in (obj as object) &&\n 'type' in (obj as object) &&\n 'start' in (obj as object) &&\n 'end' in (obj as object) &&\n ((obj as Token).type === 'Tag' ||\n (obj as Token).type === 'TagEnd' ||\n (obj as Token).type === 'Content' ||\n (obj as Token).type === 'Comment')\n );\n }\n static isTagToken(obj: unknown): obj is TagToken {\n return MCXUtils.isToken(obj) && (obj as Token).type === 'Tag';\n }\n static isTagEndToken(obj: unknown): obj is TagEndToken {\n return MCXUtils.isToken(obj) && (obj as Token).type === 'TagEnd';\n }\n static isContentToken(obj: unknown): obj is ContentToken {\n return MCXUtils.isToken(obj) && (obj as Token).type === 'Content';\n }\n static isCommentToken(obj: unknown): obj is CommentToken {\n return MCXUtils.isToken(obj) && (obj as Token).type === 'Comment';\n }\n static isBaseToken(obj: unknown): obj is BaseToken {\n return (\n !!obj &&\n typeof obj === 'object' &&\n 'data' in (obj as object) &&\n 'type' in (obj as object) &&\n 'start' in (obj as object) &&\n 'end' in (obj as object)\n );\n }\n static isTokenType(value: unknown): value is TokenType {\n return (\n value === 'Tag' ||\n value === 'TagEnd' ||\n value === 'Content' ||\n value === 'Comment'\n );\n }\n static isParseNode(node: unknown): node is ParsedTagNode[] {\n return Array.isArray(node) && (node as unknown[]).every(MCXUtils.isTagNode);\n }\n}\n","import type { PropNode, PropValue } from '../types.js';\n\nconst STATUS = [0, 1]; // 0: key,1: value\n\nexport class Lexer {\n private code: string;\n\n constructor(code: string) {\n this.code = code;\n }\n *tokenize(): IterableIterator<PropNode> {\n let currStatus = STATUS[0]; // 0: key,1: value\n let key = '';\n let value = '';\n let hasEquals = false;\n\n for (const char of this.code) {\n if (/\\s/.test(char)) {\n if (char === '\\n') {\n if (currStatus === STATUS[1] && key && value) {\n const propNode: PropNode = {\n key,\n value: this.HandlerValue(value),\n type: 'PropChar',\n };\n yield propNode;\n } else if (currStatus === STATUS[0] && key) {\n }\n key = '';\n value = '';\n hasEquals = false;\n currStatus = STATUS[0];\n }\n continue; // 跳过所有空白字符\n }\n\n if (char === '=') {\n if (currStatus === STATUS[0]) {\n currStatus = STATUS[1]; // set to value\n hasEquals = true;\n }\n } else {\n if (currStatus === STATUS[0]) {\n key += char; // key\n } else if (currStatus === STATUS[1]) {\n value += char; // value\n }\n }\n }\n if (key && value) {\n const propNode: PropNode = {\n key,\n value: this.HandlerValue(value),\n type: 'PropChar',\n };\n yield propNode;\n }\n }\n HandlerValue(value: string): PropValue {\n const num = Number(value);\n if (!Number.isNaN(num)) return num;\n if (\n ['[', '{'].includes(value.slice(0, 1)) &&\n [']', '}'].includes(value.slice(-1))\n ) {\n return JSON.parse(value);\n }\n return value;\n }\n}\nexport default function PropParser(code: string): PropNode[] {\n const lexer = new Lexer(code);\n return Array.from(lexer.tokenize());\n}\n","import AST_tag from './tag.js';\nimport AST_prop from './prop.js';\nexport default {\n tag: AST_tag,\n prop: AST_prop,\n};\n","import type { ParserOptions } from '@babel/parser';\nimport type {\n ImportDeclaration,\n ExportAllDeclaration,\n ExportDefaultDeclaration,\n ExportNamedDeclaration,\n Expression,\n SpreadElement,\n ArgumentPlaceholder,\n CallExpression,\n} from '@babel/types';\nimport { CompileOpt } from '@mbler/mcx-types';\nimport { ParsedTagNode } from '../types';\ninterface callList {\n source: Expression;\n set: (callEXp: CallExpression) => boolean;\n arguments: Array<SpreadElement | Expression | ArgumentPlaceholder>;\n remove: () => void;\n}\ninterface ImportListImport {\n isAll: boolean;\n import?: string | undefined;\n as: string;\n}\ninterface ImportList {\n source: string;\n imported: ImportListImport[];\n raw?: ImportDeclaration;\n}\ninterface BuildCache {\n call: callList[];\n import: ImportList[];\n export: Array<\n ExportNamedDeclaration | ExportAllDeclaration | ExportDefaultDeclaration\n >;\n}\nexport const _MCXstructureLocComponentTypes = {\n items: 'item',\n blocks: 'block',\n entities: 'entity',\n} as const;\ntype MCXstructureLocComponentType =\n (typeof _MCXstructureLocComponentTypes)[keyof typeof _MCXstructureLocComponentTypes];\ninterface MCXstructureLoc {\n script: string;\n Event: {\n on: 'after' | 'before';\n subscribe: Record<string, string>;\n loc: { line: number; column: number };\n isLoad: boolean;\n };\n Component: Record<\n string,\n {\n type: MCXstructureLocComponentType;\n useExpore: string;\n loc: { line: number; column: number };\n }\n >;\n UI: ParsedTagNode | null;\n}\nexport type {\n BuildCache,\n ImportList,\n ImportListImport,\n callList,\n CompileOpt,\n MCXstructureLoc,\n MCXstructureLocComponentType,\n};\n","import * as t from '@babel/types';\nimport { BuildCache, MCXstructureLoc } from '../types';\nimport { ParsedTagNode } from '../../types';\nexport class JsCompileData {\n File: string = '__repl';\n isFile: boolean = false;\n constructor(\n public node: t.Program,\n public BuildCache: BuildCache = {\n export: [],\n import: [],\n call: [],\n },\n ) {}\n setFilePath(dir: string) {\n this.isFile = true;\n this.File = dir;\n }\n}\nexport class MCXCompileData {\n File: string = '';\n isFile: boolean = false;\n constructor(\n public raw: ParsedTagNode[],\n public JSIR: JsCompileData,\n public strLoc: MCXstructureLoc,\n ) {}\n setFilePath(dir: string) {\n this.JSIR.setFilePath(dir);\n this.isFile = true;\n this.File = dir;\n }\n}\n","import { readFile } from 'node:fs/promises';\nimport * as Parser from '@babel/parser';\nimport { ImportList, ImportListImport } from '../types';\nimport * as t from '@babel/types';\nexport default class Utils {\n public static async FileAST(\n fileDir: string,\n parserOpt: Parser.ParserOptions,\n ): Promise<t.Program> {\n if (typeof fileDir !== 'string')\n throw new TypeError(\n '[read file]: compile utils was passed a non-string value',\n );\n const file = await readFile(fileDir, 'utf-8');\n if (typeof file !== 'string')\n throw new Error('[read file]: not found file ' + fileDir);\n try {\n return Parser.parse(file).program;\n } catch (err: any) {\n throw new Error('[compiler]: babel error' + err.stack);\n }\n }\n public static async FileContent(fileDir: string): Promise<string> {\n const file = await readFile(fileDir, 'utf-8');\n return file;\n }\n private static nodeStringValue(node: t.Identifier | t.StringLiteral): string {\n if (node.type == 'StringLiteral') {\n return node.value;\n } else if (node.type == 'Identifier') {\n return node.name;\n }\n throw new TypeError('[read id error]: no way to read string id');\n }\n private static CheckImportNode(\n node: t.ImportDeclaration,\n ir: ImportList,\n ): boolean {\n const newList = Utils.ImportToCache(node);\n // Eliminate common differences\n if (newList.source !== ir.source) return false;\n if (newList.imported.length !== ir.imported.length) return false;\n // in this for, newList.imported and ir.imported is same length\n for (let irIndex = 0; irIndex < newList.imported.length; irIndex++) {\n const newItem = newList.imported[irIndex];\n const oldItem = ir.imported[irIndex];\n if (\n newItem?.import !== oldItem?.import ||\n newItem?.as !== oldItem?.as ||\n newItem?.isAll !== oldItem?.isAll\n )\n return false;\n }\n return true;\n }\n public static CacheToImportNode(ir: ImportList): t.ImportDeclaration {\n if (!ir) throw new TypeError('plase call use right ImportList');\n // first verify ir.raw\n if (ir?.raw && Utils.CheckImportNode(ir?.raw, ir)) return ir.raw;\n const result: Array<\n t.ImportNamespaceSpecifier | t.ImportSpecifier | t.ImportDefaultSpecifier\n > = [];\n for (const ImportIt of ir.imported) {\n if (!ImportIt) continue;\n if (ImportIt.isAll) {\n result.push(t.importNamespaceSpecifier(t.identifier(ImportIt.as)));\n continue;\n }\n if (ImportIt.import == 'default') {\n result.push(t.importDefaultSpecifier(t.identifier(ImportIt.as)));\n continue;\n }\n if (!ImportIt.import)\n throw new TypeError('[compile node]: not found imported');\n result.push(\n t.importSpecifier(\n t.identifier(ImportIt.as),\n t.identifier(ImportIt.import),\n ),\n );\n }\n return t.importDeclaration(result, t.stringLiteral(ir.source));\n }\n public static ImportToCache(node: t.ImportDeclaration): ImportList {\n const result: ImportListImport[] = [];\n for (const item of node.specifiers) {\n const thisName = item.local.name;\n if (item.type == 'ImportNamespaceSpecifier') {\n result.push({\n isAll: true,\n as: thisName,\n });\n } else if (item.type == 'ImportDefaultSpecifier') {\n result.push({\n isAll: false,\n import: 'default',\n as: thisName,\n });\n } else if (item.type == 'ImportSpecifier') {\n result.push({\n isAll: false,\n as: thisName,\n import: Utils.nodeStringValue(item.imported),\n });\n }\n }\n return {\n source: Utils.nodeStringValue(node.source),\n imported: result,\n };\n }\n}\n","import * as t from '@babel/types';\nimport {\n _MCXstructureLocComponentTypes,\n ImportList,\n ImportListImport,\n MCXstructureLoc,\n MCXstructureLocComponentType,\n} from '../types';\nimport * as CompileData from './compileData';\nimport Utils from './utils';\nimport { parse } from '@babel/parser';\nimport { ParsedTagContentNode, ParsedTagNode } from '../../types';\nimport McxAst, { MCXUtils } from '../../ast/tag';\nimport PropParser from '../../ast/prop';\nimport ts from 'typescript';\nexport class CompileError extends Error {\n public loc: { line: number; column: number };\n constructor(message: string, loc: { line: number; column: number }) {\n super(message);\n this.name = 'CompileError';\n this.loc = loc || { line: -1, column: -1 };\n }\n}\n\nfunction extractLoc(node: any): { line: number; column: number } {\n if (!node) return { line: -1, column: -1 };\n // Node with loc.start (Babel or MCX): prefer column\n if (node.loc && node.loc.start) {\n const line =\n typeof node.loc.start.line === 'number' ? node.loc.start.line : -1;\n const column =\n typeof node.loc.start.column === 'number' ? node.loc.start.column : -1;\n return { line, column };\n } else if (node.loc && node.loc.column !== undefined) {\n return {\n line: node.loc.line ?? -1,\n column: node.loc.column,\n };\n }\n // MCX Token with unified position: start: { line, column }\n if (node.start && typeof node.start.line === 'number') {\n return { line: node.start.line, column: node.start.column ?? -1 };\n }\n return { line: -1, column: -1 };\n}\n\nfunction makeError(msg: string, node?: any) {\n return new CompileError(msg, extractLoc(node));\n}\ninterface ImportTemp {\n source: string;\n import?: string | undefined;\n isAll: boolean;\n}\nexport type Context = Record<string, t.Expression | { status: 'wait' }>;\nexport class CompileJS {\n constructor(public node: t.Program) {\n if (!t.isProgram(node))\n throw makeError(\n \"[compile error]: jsCompile can't work in a not program\",\n node,\n );\n this.CompileData = new CompileData.JsCompileData(node);\n this.run();\n this.writeBuildCache();\n }\n public TopContext: Context = {};\n private indexTemp: Record<string, ImportTemp> = {};\n private push(source: ImportList) {\n for (const node of source.imported) {\n this.indexTemp[node.as] = {\n source: source.source,\n import: node.import,\n isAll: node.isAll,\n };\n }\n }\n private writeBuildCache() {\n const build: ImportList[] = [];\n for (const [as, data] of Object.entries(this.indexTemp)) {\n let found = false;\n for (const i of build) {\n if (i.source === data.source) {\n i.imported.push({ as, isAll: data.isAll, import: data.import });\n found = true;\n break;\n }\n }\n if (!found) {\n build.push({\n source: data.source,\n imported: [{ as, import: data.import, isAll: data.isAll }],\n });\n }\n }\n this.CompileData.BuildCache.import = build;\n }\n private CompileData: CompileData.JsCompileData;\n public getCompileData(): CompileData.JsCompileData {\n return this.CompileData;\n }\n\n private tre(node: t.Block, ExtendContext: Context = {}): void {\n if (!t.isBlock(node))\n throw makeError(\"[compile error]: can't for in not block node\", node);\n const isTop: boolean = t.isProgram(node);\n const currenyContext: Context = isTop ? this.TopContext : ExtendContext;\n for (let index = 0; index < node.body.length; index++) {\n const item = node.body[index];\n const remove = () => {\n node.body.splice(index, 1);\n index--;\n };\n if (!item) continue;\n if (item.type == 'ImportDeclaration') {\n if (!isTop)\n throw makeError(\n '[compile node]: import declaration must use in top.',\n item,\n );\n this.push(Utils.ImportToCache(item));\n remove();\n } else if (item.type == 'BlockStatement') {\n this.tre(item, currenyContext);\n } else if (\n item.type == 'BreakStatement' ||\n item.type == 'EmptyStatement' ||\n item.type == 'ContinueStatement' ||\n item.type == 'ThrowStatement' ||\n item.type == 'WithStatement'\n ) {\n continue;\n } else if (item.type == 'TryStatement') {\n this.tre(item.block, currenyContext);\n } else if (item.type == 'IfStatement') {\n const nodes: t.Statement[] = [item.consequent];\n if (item.alternate) nodes.push(item.alternate);\n this.tre(t.blockStatement(nodes), currenyContext);\n } else if (item.type == 'WhileStatement') {\n this.tre(t.blockStatement([item.body]), currenyContext);\n } else if (item.type == 'ClassDeclaration') {\n if (item.superClass) {\n const superClass = item.superClass;\n if (\n superClass.type == 'ArrayExpression' ||\n superClass.type == 'BooleanLiteral' ||\n superClass.type == 'BinaryExpression' ||\n superClass.type == 'ThisExpression' ||\n superClass.type == 'ArrowFunctionExpression' ||\n superClass.type == 'BigIntLiteral' ||\n superClass.type == 'NumericLiteral' ||\n superClass.type == 'NullLiteral' ||\n superClass.type == 'AssignmentExpression' ||\n superClass.type == 'Super' ||\n superClass.type == 'NewExpression' ||\n superClass.type == 'DoExpression' ||\n superClass.type == 'StringLiteral' ||\n superClass.type == 'YieldExpression' ||\n superClass.type == 'RecordExpression' ||\n superClass.type == 'RegExpLiteral' ||\n superClass.type == 'DecimalLiteral' ||\n superClass.type == 'BindExpression'\n )\n throw makeError(\n \"[compilr error]: class can't extends a not constructor or null\",\n superClass,\n );\n }\n } else if (item.type == 'DoWhileStatement') {\n this.tre(t.blockStatement([item.body]));\n } else if (item.type == 'VariableDeclaration') {\n const declaration = item.declarations;\n for (const varDef of declaration) {\n const init = varDef.init;\n const id = varDef.id;\n if (id.type == 'Identifier') {\n if (!init && (item.kind == 'let' || item.kind == 'var'))\n currenyContext[id.name] = {\n status: 'wait',\n };\n if (!init)\n throw makeError(\n \"[compilr node]: 'const' must has a init\",\n varDef,\n );\n currenyContext[id.name] = init;\n if (\n init &&\n t.isCallExpression(init) &&\n t.isIdentifier(init.callee) &&\n init.callee.name === 'require' &&\n init.arguments.length > 0 &&\n t.isStringLiteral(init.arguments[0])\n ) {\n this.indexTemp[id.name] = {\n source: (init.arguments[0] as t.StringLiteral).value,\n import: 'default',\n isAll: false,\n };\n } else if (\n init &&\n t.isCallExpression(init) &&\n t.isImport(init.callee) &&\n init.arguments.length > 0 &&\n t.isStringLiteral(init.arguments[0])\n ) {\n this.indexTemp[id.name] = {\n source: (init.arguments[0] as t.StringLiteral).value,\n import: 'default',\n isAll: false,\n };\n }\n }\n }\n } else if (item.type == 'ReturnStatement') {\n continue;\n } else if (\n item.type == 'ExportAllDeclaration' ||\n item.type == 'ExportDefaultDeclaration' ||\n item.type == 'ExportNamedDeclaration'\n ) {\n if (!isTop) {\n throw makeError(\"[compiler]: export node can't in not top\", item);\n }\n this.CompileData.BuildCache.export.push(item);\n remove();\n } else if (item.type == 'SwitchStatement') {\n for (const caseItem of item.cases) {\n this.tre(t.blockStatement(caseItem.consequent), currenyContext);\n }\n } else if (item.type == 'ExpressionStatement') {\n const expr = item.expression;\n if (\n t.isCallExpression(expr) &&\n t.isIdentifier(expr.callee) &&\n expr.callee.name === 'require' &&\n expr.arguments.length > 0 &&\n t.isStringLiteral(expr.arguments[0])\n ) {\n this.indexTemp[\n `__require_${(expr.arguments[0] as t.StringLiteral).value}`\n ] = {\n source: (expr.arguments[0] as t.StringLiteral).value,\n import: 'default',\n isAll: false,\n };\n } else if (\n t.isCallExpression(expr) &&\n t.isImport(expr.callee) &&\n expr.arguments.length > 0 &&\n t.isStringLiteral(expr.arguments[0])\n ) {\n this.indexTemp[\n `__import_${(expr.arguments[0] as t.StringLiteral).value}`\n ] = {\n source: (expr.arguments[0] as t.StringLiteral).value,\n import: 'default',\n isAll: false,\n };\n }\n } else if (item.type == 'FunctionDeclaration') {\n const funcBody = item.body;\n this.tre(funcBody, currenyContext);\n }\n }\n }\n run() {\n if (!t.isBlock(this.node))\n throw makeError(\"[compile error]: can't for a not block\", this.node);\n this.tre(this.node);\n }\n}\nclass CompileMCX {\n constructor(public code: string) {\n const mcxCode = new McxAst(code).parseAST();\n if (!MCXUtils.isParseNode(mcxCode))\n throw makeError(\n \"[compile error]: mcxCompile can't work in a not mcxNode\",\n );\n this.mcxCode = mcxCode;\n this.structureCheck();\n const JSIR = this.generateJSIR();\n this.CompileData = new CompileData.MCXCompileData(\n mcxCode,\n JSIR,\n this.tempLoc,\n );\n }\n private mcxCode: ParsedTagNode[];\n private tempLoc: MCXstructureLoc = {\n script: '',\n Event: {\n on: 'after',\n subscribe: {},\n loc: { line: -1, column: -1 },\n isLoad: false,\n },\n Component: {},\n UI: null,\n };\n public getCompileData(): CompileData.MCXCompileData {\n return this.CompileData;\n }\n private checkComponentName(\n name: string,\n ): name is MCXstructureLocComponentType {\n return Object.values(_MCXstructureLocComponentTypes).includes(name as any);\n }\n private checkComponentParentName(\n name: string,\n ): name is keyof typeof _MCXstructureLocComponentTypes {\n return Object.keys(_MCXstructureLocComponentTypes).includes(name);\n }\n private commonTagNodeContent(\n node: ParsedTagNode | ParsedTagContentNode,\n ): string {\n if (MCXUtils.isTagContentNode(node)) {\n return node.data;\n }\n if (MCXUtils.isTagNode(node)) {\n return node.content\n .map(sub =>\n sub.type !== 'Comment' ? this.commonTagNodeContent(sub) : '',\n )\n .join('');\n }\n throw makeError('[mcx compile]: internal error: unknown node type', node);\n }\n private getEventOn(node: ParsedTagNode): 'before' | 'after' {\n if (!MCXUtils.isTagNode(node))\n throw makeError('[mcx compile]: internal error: not tag node', node);\n let on: 'before' | 'after' = 'after';\n const isAfter = typeof node.arr['@after'] == 'string';\n const isBefore = typeof node.arr['@before'] == 'string';\n if (isAfter && isBefore)\n throw makeError(\n \"[mcx compile]: Event node can't has both @after and @before\",\n node,\n );\n if (isAfter) on = 'after';\n if (isBefore) on = 'before';\n return on;\n }\n private structureCheck() {\n let component: ParsedTagNode | null = null;\n const temp: {\n script: string;\n ui: ParsedTagNode | null;\n Event: ParsedTagNode | null;\n Component: Record<MCXstructureLocComponentType, ParsedTagNode>;\n } = {\n script: '',\n Event: null,\n ui: null,\n Component: {} as Record<MCXstructureLocComponentType, ParsedTagNode>,\n };\n for (const node of this.mcxCode || []) {\n if (!MCXUtils.isTagNode(node)) continue;\n if (node.name == 'script') {\n if (temp.script)\n throw makeError('[compile error]: duplicate script node', node);\n const scriptNode =\n node.content.length == 0 ? '' : this.commonTagNodeContent(node);\n let code = scriptNode;\n if (node.arr.lang == 'ts') {\n code = ts.transpileModule(scriptNode, {\n compilerOptions: {\n target: ts.ScriptTarget.ES2024,\n module: ts.ModuleKind.ESNext,\n },\n }).outputText;\n }\n temp.script = code;\n } else if (node.name == 'Event') {\n if (temp.Event)\n throw makeError('[compile error]: duplicate Event node', node);\n // if Component already discovered, report error\n if (component)\n throw makeError(\n '[compile error]: Event node cannot appear after Component',\n node,\n );\n temp.Event = node;\n } else if (node.name == 'Component') {\n if (component)\n throw makeError('[compile error]: duplicate Component node', node);\n // if Event already discovered, report error\n if (temp.Event)\n throw makeError(\n '[compile error]: Component node cannot appear after Event',\n node,\n );\n if (temp.ui)\n throw makeError(\n \"[compile error]: Component node can't use with UI node\",\n );\n component = node;\n } else if (node.name == 'Ui') {\n if (component || temp.Event || temp.ui)\n throw makeError(\n \"[compile error]: UI node can't use with component or event or other ui node\",\n node,\n );\n temp.ui = node;\n }\n }\n if (!temp.script) throw makeError('[compile error]: mcx must has a script');\n this.tempLoc.script = temp.script;\n if (temp.Event) {\n const on = this.getEventOn(temp.Event);\n const content = temp.Event.content;\n if (\n content.length == 0 ||\n content.length > 1 ||\n !MCXUtils.isTagContentNode(content[0])\n )\n throw makeError(\n '[compile error]: Event node has invalid content',\n temp.Event,\n );\n const subscribeData = content[0].data.trim();\n this.tempLoc.Event = {\n on: on,\n subscribe: Object.fromEntries(\n PropParser(subscribeData).map(item => [\n item.key,\n item.value.toString(),\n ]),\n ),\n loc: extractLoc(temp.Event),\n isLoad: true,\n };\n }\n if (component) {\n for (const subNode of component.content || []) {\n if (!MCXUtils.isTagNode(subNode)) continue;\n const subName = subNode.name;\n // if is a valid component name\n this.handlerChildComponent(subNode);\n }\n }\n if (temp.ui) {\n this.tempLoc.UI = temp.ui;\n }\n }\n // input: tag node,handler child node(如 items entities)\n private handlerChildComponent(node: ParsedTagNode): void {\n const name = node.name;\n if (!this.checkComponentParentName(name))\n throw makeError(`[compile error]: invalid component name: ${name}`, node);\n const content = node.content;\n if (!content || content.length == 0)\n throw makeError(\n `[compile error]: component ${name} has no content`,\n node,\n );\n for (const subNode of content) {\n if (!MCXUtils.isTagNode(subNode)) continue;\n const subName = subNode.name;\n const _id = subNode.arr.id;\n if (!_id || typeof _id != 'string' || _id.trim() == '') {\n throw makeError(\n `[compile error]: component ${name} child component ${subName} has no id`,\n subNode,\n );\n }\n const id = _id.trim();\n const content = subNode.content;\n if (content.length == 0) {\n throw makeError(\n `[compile error]: component ${name} child component ${subName} has no content`,\n subNode,\n );\n }\n if (!content[0] || !MCXUtils.isTagContentNode(content[0]))\n throw makeError(\n `[compile error]: component ${name} child component ${subName} has invalid content`,\n subNode,\n );\n const useExpore = content[0].data.trim();\n if (subName == _MCXstructureLocComponentTypes[name]) {\n this.tempLoc.Component[`${name}/${id}`] = {\n type: subName,\n useExpore: useExpore,\n loc: extractLoc(subNode),\n };\n }\n }\n }\n private CompileData: CompileData.MCXCompileData;\n private generateJSIR(): CompileData.JsCompileData {\n if (!this.tempLoc.script.trim())\n throw makeError('[compile error]: mcx must has a script');\n const comiler = compileJSFn(this.tempLoc.script);\n return comiler;\n }\n}\nexport const compileJSFn = ((code: string): CompileData.JsCompileData => {\n if (compileJSFn.cache[code]) return compileJSFn.cache[code];\n let parsedCode: t.File;\n try {\n parsedCode = parse(code, {\n sourceType: 'module',\n allowImportExportEverywhere: true,\n errorRecovery: true,\n allowAwaitOutsideFunction: true,\n allowReturnOutsideFunction: true,\n allowSuperOutsideMethod: true,\n });\n } catch (err: unknown) {\n if (err instanceof SyntaxError) {\n const babelErr = err as SyntaxError & {\n loc?: { column: number; line: number };\n };\n const loc = babelErr.loc ?? { column: -1, line: -1 };\n throw makeError(`[babel parse error]: ${err.message}`, {\n loc: { start: loc },\n });\n }\n throw makeError(`[parse error]: ${String(err)}`);\n }\n const comiler = new CompileJS(parsedCode.program);\n comiler.run();\n const data = comiler.getCompileData();\n compileJSFn.cache[code] = data;\n return data;\n}) as ((code: string) => CompileData.JsCompileData) & {\n cache: Record<string, CompileData.JsCompileData>;\n};\nexport const compileMCXFn = ((mcxCode: string): CompileData.MCXCompileData => {\n if (compileMCXFn.cache[mcxCode]) return compileMCXFn.cache[mcxCode];\n const compiler = new CompileMCX(mcxCode);\n const data = compiler.getCompileData();\n compileMCXFn.cache[mcxCode] = data;\n return data;\n}) as ((mcxCode: string) => CompileData.MCXCompileData) & {\n cache: Record<string, CompileData.MCXCompileData>;\n};\ncompileJSFn.cache = {};\ncompileMCXFn.cache = {};\nexport * from './compileData';\nexport { Utils as MCXNodeUtils };\n","export default {\n // script tag compile function name\n scriptCompileFn: '__main',\n // use event tag , import event as\n eventImported: '__mcx__event',\n eventVarName: '__use_event',\n eventExtendsName: 'McxExtendsBy',\n // paramName\n paramCtx: '__mcx__ctx',\n} as const;\n","import * as fs from 'node:fs/promises';\nimport * as path from 'node:path';\nimport type { ReadFileOpt, ParseReadFileOpt, TypeVerifyBody } from './types.js';\n\nexport default class Utils {\n public static async FileExist(path: string): Promise<boolean> {\n try {\n await fs.access(path);\n return true;\n } catch {\n return false;\n }\n }\n public static async readFile(\n filePath: string,\n opt: ReadFileOpt = {},\n ): Promise<object | string> {\n const opts: ParseReadFileOpt = {\n delay: 200,\n maxRetries: 3,\n want: 'string',\n ...opt,\n };\n\n for (let attempt = 0; attempt < opts.maxRetries; attempt++) {\n try {\n const buffer: Buffer = await fs.readFile(filePath);\n let text: string | object;\n if (opts.want === 'string') {\n text = buffer.toString(); // Buffer -> string\n } else if (opts.want === 'object') {\n try {\n text = JSON.parse(buffer.toString()); // Buffer -> string -> object\n } catch {\n text = {};\n }\n } else {\n text = buffer.toString();\n }\n\n return text;\n } catch {\n if (attempt < opts.maxRetries - 1) {\n await Utils.sleep(opts.delay);\n }\n }\n }\n return opts.want === 'object' ? {} : '';\n }\n public static sleep(time: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, time));\n }\n public static TypeVerify<\n T extends Record<string, any>,\n U extends TypeVerifyBody,\n >(\n obj: T,\n types: U,\n ): obj is T & {\n [P in keyof U]: {\n boolean: boolean;\n number: number;\n string: string;\n object: object;\n function: Function;\n bigint: bigint;\n symbol: Symbol;\n }[U[P]];\n } {\n for (const item of Object.entries(types)) {\n const [key, ShouldType]: [string, string] = item;\n if (!(typeof obj[key] === ShouldType)) return false;\n }\n return true;\n }\n public static AbsoluteJoin(baseDir: string, inputPath: string): string {\n return path.isAbsolute(inputPath)\n ? inputPath\n : path.join(baseDir, inputPath);\n }\n}\n","let fileIdCounter = 0;\nexport function generateFileId() {\n return `__file_import_${fileIdCounter++}__`;\n}\n","import * as t from '@babel/types';\nimport { JsCompileData } from '../compile-mcx/compiler/compileData';\nimport Utils from '../compile-mcx/compiler/utils';\nimport { ParsedTagNode, transformCtx } from '../types';\nimport config from './config';\nimport McxUtils from '../utils';\nimport path from 'node:path';\nimport { generateFileId } from './file_id';\n\nfunction extractVarDefIdList(express: t.LVal | t.VoidPattern): string[] {\n const result: string[] = [];\n if (t.isIdentifier(express)) result.push(express.name);\n if (t.isObjectPattern(express))\n express.properties.forEach(prop => {\n // const {xxx:xxx,xxx=Litter} = xxx\n if (t.isObjectProperty(prop))\n return result.push(\n ...extractVarDefIdList(\n prop.value as t.Identifier | t.AssignmentPattern,\n ),\n );\n // const {...restElement} = xx (restElement in this, ,must identifier)\n if (t.isRestElement(prop) && prop.argument.type == 'Identifier')\n result.push(prop.argument.name);\n });\n if (t.isArrayPattern(express)) {\n for (const element of express.elements) {\n if (!element) continue;\n result.push(...extractVarDefIdList(element));\n }\n }\n if (t.isAssignmentPattern(express)) {\n result.push(...extractVarDefIdList(express.left));\n }\n return result;\n}\nfunction extractIdList(expression: t.Declaration): string[] {\n if (t.isFunctionDeclaration(expression)) {\n return [expression.id?.name || ''];\n }\n if (t.isVariableDeclaration(expression)) {\n const result: string[] = [];\n for (const varDef of expression.declarations) {\n result.push(...extractVarDefIdList(varDef.id));\n }\n return result;\n }\n if (t.isClassDeclaration(expression)) {\n // 'export class {}'is not vaild(error: class name is required).\n return [expression.id?.name || ''];\n }\n return [];\n}\nfunction ToExpression(\n s: t.ExportDefaultDeclaration['declaration'],\n): t.Expression {\n if (t.isFunctionDeclaration(s))\n return t.functionExpression(s.id, s.params, s.body, s.generator, s.async);\n if (t.isClassDeclaration(s))\n return t.classExpression(s.id, s.superClass, s.body, s.decorators);\n if (t.isTSDeclareFunction(s)) return t.objectExpression([]);\n return s;\n}\nfunction generateMain(\n code: JsCompileData,\n): [t.Statement[], t.ImportDeclaration[]] {\n const expBody: (t.ObjectProperty | t.SpreadElement)[] = [];\n const impBody: t.ImportDeclaration[] = code.BuildCache.import.map(\n (item): t.ImportDeclaration => {\n return Utils.CacheToImportNode(item);\n },\n );\n const codeBody: t.Statement[] = code.node.body;\n for (const exp of code.BuildCache.export) {\n if (t.isExportNamedDeclaration(exp)) {\n // export {xxx} from \"./xxx\" or export xxx from \"./xxx\"\n if (\n exp.source &&\n exp.specifiers &&\n exp.specifiers.length >= 1 &&\n exp.source.value.length >= 1\n ) {\n impBody.push(\n t.importDeclaration(\n exp.specifiers.map(item => {\n if (t.isExportDefaultSpecifier(item)) {\n expBody.push(t.objectProperty(item.exported, item.exported));\n return t.importDefaultSpecifier(item.exported);\n }\n if (t.isExportSpecifier(item)) {\n expBody.push(t.objectProperty(item.exported, item.exported));\n return t.importSpecifier(item.local, item.exported);\n }\n if (t.isExportNamespaceSpecifier(item)) {\n expBody.push(t.spreadElement(item.exported));\n return t.importNamespaceSpecifier(item.exported);\n }\n // 这也不是那也不是, 你是个登啊(ts也是galgame)\n throw new Error(\n '[build import]: unexpected export specifier type',\n );\n }),\n exp.source,\n ),\n );\n }\n if (exp.declaration) {\n const idList = extractIdList(exp.declaration);\n // be like: const {} = {}; (worthless)\n if (idList.length < 1) continue;\n codeBody.push(exp.declaration);\n expBody.push(\n ...idList.map(id => {\n return t.objectProperty(t.identifier(id), t.identifier(id));\n }),\n );\n }\n // export { xxx }\n if (exp.specifiers && !exp.source) {\n expBody.push(\n ...exp.specifiers.map(item => {\n if (!t.isExportSpecifier(item))\n throw new Error(`[build import]: invalid specifiers`);\n return t.objectProperty(item.exported, item.local);\n }),\n );\n }\n // export * from \"xxx\"\n } else if (t.isExportAllDeclaration(exp)) {\n // xxx.js => xxx_js(id)\n const id = generateFileId();\n impBody.push(\n t.importDeclaration(\n [t.importNamespaceSpecifier(t.identifier(id))],\n exp.source,\n ),\n );\n expBody.push(t.objectProperty(t.identifier(id), t.identifier(id)));\n // export default {} or export default function a(){}\n } else if (t.isExportDefaultDeclaration(exp)) {\n // to expression\n expBody.push(\n t.objectProperty(\n t.identifier('default'),\n ToExpression(exp.declaration),\n ),\n );\n }\n }\n return [\n [...codeBody, t.returnStatement(t.objectExpression(expBody))],\n impBody,\n ];\n}\nasync function generateEventConfig(\n eventTag: ParsedTagNode,\n ctx: transformCtx,\n impBody: t.ImportDeclaration[],\n): Promise<t.ObjectExpression> {\n const prop = ctx.compiledCode.strLoc.Event.subscribe;\n const argm: t.ObjectExpression = t.objectExpression([\n t.objectProperty(\n t.identifier('on'),\n t.stringLiteral(ctx.compiledCode.strLoc.Event.on),\n ),\n ]);\n if (eventTag.arr.tick) {\n const num = parseFloat(eventTag.arr.tick as string);\n if (!Number.isNaN(num))\n argm.properties.push(\n t.objectProperty(t.identifier('tick'), t.numericLiteral(num)),\n );\n }\n // extract event and hanler\n const data: t.ObjectProperty[] = [];\n const extend: t.Expression[] = [];\n for (const [name, handlerName] of Object.entries(prop)) {\n if (name == config.eventExtendsName) {\n const extendsFile = handlerName.split(',');\n for (const extFile of extendsFile) {\n if (\n !(await McxUtils.FileExist(\n path.join(path.dirname(ctx.currentId), extFile),\n ))\n )\n throw new Error(\n \"[transform event]: [ERR: NOT_FOUND]: can't resolve extend file: \" +\n extFile,\n );\n const id = generateFileId();\n impBody.push(\n t.importDeclaration(\n [t.importDefaultSpecifier(t.identifier(id))],\n t.stringLiteral(extFile),\n ),\n );\n extend.push(t.identifier(id));\n }\n } else {\n data.push(\n t.objectProperty(t.identifier(name), t.stringLiteral(handlerName)),\n );\n }\n }\n argm.properties.push(\n t.objectProperty(t.identifier('data'), t.objectExpression(data)),\n t.objectProperty(t.identifier('extends'), t.arrayExpression(extend)),\n );\n return argm;\n}\n/**\n * record enable\n * @returns {(): void} - only call one\n */\nfunction _enable(): (() => void) & {\n prototype: {\n enable: boolean;\n };\n} {\n let success = false;\n const fn = function () {\n if (success) throw new Error(\"[enable]: can't enable again\");\n success = true;\n fn.prototype.enable = success;\n };\n fn.prototype.enable = success;\n return fn;\n}\nfunction _enableWithData<T>(): ((data: T) => void) & {\n prototype: {\n enable: T | null;\n };\n} {\n let d: null | T = null;\n const fn = function (data: T) {\n if (d) throw new Error(\"[enable]: can't enable again\");\n d = data;\n fn.prototype.enable = d;\n };\n fn.prototype.enable = d;\n return fn;\n}\n// export\nexport {\n extractIdList,\n extractVarDefIdList,\n generateEventConfig,\n _enable,\n generateMain,\n _enableWithData,\n};\n","import { MCXstructureLoc } from '../../compile-mcx/types';\nimport { ContentToken, ParsedTagNode, transformParseCtx } from '../../types';\nimport * as t from '@babel/types';\nimport config from '../config';\nexport async function Comp(ctx: transformParseCtx) {\n const internalCtx = ctx.ctx;\n\n ctx.impBody.push(\n t.importDeclaration(\n [t.importSpecifier(t.identifier('__mcx__ui'), t.identifier('ui'))],\n t.stringLiteral('@mbler/mcx'),\n ),\n t.importDeclaration(\n [t.importNamespaceSpecifier(t.identifier('__minecraft__ui'))],\n t.stringLiteral('@minecraft/server-ui'),\n ),\n );\n\n const uiTagNode = ctx.ctx.compiledCode.strLoc.UI;\n if (!uiTagNode || uiTagNode?.name !== 'Ui')\n throw new Error(\"[UI Component]: why didn't parent compeled verify?\");\n let MCXUIType: 'ActionFormData' | 'MessageFormData' | 'ModalFormData' | null =\n null;\n const UITree: {\n arr: Record<string, string | boolean>;\n content: string;\n type: string;\n loc?: ParsedTagNode['loc'];\n }[] = [];\n for (const uiClientTag of uiTagNode.content) {\n if (uiClientTag.type == 'TagNode') {\n // if has client TagNode\n if (uiClientTag.content.some(i => i.type == 'TagNode')) {\n internalCtx.rollupContext.error(\n \"[UI]: can't support ui client element\",\n uiClientTag.loc\n ? {\n column: uiClientTag.loc.start.column,\n line: uiClientTag.loc.start.line,\n }\n : void 0,\n );\n }\n // add to tree\n UITree.push({\n arr: uiClientTag.arr,\n content: uiClientTag.content\n .map(i => (i.type == 'TagContent' && i.data) || '')\n .join(''),\n type: uiClientTag.name,\n loc: uiClientTag.loc,\n });\n }\n // continue TagContentNode\n }\n const parsedObj: t.Expression[] = [];\n function pushToTree(\n name: string,\n params: Record<string, string | boolean>,\n content: string,\n ) {\n parsedObj.push(\n t.objectExpression([\n t.objectProperty(t.identifier('type'), t.stringLiteral(name)),\n t.objectProperty(\n t.identifier('params'),\n t.objectExpression(\n Object.entries(params).map(([key, value]) => {\n const isDynamic = key.startsWith(':');\n const paramName = isDynamic ? key.slice(1) : key;\n return t.objectProperty(\n t.identifier(paramName),\n isDynamic\n ? t.objectExpression([\n t.objectProperty(\n t.identifier('useProp'),\n t.stringLiteral(String(value)),\n ),\n ])\n : typeof value == 'boolean'\n ? t.booleanLiteral(value)\n : t.stringLiteral(value),\n );\n }),\n ),\n ),\n t.objectProperty(\n t.identifier('content'),\n content.startsWith('{{ ') && content.endsWith(' }}')\n ? t.objectExpression([\n t.objectProperty(\n t.identifier('useProp'),\n t.stringLiteral(content.slice(3, content.length - 3).trim()),\n ),\n ])\n : t.stringLiteral(content),\n ),\n ]),\n );\n }\n // generate type and parsed tree\n for (const tp of UITree) {\n const name = tp.type;\n // only ModalFormData Element\n if (['input', 'dropdown', 'submit', 'toggle', 'slider'].includes(name)) {\n // ModalFromData\n if (MCXUIType && MCXUIType !== 'ModalFormData') {\n internalCtx.rollupContext.error(\n \"[UI]: a mcx can't have a ModalFormData Node and other form tag\",\n tp.loc\n ? {\n line: tp.loc.start.line,\n column: tp.loc.start.column,\n }\n : void 0,\n );\n }\n MCXUIType = 'ModalFormData';\n pushToTree(name, tp.arr, tp.content);\n }\n // only MessageFormData Element\n else if (['button-m'].includes(name)) {\n if (MCXUIType && MCXUIType !== 'MessageFormData') {\n internalCtx.rollupContext.error(\n '[UI]: ',\n tp.loc\n ? {\n line: tp.loc.start.line,\n column: tp.loc.start.column,\n }\n : void 0,\n );\n }\n MCXUIType = 'MessageFormData';\n pushToTree(name, tp.arr, tp.content);\n }\n // public\n else if (['body', 'divider', 'title', 'label'].includes(name)) {\n pushToTree(name, tp.arr, tp.content);\n } else if (name == 'button') {\n if (MCXUIType !== 'ActionFormData' && MCXUIType)\n internalCtx.rollupContext.error(\n \"[UI]: don't support use button for messageFormData\",\n tp.loc\n ? {\n line: tp.loc.start.line,\n column: tp.loc.start.column,\n }\n : void 0,\n );\n pushToTree(name, tp.arr, tp.content);\n MCXUIType = 'ActionFormData';\n } else {\n internalCtx.rollupContext.error(\n \"[UI]: don't support tag: \" + name,\n tp.loc\n ? {\n line: tp.loc.start.line,\n column: tp.loc.start.column,\n }\n : void 0,\n );\n }\n }\n if (!MCXUIType) MCXUIType = 'ActionFormData';\n const finallyData = t.objectExpression([\n t.objectProperty(t.identifier('layout'), t.arrayExpression(parsedObj)),\n t.objectProperty(\n t.identifier('use'),\n t.memberExpression(\n t.identifier('__minecraft__ui'),\n t.identifier(MCXUIType),\n ),\n ),\n t.objectProperty(t.identifier('UI'), t.identifier('__minecraft__ui')),\n ]);\n ctx.app([\n t.objectProperty(\n t.identifier('ui'),\n t.newExpression(t.identifier('__mcx__ui'), [\n finallyData,\n t.identifier(config.scriptCompileFn),\n ]),\n ),\n ]);\n}\n","import { ParsedTagNode, transformParseCtx } from '../../types';\nimport * as t from '@babel/types';\nimport { generateEventConfig } from '../utils';\nexport async function Comp(ctx: transformParseCtx) {\n const appData = [\n t.objectProperty(\n t.identifier('event'),\n await generateEventConfig(\n ctx.ctx.compiledCode.raw.find(\n node => node.name === 'Event', // compileMCXFn had verify, don't verify\n ) as ParsedTagNode,\n ctx.ctx,\n ctx.impBody,\n ),\n ),\n ];\n ctx.app(appData);\n}\n","import path from 'node:path';\nimport { transformParseCtx } from '../../types';\nimport * as t from '@babel/types';\nimport { readFile } from 'node:fs/promises';\nimport { compileMCXFn } from '../../compile-mcx/compiler';\nimport config from '../config';\nexport async function Comp(ctx: transformParseCtx) {\n const eventImportIdList: {\n type: 'default' | 'all';\n as: string;\n }[] = [];\n for (const impNode of ctx.ctx.compiledCode.JSIR.BuildCache.import) {\n const source = impNode.source;\n const parsed = path.parse(source);\n if (!parsed.root && !parsed.dir.startsWith('.')) {\n continue;\n }\n // path\n const fPath = path.join(ctx.ctx.currentId, '../', source);\n try {\n // read file\n const code = await readFile(fPath, 'utf-8');\n const compiledCode = compileMCXFn(code);\n // write cache\n ctx.ctx.cache.set(fPath, compiledCode);\n if (compiledCode.strLoc.Event.isLoad) {\n for (const impItem of impNode.imported) {\n let type: 'all' | 'default';\n if (impItem.isAll) type = 'all';\n else if (impItem.import == 'default') type = 'default';\n else {\n throw new Error(\n \"not vaild importDeclartion: Event mcx only resolve default and all import, can't use other import\",\n );\n }\n eventImportIdList.push({\n type,\n as: impItem.as,\n });\n }\n }\n } catch (err) {\n // if error: file not found, file can't write, mcx syntax error\n ctx.ctx.rollupContext.warn(\n `[extract import]: can't resolve file ${fPath} and import by ${ctx.ctx.currentId}\\n- err: ${err instanceof Error ? err.stack : err}`,\n );\n }\n }\n // only have event import\n if (eventImportIdList.length >= 1) {\n const eventMemberNode = t.memberExpression(\n t.identifier(config.paramCtx),\n t.identifier('event'),\n );\n ctx.mainFn.unshift(\n // add declaration\n\n t.variableDeclaration(\n 'var',\n eventImportIdList.map((item, index) => {\n if (item.type == 'all') {\n return t.variableDeclarator(\n t.identifier(item.as),\n t.objectExpression([\n t.objectProperty(\n t.identifier('default'),\n t.memberExpression(\n eventMemberNode,\n t.numericLiteral(index),\n true,\n ),\n ),\n ]),\n );\n } else if (item.type == 'default') {\n return t.variableDeclarator(\n t.identifier(item.as),\n t.memberExpression(\n eventMemberNode,\n t.numericLiteral(index),\n true,\n ),\n );\n }\n // ts galgame\n throw new Error('[javascript error]: why it not in [default, all]');\n }),\n ),\n );\n // app: add event export to runtime framework\n\n const appData = [\n t.objectProperty(\n t.identifier('event'),\n t.arrayExpression(\n eventImportIdList.map(vl => {\n if (vl.type == 'all') {\n return t.memberExpression(\n t.identifier(vl.as),\n t.identifier('default'),\n );\n } else if (vl.type == 'default') {\n return t.identifier(vl.as);\n }\n throw new Error(\"[add prop]: can't format eventImportList\");\n }),\n ),\n ),\n ];\n ctx.app(appData);\n }\n}\n","import * as Module from 'node:module';\nimport * as vm from 'node:vm';\nimport { Buffer } from 'node:buffer';\nimport * as t from '@babel/types';\nimport { parse } from '@babel/parser';\nimport { compileJSFn } from '../compile-mcx/compiler';\nimport * as generator from '@babel/generator';\nimport { ImportList } from '../compile-mcx/types';\nimport { generateFileId } from '../transforms/file_id';\n// Enumerate the methods for converting ESM to CJS\nexport enum execESMMethod {\n transformCjs = 0,\n runInVm = 1,\n importESM = 2,\n}\n\n/**\n * ESM => CJS\n */\nfunction transformESMToCJS(\n code: string,\n pluginContext?: Record<string, string | null | boolean | number>,\n hook?: (\n data: t.CallExpression | t.MemberExpression,\n setData?: (newData: t.Expression) => void,\n ) => void,\n): string {\n const compileData = compileJSFn(code);\n const body = compileData.node.body;\n const defines: t.VariableDeclarator[] = [];\n // import transform\n const importDefines = transformImportIRtoRequire(\n compileData.BuildCache.import,\n );\n for (const importDefine of importDefines) {\n const data = importDefine.init as t.CallExpression | t.MemberExpression;\n if (hook) {\n hook(data, newData => {\n importDefine.init = newData;\n });\n }\n defines.push(importDefine);\n }\n // add plugin context\n if (pluginContext) {\n defines.push(\n ...Object.entries(pluginContext).map(\n ([key, value]): t.VariableDeclarator =>\n t.variableDeclarator(\n t.identifier(key),\n typeof value == 'string'\n ? t.stringLiteral(value)\n : typeof value == 'boolean'\n ? t.booleanLiteral(value)\n : typeof value == 'number'\n ? t.numericLiteral(value)\n : t.nullLiteral(),\n ),\n ),\n );\n }\n\n const exportsArr = compileData.BuildCache.export\n .map(i => {\n if (t.isExportAllDeclaration(i)) {\n const fileId = generateFileId();\n defines.push(\n t.variableDeclarator(\n t.identifier(fileId),\n t.callExpression(t.identifier('require'), [i.source]),\n ),\n );\n return t.assignmentExpression(\n '=',\n t.memberExpression(t.identifier('module'), t.identifier('exports')),\n t.objectExpression([\n t.spreadElement(t.identifier(fileId)),\n t.spreadElement(\n t.memberExpression(\n t.identifier('module'),\n t.identifier('exports'),\n ),\n ),\n ]),\n );\n } else if (t.isExportDefaultDeclaration(i)) {\n if (!i.declaration || t.isTSDeclareFunction(i.declaration))\n return void 0;\n if (t.isExpression(i.declaration)) {\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier('default'),\n ),\n i.declaration,\n );\n }\n if (!i.declaration.id)\n i.declaration.id = t.identifier(generateFileId());\n body.push(i.declaration);\n return t.assignmentExpression(\n '=',\n t.memberExpression(t.identifier('exports'), t.identifier('default')),\n i.declaration.id,\n );\n } else if (t.isExportNamedDeclaration(i)) {\n if (i.source && i.specifiers.length >= 1) {\n const id = t.identifier(generateFileId());\n defines.push(\n t.variableDeclarator(\n id,\n t.callExpression(t.identifier('require'), [i.source]),\n ),\n );\n const exportExprs = i.specifiers\n .map(\n (\n specifier:\n | t.ExportNamespaceSpecifier\n | t.ExportDefaultSpecifier\n | t.ExportSpecifier,\n ) => {\n if (t.isExportNamespaceSpecifier(specifier)) {\n const exportedName = t.isIdentifier(specifier.exported)\n ? specifier.exported.name\n : (specifier.exported as any).value;\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier(exportedName),\n ),\n id,\n );\n } else if (t.isExportSpecifier(specifier)) {\n const exportedName = t.isIdentifier(specifier.exported)\n ? specifier.exported.name\n : (specifier.exported as any).value;\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier(exportedName),\n ),\n t.memberExpression(id, t.identifier(specifier.local.name)),\n );\n }\n return null;\n },\n )\n .filter(Boolean) as t.AssignmentExpression[];\n return exportExprs.length === 1\n ? exportExprs[0]\n : t.sequenceExpression(exportExprs);\n } else {\n if (i.declaration) {\n if (\n t.isFunctionDeclaration(i.declaration) ||\n t.isVariableDeclaration(i.declaration)\n ) {\n if (t.isVariableDeclaration(i.declaration)) {\n body.push(i.declaration);\n const assignExprs = i.declaration.declarations.map(decl => {\n const varName = (decl.id as t.Identifier).name;\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier(varName),\n ),\n t.identifier(varName),\n );\n });\n return assignExprs.length === 1\n ? assignExprs[0]\n : t.sequenceExpression(assignExprs);\n } else {\n const functionId =\n i.declaration.id || t.identifier(generateFileId());\n const funcDecl = t.functionDeclaration(\n functionId,\n i.declaration.params,\n i.declaration.body,\n i.declaration.generator,\n i.declaration.async,\n );\n body.push(funcDecl);\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier((functionId as t.Identifier).name),\n ),\n functionId,\n );\n }\n }\n } else {\n // Handle export { item } - simple variable export\n if (i.specifiers.length >= 1) {\n const exportExprs = i.specifiers\n .map(specifier => {\n if (t.isExportSpecifier(specifier)) {\n const exportedName = t.isIdentifier(specifier.exported)\n ? specifier.exported.name\n : (specifier.exported as any).value;\n return t.assignmentExpression(\n '=',\n t.memberExpression(\n t.identifier('exports'),\n t.identifier(exportedName),\n ),\n t.identifier(specifier.local.name),\n );\n }\n return null;\n })\n .filter(Boolean) as t.AssignmentExpression[];\n return exportExprs.length === 1\n ? exportExprs[0]\n : t.sequenceExpression(exportExprs);\n }\n }\n }\n return null;\n }\n })\n .filter(Boolean) as t.AssignmentExpression[];\n\n body.unshift(t.variableDeclaration('var', defines));\n body.push(...exportsArr.map(i => t.expressionStatement(i)));\n\n return generator.generate(t.program(body)).code;\n}\n\n/**\n * import IR => require\n */\nfunction transformImportIRtoRequire(\n importIR: ImportList[],\n): t.VariableDeclarator[] {\n const define: t.VariableDeclarator[] = [\n t.variableDeclarator(\n t.identifier('__import_default'),\n t.functionExpression(\n null,\n [t.identifier('obj')],\n t.blockStatement([\n t.returnStatement(\n t.conditionalExpression(\n t.memberExpression(\n t.identifier('obj'),\n t.identifier('__esModule'),\n ),\n t.memberExpression(t.identifier('obj'), t.identifier('default')),\n t.identifier('obj'),\n ),\n ),\n ]),\n ),\n ),\n ];\n\n for (const data of importIR) {\n for (const imported of data.imported) {\n let vl: t.CallExpression | t.MemberExpression;\n if (!imported.isAll && imported.import) {\n if (imported.import == 'default') {\n vl = t.callExpression(t.identifier('__import_default'), [\n t.callExpression(t.identifier('require'), [\n t.stringLiteral(data.source),\n ]),\n ]);\n } else {\n vl = t.memberExpression(\n t.callExpression(t.identifier('require'), [\n t.stringLiteral(data.source),\n ]),\n t.identifier(imported.import),\n );\n }\n } else {\n vl = t.callExpression(t.identifier('require'), [\n t.stringLiteral(data.source),\n ]);\n }\n define.push(t.variableDeclarator(t.identifier(imported.as), vl));\n }\n }\n return define;\n}\nexport class RunScript {\n private _module;\n private _context;\n private _pluginContext;\n constructor(\n public filePath: string = '<repl>',\n public module: 'esm' | 'cjs' = 'cjs',\n private pluginContext?: Record<string, string | null | boolean | number>,\n ) {\n this._module = new Module.Module(this.filePath);\n this._pluginContext = pluginContext || {};\n this._context = this.getContext(this._pluginContext);\n }\n /**\n * run code in nodejs vm\n * @param code {string} exetuce code\n * @returns code exports\n */\n public async run(\n code: string,\n esmExecMethod: execESMMethod = execESMMethod.transformCjs,\n transformCjsHook?: (\n data: t.CallExpression | t.MemberExpression,\n setData?: (newData: t.Expression) => void,\n ) => void,\n ): Promise<unknown> {\n if (this.module === 'esm') {\n if (esmExecMethod == execESMMethod.importESM) {\n let processedCode = code;\n\n if (this.pluginContext) {\n const ast = parse(code, {\n sourceType: 'module',\n plugins: ['typescript', 'jsx'],\n });\n const contextDefines = Object.entries(this.pluginContext).map(\n ([key, value]): t.VariableDeclarator =>\n t.variableDeclarator(\n t.identifier(key),\n typeof value == 'string'\n ? t.stringLiteral(value)\n : typeof value == 'boolean'\n ? t.booleanLiteral(value)\n : typeof value == 'number'\n ? t.numericLiteral(value)\n : t.nullLiteral(),\n ),\n );\n const contextDeclaration = t.variableDeclaration(\n 'var',\n contextDefines,\n );\n ast.program.body.unshift(contextDeclaration);\n processedCode = generator.generate(ast).code;\n }\n const dataUrl = `data:application/javascript;base64,${Buffer.from(processedCode).toString('base64')}`;\n return await import(dataUrl);\n } else if (esmExecMethod == execESMMethod.transformCjs) {\n const compiledCode = transformESMToCJS(\n code,\n this.pluginContext,\n transformCjsHook,\n );\n const script = new vm.Script(compiledCode, { filename: this.filePath });\n const rel = script.runInContext(this._context);\n return this._context.exports || rel;\n } else if (esmExecMethod == execESMMethod.runInVm) {\n if (typeof vm.SourceTextModule !== 'function') {\n throw new Error('[exec esm]: not support vm.SourceTextModule');\n } else {\n const script = new vm.SourceTextModule(code, {\n context: this._context,\n });\n await script.link(async specifier => {\n return new vm.SourceTextModule(specifier, {\n context: this._context,\n });\n });\n await script.evaluate();\n return script.namespace;\n }\n }\n } else {\n const script = new vm.Script(code, { filename: this.filePath });\n const rel = script.runInContext(this._context);\n return this._context.exports || rel;\n }\n }\n private getContext(pluginContext?: Record<string, unknown>): vm.Context {\n const context: vm.Context = Object.create(pluginContext || null);\n // CJS context setup\n const exports = {};\n const module = {\n exports,\n filename: this.filePath,\n path: this.filePath,\n paths: require.resolve.paths(this.filePath) || [],\n id: this.filePath,\n };\n Object.assign(context, {\n exports,\n module,\n require: Module.createRequire\n ? Module.createRequire(this.filePath)\n : require,\n global: context,\n });\n return vm.createContext(context);\n }\n public static isCanUseEsmRunVm = typeof vm.SourceTextModule == 'function';\n}\nexport { transformESMToCJS };\n","class BlockComponent {\n public toJSON() {\n return {};\n }\n}\nexport { BlockComponent };\n","import * as t from './../types';\n\nclass EntityComponent {\n #opt: t.EntityComponentOptions;\n\n constructor(opt: t.EntityComponentOptions) {\n this.#opt = opt;\n }\n\n public toJSON(): t.EntityJson {\n if (!this.#opt) throw new Error('[mcx component]: cannot read component');\n\n const result: t.EntityJson = {\n format_version: '',\n _meta: {\n type: 'entity',\n file_edit: [],\n },\n 'minecraft:entity': {\n description: {\n identifier: '',\n },\n },\n };\n if (\n typeof this.#opt.format == 'string' &&\n /\\d.\\d.\\d/.test(this.#opt.format)\n ) {\n result['format_version'] = this.#opt.format;\n } else {\n throw new Error('[compile component]: no format');\n }\n if (\n typeof this.#opt.id == 'string' &&\n /[a-zA-Z0-9_]:[a-zA-Z0-9_]/.test(this.#opt.id)\n ) {\n result['minecraft:entity'].description.identifier = this.#opt.id;\n } else {\n throw new Error('[compile component]: no id');\n }\n if (typeof this.#opt.is_spawnable === 'boolean') {\n result['minecraft:entity'].description.is_spawnable =\n this.#opt.is_spawnable;\n }\n\n if (typeof this.#opt.is_summonable === 'boolean') {\n result['minecraft:entity'].description.is_summonable =\n this.#opt.is_summonable;\n }\n\n // 处理组件\n if (this.#opt.components) {\n const components = this.#opt.components;\n\n // 检查是否需要components字段\n const hasComponents =\n typeof components.physics === 'boolean' ||\n components.addrider !== void 0 ||\n components['minecraft:admire_item'] !== void 0 ||\n components['minecraft:ageable'] !== void 0 ||\n components['minecraft:anger_level'] !== void 0 ||\n components['minecraft:angry'] !== void 0 ||\n components['minecraft:annotation.break_door'] !== void 0 ||\n components['minecraft:annotation.open_door'] !== void 0 ||\n components['minecraft:attack'] !== void 0 ||\n components['minecraft:area_attack'] !== void 0 ||\n components['minecraft:attack_cooldown'] !== void 0 ||\n components['minecraft:balloonable'] !== void 0 ||\n components['minecraft:barter'] !== void 0 ||\n components['minecraft:block_climber'] !== void 0 ||\n components['minecraft:block_sensor'] !== void 0 ||\n components['minecraft:body_rotation_axis_aligned'] !== void 0 ||\n components['minecraft:body_rotation_always_follows_head'] !== void 0 ||\n components['minecraft:body_rotation_blocked'] !== void 0 ||\n components['minecraft:body_rotation_locked_to_vehicle'] !== void 0 ||\n components['minecraft:boostable'] !== void 0 ||\n components['minecraft:boss'] !== void 0 ||\n components['minecraft:break_blocks'] !== void 0 ||\n components['minecraft:breathable'] !== void 0 ||\n components['minecraft:bribeable'] !== void 0 ||\n components['minecraft:breedable'] !== void 0 ||\n components['minecraft:buoyant'] !== void 0 ||\n components['minecraft:burns_in_daylight'] !== void 0 ||\n components['minecraft:cannot_be_attacked'] !== void 0 ||\n components['minecraft:can_climb'] !== void 0 ||\n components['minecraft:can_fly'] !== void 0 ||\n components['minecraft:can_join_raid'] !== void 0 ||\n components['minecraft:can_power_jump'] !== void 0 ||\n components['minecraft:celebrate_hunt'] !== void 0 ||\n components['minecraft:collision_box'] !== void 0 ||\n components['minecraft:color'] !== void 0 ||\n components['minecraft:color2'] !== void 0 ||\n components['minecraft:combat_regeneration'] !== void 0 ||\n components['minecraft:conditional_bandwidth_optimization'] !== void 0 ||\n components['minecraft:custom_hit_test'] !== void 0 ||\n components['minecraft:damage_over_time'] !== void 0 ||\n components['minecraft:damage_sensor'] !== void 0 ||\n components['minecraft:dash'] !== void 0 ||\n components['minecraft:dash_action'] !== void 0 ||\n components['minecraft:default_look_angle'] !== void 0 ||\n components['minecraft:despawn'] !== void 0 ||\n components['minecraft:dimension_bound'] !== void 0 ||\n components['minecraft:drying_out_timer'] !== void 0 ||\n components['minecraft:dweller'] !== void 0 ||\n components['minecraft:economy_trade_table'] !== void 0 ||\n components['minecraft:entity_armor_equipment_slot_mapping'] !==\n void 0 ||\n components['minecraft:entity_sensor'] !== void 0 ||\n components['minecraft:environment_sensor'] !== void 0 ||\n components['minecraft:equipment'] !== void 0 ||\n components['minecraft:equippable'] !== void 0 ||\n components['minecraft:equip_item'] !== void 0 ||\n components['minecraft:exhaustion_values'] !== void 0 ||\n components['minecraft:experience_reward'] !== void 0 ||\n components['minecraft:explode'] !== void 0 ||\n components['minecraft:fire_immune'] !== void 0 ||\n components['minecraft:floats_in_liquid'] !== void 0 ||\n components['minecraft:flocking'] !== void 0 ||\n components['minecraft:flying_speed'] !== void 0 ||\n components['minecraft:follow_range'] !== void 0 ||\n components['minecraft:free_camera_controlled'] !== void 0 ||\n components['minecraft:friction_modifier'] !== void 0 ||\n components['minecraft:game_event_movement_tracking'] !== void 0 ||\n components['minecraft:genetics'] !== void 0 ||\n components['minecraft:giveable'] !== void 0 ||\n components['minecraft:ground_offset'] !== void 0 ||\n components['minecraft:group_size'] !== void 0 ||\n components['minecraft:grows_crop'] !== void 0 ||\n components['minecraft:health'] !== void 0 ||\n components['minecraft:heartbeat'] !== void 0 ||\n components['minecraft:hide'] !== void 0 ||\n components['minecraft:home'] !== void 0 ||\n components['minecraft:horse.jump_strength'] !== void 0 ||\n components['minecraft:hurt_on_condition'] !== void 0 ||\n components['minecraft:ignore_cannot_be_attacked'] !== void 0 ||\n components['minecraft:input_air_controlled'] !== void 0 ||\n components['minecraft:input_ground_controlled'] !== void 0 ||\n components['minecraft:inside_block_notifier'] !== void 0 ||\n components['minecraft:insomnia'] !== void 0 ||\n components['minecraft:instant_despawn'] !== void 0 ||\n components['minecraft:interact'] !== void 0 ||\n components['minecraft:inventory'] !== void 0 ||\n components['minecraft:is_baby'] !== void 0 ||\n components['minecraft:is_charged'] !== void 0 ||\n components['minecraft:is_chested'] !== void 0 ||\n components['minecraft:is_dyeable'] !== void 0 ||\n components['minecraft:is_ignited'] !== void 0 ||\n components['minecraft:is_pregnant'] !== void 0 ||\n components['minecraft:item_controllable'] !== void 0 ||\n components['minecraft:leashable'] !== void 0 ||\n components['minecraft:leashable_to'] !== void 0 ||\n components['minecraft:looked_at'] !== void 0 ||\n components['minecraft:loot'] !== void 0 ||\n components['minecraft:item_hopper'] !== void 0 ||\n components['minecraft:managed_wandering_trader'] !== void 0 ||\n components['minecraft:mark_variant'] !== void 0 ||\n components['minecraft:mob_effect'] !== void 0 ||\n components['minecraft:mob_effect_immunity'] !== void 0 ||\n components['minecraft:movement'] !== void 0 ||\n components['minecraft:movement.amphibious'] !== void 0 ||\n components['minecraft:movement.basic'] !== void 0 ||\n components['minecraft:movement.dolphin'] !== void 0 ||\n components['minecraft:movement.fly'] !== void 0 ||\n components['minecraft:movement.generic'] !== void 0 ||\n components['minecraft:movement.glide'] !== void 0 ||\n components['minecraft:movement.hover'] !== void 0 ||\n components['minecraft:movement.jump'] !== void 0 ||\n components['minecraft:movement.skip'] !== void 0 ||\n components['minecraft:movement.sound_distance_offset'] !== void 0 ||\n components['minecraft:movement.sway'] !== void 0 ||\n components['minecraft:nameable'] !== void 0 ||\n components['minecraft:navigation.climb'] !== void 0 ||\n components['minecraft:navigation.float'] !== void 0 ||\n components['minecraft:navigation.fly'] !== void 0 ||\n components['minecraft:navigation.generic'] !== void 0 ||\n components['minecraft:navigation.hover'] !== void 0 ||\n components['minecraft:navigation.swim'] !== void 0 ||\n components['minecraft:navigation.walk'] !== void 0 ||\n components['minecraft:offspring'] !== void 0 ||\n components['minecraft:preferred_path'] !== void 0;\n\n if (hasComponents) {\n result['minecraft:entity'].components = {};\n const ApplyComponents = result['minecraft:entity'].components;\n if (typeof components.physics === 'boolean') {\n ApplyComponents['minecraft:physics'] = {};\n }\n if (components.addrider) {\n const addriderConfig: any = {};\n\n if (components.addrider.entity_type) {\n addriderConfig.entity_type = components.addrider.entity_type;\n }\n\n if (\n Array.isArray(components.addrider.riders) &&\n components.addrider.riders.length > 0\n ) {\n addriderConfig.riders = [...components.addrider.riders];\n }\n\n if (components.addrider.spawn_event) {\n addriderConfig.spawn_event = components.addrider.spawn_event;\n }\n\n ApplyComponents['addrider'] = addriderConfig;\n }\n if (components['minecraft:admire_item']) {\n const admireItemConfig = components['minecraft:admire_item'];\n ApplyComponents['minecraft:admire_item'] = { ...admireItemConfig };\n }\n if (components['minecraft:ageable']) {\n const ageableConfig = components['minecraft:ageable'];\n ApplyComponents['minecraft:ageable'] = { ...ageableConfig };\n }\n if (components['minecraft:anger_level']) {\n const angerLevelConfig = components['minecraft:anger_level'];\n ApplyComponents['minecraft:anger_level'] = { ...angerLevelConfig };\n }\n if (components['minecraft:angry']) {\n const angryConfig = components['minecraft:angry'];\n ApplyComponents['minecraft:angry'] = { ...angryConfig };\n }\n if (components['minecraft:annotation.break_door']) {\n const breakDoorConfig = components['minecraft:annotation.break_door'];\n ApplyComponents['minecraft:annotation.break_door'] = {\n ...breakDoorConfig,\n };\n }\n if (components['minecraft:annotation.open_door']) {\n // minecraft:annotation.open_door是一个空对象{}\n ApplyComponents['minecraft:annotation.open_door'] = {};\n }\n if (components['minecraft:attack']) {\n const attackConfig = components['minecraft:attack'];\n ApplyComponents['minecraft:attack'] = { ...attackConfig };\n }\n if (components['minecraft:area_attack']) {\n const areaAttackConfig = components['minecraft:area_attack'];\n ApplyComponents['minecraft:area_attack'] = { ...areaAttackConfig };\n }\n if (components['minecraft:attack_cooldown']) {\n const attackCooldownConfig = components['minecraft:attack_cooldown'];\n ApplyComponents['minecraft:attack_cooldown'] = {\n ...attackCooldownConfig,\n };\n }\n if (components['minecraft:balloonable']) {\n const balloonableConfig = components['minecraft:balloonable'];\n ApplyComponents['minecraft:balloonable'] = { ...balloonableConfig };\n }\n if (components['minecraft:barter']) {\n const barterConfig = components['minecraft:barter'];\n ApplyComponents['minecraft:barter'] = { ...barterConfig };\n }\n if (components['minecraft:block_climber']) {\n // minecraft:block_climber 是一个空对象{}\n ApplyComponents['minecraft:block_climber'] = {};\n }\n if (components['minecraft:block_sensor']) {\n const blockSensorConfig = components['minecraft:block_sensor'];\n ApplyComponents['minecraft:block_sensor'] = { ...blockSensorConfig };\n }\n if (components['minecraft:body_rotation_axis_aligned']) {\n ApplyComponents['minecraft:body_rotation_axis_aligned'] = {};\n }\n if (components['minecraft:body_rotation_always_follows_head']) {\n ApplyComponents['minecraft:body_rotation_always_follows_head'] = {};\n }\n if (components['minecraft:body_rotation_blocked']) {\n ApplyComponents['minecraft:body_rotation_blocked'] = {};\n }\n if (components['minecraft:body_rotation_locked_to_vehicle']) {\n ApplyComponents['minecraft:body_rotation_locked_to_vehicle'] = {};\n }\n if (components['minecraft:boostable']) {\n const boostableConfig = components['minecraft:boostable'];\n ApplyComponents['minecraft:boostable'] = { ...boostableConfig };\n }\n if (components['minecraft:boss']) {\n const bossConfig = components['minecraft:boss'];\n ApplyComponents['minecraft:boss'] = { ...bossConfig };\n }\n if (components['minecraft:break_blocks']) {\n const breakBlocksConfig = components['minecraft:break_blocks'];\n ApplyComponents['minecraft:break_blocks'] = { ...breakBlocksConfig };\n }\n if (components['minecraft:breathable']) {\n const breathableConfig = components['minecraft:breathable'];\n ApplyComponents['minecraft:breathable'] = { ...breathableConfig };\n }\n if (components['minecraft:bribeable']) {\n const bribeableConfig = components['minecraft:bribeable'];\n ApplyComponents['minecraft:bribeable'] = { ...bribeableConfig };\n }\n if (components['minecraft:breedable']) {\n const breedableConfig = components['minecraft:breedable'];\n ApplyComponents['minecraft:breedable'] = { ...breedableConfig };\n }\n if (components['minecraft:buoyant']) {\n const buoyantConfig = components['minecraft:buoyant'];\n ApplyComponents['minecraft:buoyant'] = { ...buoyantConfig };\n }\n if (components['minecraft:burns_in_daylight']) {\n const burnsInDaylightConfig =\n components['minecraft:burns_in_daylight'];\n ApplyComponents['minecraft:burns_in_daylight'] = {\n ...burnsInDaylightConfig,\n };\n }\n if (components['minecraft:cannot_be_attacked']) {\n ApplyComponents['minecraft:cannot_be_attacked'] = {};\n }\n if (components['minecraft:can_climb']) {\n ApplyComponents['minecraft:can_climb'] = {};\n }\n if (components['minecraft:can_fly']) {\n ApplyComponents['minecraft:can_fly'] = {};\n }\n if (components['minecraft:can_join_raid']) {\n ApplyComponents['minecraft:can_join_raid'] = {};\n }\n if (components['minecraft:can_power_jump']) {\n ApplyComponents['minecraft:can_power_jump'] = {};\n }\n if (components['minecraft:celebrate_hunt']) {\n const celebrateHuntConfig = components['minecraft:celebrate_hunt'];\n ApplyComponents['minecraft:celebrate_hunt'] = {\n ...celebrateHuntConfig,\n };\n }\n if (components['minecraft:collision_box']) {\n const collisionBoxConfig = components['minecraft:collision_box'];\n ApplyComponents['minecraft:collision_box'] = {\n ...collisionBoxConfig,\n };\n }\n if (components['minecraft:color']) {\n const colorConfig = components['minecraft:color'];\n ApplyComponents['minecraft:color'] = { ...colorConfig };\n }\n if (components['minecraft:color2']) {\n const color2Config = components['minecraft:color2'];\n ApplyComponents['minecraft:color2'] = { ...color2Config };\n }\n if (components['minecraft:combat_regeneration']) {\n const combatRegenerationConfig =\n components['minecraft:combat_regeneration'];\n ApplyComponents['minecraft:combat_regeneration'] = {\n ...combatRegenerationConfig,\n };\n }\n if (components['minecraft:conditional_bandwidth_optimization']) {\n const conditionalBandwidthOptimizationConfig =\n components['minecraft:conditional_bandwidth_optimization'];\n ApplyComponents['minecraft:conditional_bandwidth_optimization'] = {\n ...conditionalBandwidthOptimizationConfig,\n };\n }\n if (components['minecraft:custom_hit_test']) {\n const customHitTestConfig = components['minecraft:custom_hit_test'];\n ApplyComponents['minecraft:custom_hit_test'] = {\n ...customHitTestConfig,\n };\n }\n if (components['minecraft:damage_over_time']) {\n const damageOverTimeConfig = components['minecraft:damage_over_time'];\n ApplyComponents['minecraft:damage_over_time'] = {\n ...damageOverTimeConfig,\n };\n }\n if (components['minecraft:damage_sensor']) {\n const damageSensorConfig = components['minecraft:damage_sensor'];\n ApplyComponents['minecraft:damage_sensor'] = {\n ...damageSensorConfig,\n };\n }\n if (components['minecraft:dash']) {\n const dashConfig = components['minecraft:dash'];\n ApplyComponents['minecraft:dash'] = { ...dashConfig };\n }\n if (components['minecraft:dash_action']) {\n const dashActionConfig = components['minecraft:dash_action'];\n ApplyComponents['minecraft:dash_action'] = { ...dashActionConfig };\n }\n if (components['minecraft:default_look_angle']) {\n const defaultLookAngleConfig =\n components['minecraft:default_look_angle'];\n ApplyComponents['minecraft:default_look_angle'] = {\n ...defaultLookAngleConfig,\n };\n }\n if (components['minecraft:despawn']) {\n const despawnConfig = components['minecraft:despawn'];\n ApplyComponents['minecraft:despawn'] = { ...despawnConfig };\n }\n if (components['minecraft:dimension_bound']) {\n ApplyComponents['minecraft:dimension_bound'] = {};\n }\n if (components['minecraft:drying_out_timer']) {\n const dryingOutTimerConfig = components['minecraft:drying_out_timer'];\n ApplyComponents['minecraft:drying_out_timer'] = {\n ...dryingOutTimerConfig,\n };\n }\n if (components['minecraft:dweller']) {\n const dwellerConfig = components['minecraft:dweller'];\n ApplyComponents['minecraft:dweller'] = { ...dwellerConfig };\n }\n if (components['minecraft:economy_trade_table']) {\n const economyTradeTableConfig =\n components['minecraft:economy_trade_table'];\n ApplyComponents['minecraft:economy_trade_table'] = {\n ...economyTradeTableConfig,\n };\n }\n if (components['minecraft:entity_armor_equipment_slot_mapping']) {\n const entityArmorEquipmentSlotMappingConfig =\n components['minecraft:entity_armor_equipment_slot_mapping'];\n ApplyComponents['minecraft:entity_armor_equipment_slot_mapping'] = {\n ...entityArmorEquipmentSlotMappingConfig,\n };\n }\n if (components['minecraft:entity_sensor']) {\n const entitySensorConfig = components['minecraft:entity_sensor'];\n ApplyComponents['minecraft:entity_sensor'] = {\n ...entitySensorConfig,\n };\n }\n if (components['minecraft:environment_sensor']) {\n const environmentSensorConfig =\n components['minecraft:environment_sensor'];\n ApplyComponents['minecraft:environment_sensor'] = {\n ...environmentSensorConfig,\n };\n }\n if (components['minecraft:equipment']) {\n const equipmentConfig = components['minecraft:equipment'];\n ApplyComponents['minecraft:equipment'] = { ...equipmentConfig };\n }\n if (components['minecraft:equippable']) {\n const equippableConfig = components['minecraft:equippable'];\n ApplyComponents['minecraft:equippable'] = { ...equippableConfig };\n }\n if (components['minecraft:equip_item']) {\n const equipItemConfig = components['minecraft:equip_item'];\n ApplyComponents['minecraft:equip_item'] = { ...equipItemConfig };\n }\n if (components['minecraft:exhaustion_values']) {\n const exhaustionValuesConfig =\n components['minecraft:exhaustion_values'];\n ApplyComponents['minecraft:exhaustion_values'] = {\n ...exhaustionValuesConfig,\n };\n }\n if (components['minecraft:experience_reward']) {\n const experienceRewardConfig =\n components['minecraft:experience_reward'];\n ApplyComponents['minecraft:experience_reward'] = {\n ...experienceRewardConfig,\n };\n }\n if (components['minecraft:explode']) {\n const explodeConfig = components['minecraft:explode'];\n ApplyComponents['minecraft:explode'] = { ...explodeConfig };\n }\n if (components['minecraft:fire_immune']) {\n ApplyComponents['minecraft:fire_immune'] = {};\n }\n if (components['minecraft:floats_in_liquid']) {\n ApplyComponents['minecraft:floats_in_liquid'] = {};\n }\n if (components['minecraft:flocking']) {\n const flockingConfig = components['minecraft:flocking'];\n ApplyComponents['minecraft:flocking'] = { ...flockingConfig };\n }\n if (components['minecraft:flying_speed']) {\n const flyingSpeedConfig = components['minecraft:flying_speed'];\n ApplyComponents['minecraft:flying_speed'] = { ...flyingSpeedConfig };\n }\n if (components['minecraft:follow_range']) {\n const followRangeConfig = components['minecraft:follow_range'];\n ApplyComponents['minecraft:follow_range'] = { ...followRangeConfig };\n }\n if (components['minecraft:free_camera_controlled']) {\n const freeCameraConfig =\n components['minecraft:free_camera_controlled'];\n ApplyComponents['minecraft:free_camera_controlled'] = {\n ...freeCameraConfig,\n };\n }\n if (components['minecraft:friction_modifier']) {\n const frictionConfig = components['minecraft:friction_modifier'];\n ApplyComponents['minecraft:friction_modifier'] = {\n ...frictionConfig,\n };\n }\n if (components['minecraft:game_event_movement_tracking']) {\n const gameEventConfig =\n components['minecraft:game_event_movement_tracking'];\n ApplyComponents['minecraft:game_event_movement_tracking'] = {\n ...gameEventConfig,\n };\n }\n if (components['minecraft:genetics']) {\n const geneticsConfig = components['minecraft:genetics'];\n ApplyComponents['minecraft:genetics'] = { ...geneticsConfig };\n }\n if (components['minecraft:giveable']) {\n const giveableConfig = components['minecraft:giveable'];\n ApplyComponents['minecraft:giveable'] = { ...giveableConfig };\n }\n if (components['minecraft:ground_offset']) {\n const groundOffsetConfig = components['minecraft:ground_offset'];\n ApplyComponents['minecraft:ground_offset'] = {\n ...groundOffsetConfig,\n };\n }\n if (components['minecraft:group_size']) {\n const groupSizeConfig = components['minecraft:group_size'];\n ApplyComponents['minecraft:group_size'] = { ...groupSizeConfig };\n }\n if (components['minecraft:grows_crop']) {\n const growsCropConfig = components['minecraft:grows_crop'];\n ApplyComponents['minecraft:grows_crop'] = { ...growsCropConfig };\n }\n if (components['minecraft:health']) {\n const healthConfig = components['minecraft:health'];\n ApplyComponents['minecraft:health'] = { ...healthConfig };\n }\n if (components['minecraft:heartbeat']) {\n const heartbeatConfig = components['minecraft:heartbeat'];\n ApplyComponents['minecraft:heartbeat'] = { ...heartbeatConfig };\n }\n if (components['minecraft:hide']) {\n ApplyComponents['minecraft:hide'] = {};\n }\n if (components['minecraft:home']) {\n const homeConfig = components['minecraft:home'];\n ApplyComponents['minecraft:home'] = { ...homeConfig };\n }\n if (components['minecraft:horse.jump_strength']) {\n const jumpConfig = components['minecraft:horse.jump_strength'];\n ApplyComponents['minecraft:horse.jump_strength'] = { ...jumpConfig };\n }\n const hurtConfig = components['minecraft:hurt_on_condition'];\n if (hurtConfig !== void 0) {\n ApplyComponents['minecraft:hurt_on_condition'] = { ...hurtConfig };\n }\n const ignoreAttackConfig =\n components['minecraft:ignore_cannot_be_attacked'];\n if (ignoreAttackConfig !== void 0) {\n ApplyComponents['minecraft:ignore_cannot_be_attacked'] = {\n ...ignoreAttackConfig,\n };\n }\n const airControlConfig = components['minecraft:input_air_controlled'];\n if (airControlConfig !== void 0) {\n ApplyComponents['minecraft:input_air_controlled'] = {\n ...airControlConfig,\n };\n }\n const groundControlConfig =\n components['minecraft:input_ground_controlled'];\n if (groundControlConfig !== void 0) {\n ApplyComponents['minecraft:input_ground_controlled'] = {\n ...groundControlConfig,\n };\n }\n const blockNotifierConfig =\n components['minecraft:inside_block_notifier'];\n if (blockNotifierConfig !== void 0) {\n ApplyComponents['minecraft:inside_block_notifier'] = {\n ...blockNotifierConfig,\n };\n }\n const insomniaConfig = components['minecraft:insomnia'];\n if (insomniaConfig !== void 0) {\n ApplyComponents['minecraft:insomnia'] = { ...insomniaConfig };\n }\n const instantDespawnConfig = components['minecraft:instant_despawn'];\n if (instantDespawnConfig !== void 0) {\n ApplyComponents['minecraft:instant_despawn'] = {\n ...instantDespawnConfig,\n };\n }\n const interactConfig = components['minecraft:interact'];\n if (interactConfig !== void 0) {\n ApplyComponents['minecraft:interact'] = { ...interactConfig };\n }\n const inventoryConfig = components['minecraft:inventory'];\n if (inventoryConfig !== void 0) {\n ApplyComponents['minecraft:inventory'] = { ...inventoryConfig };\n }\n const isBabyConfig = components['minecraft:is_baby'];\n if (isBabyConfig !== void 0) {\n ApplyComponents['minecraft:is_baby'] = { ...isBabyConfig };\n }\n const isChargedConfig = components['minecraft:is_charged'];\n if (isChargedConfig !== void 0) {\n ApplyComponents['minecraft:is_charged'] = { ...isChargedConfig };\n }\n const isChestedConfig = components['minecraft:is_chested'];\n if (isChestedConfig !== void 0) {\n ApplyComponents['minecraft:is_chested'] = { ...isChestedConfig };\n }\n const isDyeableConfig = components['minecraft:is_dyeable'];\n if (isDyeableConfig !== void 0) {\n ApplyComponents['minecraft:is_dyeable'] = { ...isDyeableConfig };\n }\n const isIgnitedConfig = components['minecraft:is_ignited'];\n if (isIgnitedConfig !== void 0) {\n ApplyComponents['minecraft:is_ignited'] = { ...isIgnitedConfig };\n }\n const isPregnantConfig = components['minecraft:is_pregnant'];\n if (isPregnantConfig !== void 0) {\n ApplyComponents['minecraft:is_pregnant'] = { ...isPregnantConfig };\n }\n const itemControllableConfig =\n components['minecraft:item_controllable'];\n if (itemControllableConfig !== void 0) {\n ApplyComponents['minecraft:item_controllable'] = {\n ...itemControllableConfig,\n };\n }\n const leashableConfig = components['minecraft:leashable'];\n if (leashableConfig !== void 0) {\n ApplyComponents['minecraft:leashable'] = { ...leashableConfig };\n }\n const leashableToConfig = components['minecraft:leashable_to'];\n if (leashableToConfig !== void 0) {\n ApplyComponents['minecraft:leashable_to'] = { ...leashableToConfig };\n }\n const lookedAtConfig = components['minecraft:looked_at'];\n if (lookedAtConfig !== void 0) {\n ApplyComponents['minecraft:looked_at'] = { ...lookedAtConfig };\n }\n const lootConfig = components['minecraft:loot'];\n if (lootConfig !== void 0) {\n ApplyComponents['minecraft:loot'] = { ...lootConfig };\n }\n const itemHopperConfig = components['minecraft:item_hopper'];\n if (itemHopperConfig !== void 0) {\n ApplyComponents['minecraft:item_hopper'] = {};\n }\n const managedTraderConfig =\n components['minecraft:managed_wandering_trader'];\n if (managedTraderConfig !== void 0) {\n ApplyComponents['minecraft:managed_wandering_trader'] = {};\n }\n const markVariantConfig = components['minecraft:mark_variant'];\n if (\n markVariantConfig !== void 0 &&\n markVariantConfig.value !== void 0\n ) {\n ApplyComponents['minecraft:mark_variant'] = {\n value: markVariantConfig.value,\n };\n }\n const mobEffectConfig = components['minecraft:mob_effect'];\n if (\n mobEffectConfig !== void 0 &&\n mobEffectConfig.mob_effect !== void 0\n ) {\n const effectConfig: any = { mob_effect: mobEffectConfig.mob_effect };\n if (mobEffectConfig.ambient !== void 0)\n effectConfig.ambient = mobEffectConfig.ambient;\n if (mobEffectConfig.cooldown_time !== void 0)\n effectConfig.cooldown_time = mobEffectConfig.cooldown_time;\n if (mobEffectConfig.effect_range !== void 0)\n effectConfig.effect_range = mobEffectConfig.effect_range;\n if (mobEffectConfig.effect_time !== void 0)\n effectConfig.effect_time = mobEffectConfig.effect_time;\n if (mobEffectConfig.entity_filter !== void 0)\n effectConfig.entity_filter = mobEffectConfig.entity_filter;\n ApplyComponents['minecraft:mob_effect'] = effectConfig;\n }\n const mobImmunityConfig = components['minecraft:mob_effect_immunity'];\n if (\n mobImmunityConfig !== void 0 &&\n mobImmunityConfig.mob_effects !== void 0\n ) {\n ApplyComponents['minecraft:mob_effect_immunity'] = {\n mob_effects: mobImmunityConfig.mob_effects,\n };\n }\n const movementConfig = components['minecraft:movement'];\n if (movementConfig !== void 0) {\n const moveConfig: any = {};\n if (movementConfig.max !== void 0)\n moveConfig.max = movementConfig.max;\n if (movementConfig.value !== void 0)\n moveConfig.value = movementConfig.value;\n ApplyComponents['minecraft:movement'] = moveConfig;\n }\n const amphibiousConfig = components['minecraft:movement.amphibious'];\n if (amphibiousConfig !== void 0) {\n const amphibConfig: any = {};\n if (amphibiousConfig.max_turn !== void 0)\n amphibConfig.max_turn = amphibiousConfig.max_turn;\n ApplyComponents['minecraft:movement.amphibious'] = amphibConfig;\n }\n const basicMovementConfig = components['minecraft:movement.basic'];\n if (basicMovementConfig !== void 0) {\n const basicConfig: any = {};\n if (basicMovementConfig.max_turn !== void 0)\n basicConfig.max_turn = basicMovementConfig.max_turn;\n ApplyComponents['minecraft:movement.basic'] = basicConfig;\n }\n const dolphinConfig = components['minecraft:movement.dolphin'];\n if (dolphinConfig !== void 0) {\n ApplyComponents['minecraft:movement.dolphin'] = {};\n }\n const flyConfig = components['minecraft:movement.fly'];\n if (flyConfig !== void 0) {\n const flyMovementConfig: any = {};\n if (flyConfig.max_turn !== void 0)\n flyMovementConfig.max_turn = flyConfig.max_turn;\n if (flyConfig.speed_when_turning !== void 0)\n flyMovementConfig.speed_when_turning = flyConfig.speed_when_turning;\n if (flyConfig.start_speed !== void 0)\n flyMovementConfig.start_speed = flyConfig.start_speed;\n ApplyComponents['minecraft:movement.fly'] = flyMovementConfig;\n }\n const genericConfig = components['minecraft:movement.generic'];\n if (genericConfig !== void 0) {\n const genericMovementConfig: any = {};\n if (genericConfig.max_turn !== void 0)\n genericMovementConfig.max_turn = genericConfig.max_turn;\n ApplyComponents['minecraft:movement.generic'] = genericMovementConfig;\n }\n const glideConfig = components['minecraft:movement.glide'];\n if (glideConfig !== void 0) {\n const glideMovementConfig: any = {};\n if (glideConfig.max_turn !== void 0)\n glideMovementConfig.max_turn = glideConfig.max_turn;\n if (glideConfig.speed_when_turning !== void 0)\n glideMovementConfig.speed_when_turning =\n glideConfig.speed_when_turning;\n ApplyComponents['minecraft:movement.glide'] = glideMovementConfig;\n }\n const hoverConfig = components['minecraft:movement.hover'];\n if (hoverConfig !== void 0) {\n const hoverMovementConfig: any = {};\n if (hoverConfig.max_turn !== void 0)\n hoverMovementConfig.max_turn = hoverConfig.max_turn;\n ApplyComponents['minecraft:movement.hover'] = hoverMovementConfig;\n }\n const jumpConfig = components['minecraft:movement.jump'];\n if (jumpConfig !== void 0) {\n const jumpMovementConfig: any = {};\n if (jumpConfig.jump_delay !== void 0) {\n // 支持三种格式的jump_delay参数\n if (typeof jumpConfig.jump_delay === 'number') {\n jumpMovementConfig.jump_delay = jumpConfig.jump_delay;\n } else if (\n Array.isArray(jumpConfig.jump_delay) &&\n jumpConfig.jump_delay.length === 2\n ) {\n jumpMovementConfig.jump_delay = [...jumpConfig.jump_delay];\n } else if (\n typeof jumpConfig.jump_delay === 'object' &&\n jumpConfig.jump_delay !== null &&\n 'range_min' in jumpConfig.jump_delay\n ) {\n const delayObj = jumpConfig.jump_delay as {\n range_min?: number;\n range_max?: number;\n };\n jumpMovementConfig.jump_delay = {\n range_min: delayObj.range_min,\n range_max: delayObj.range_max,\n };\n // 删除void 0属性\n if (jumpMovementConfig.jump_delay.range_min === void 0)\n delete jumpMovementConfig.jump_delay.range_min;\n if (jumpMovementConfig.jump_delay.range_max === void 0)\n delete jumpMovementConfig.jump_delay.range_max;\n if (Object.keys(jumpMovementConfig.jump_delay).length === 0)\n delete jumpMovementConfig.jump_delay;\n }\n }\n if (jumpConfig.max_turn !== void 0)\n jumpMovementConfig.max_turn = jumpConfig.max_turn;\n ApplyComponents['minecraft:movement.jump'] = jumpMovementConfig;\n }\n const skipConfig = components['minecraft:movement.skip'];\n if (skipConfig !== void 0) {\n const skipMovementConfig: any = {};\n if (skipConfig.max_turn !== void 0)\n skipMovementConfig.max_turn = skipConfig.max_turn;\n ApplyComponents['minecraft:movement.skip'] = skipMovementConfig;\n }\n const soundDistanceOffsetConfig =\n components['minecraft:movement.sound_distance_offset'];\n if (soundDistanceOffsetConfig !== void 0) {\n const soundDistanceOffsetMovementConfig: any = {};\n if (soundDistanceOffsetConfig.value !== void 0)\n soundDistanceOffsetMovementConfig.value =\n soundDistanceOffsetConfig.value;\n ApplyComponents['minecraft:movement.sound_distance_offset'] =\n soundDistanceOffsetMovementConfig;\n }\n const swayConfig = components['minecraft:movement.sway'];\n if (swayConfig !== void 0) {\n const swayMovementConfig: any = {};\n if (swayConfig.sway_amplitude !== void 0)\n swayMovementConfig.sway_amplitude = swayConfig.sway_amplitude;\n if (swayConfig.sway_frequency !== void 0)\n swayMovementConfig.sway_frequency = swayConfig.sway_frequency;\n ApplyComponents['minecraft:movement.sway'] = swayMovementConfig;\n }\n const nameableConfig = components['minecraft:nameable'];\n if (nameableConfig !== void 0) {\n const nameableConfigObj: any = {};\n if (\n Array.isArray(nameableConfig.name_actions) &&\n nameableConfig.name_actions.length > 0\n ) {\n nameableConfigObj.name_actions = nameableConfig.name_actions.map(\n action => {\n const actionObj: any = {};\n if (\n Array.isArray(action.name_filter) &&\n action.name_filter.length > 0\n ) {\n actionObj.name_filter = [...action.name_filter];\n }\n if (action.on_named !== void 0) {\n if (typeof action.on_named === 'string') {\n actionObj.on_named = action.on_named;\n } else if (\n typeof action.on_named === 'object' &&\n action.on_named !== null\n ) {\n actionObj.on_named = {\n event: action.on_named.event,\n };\n if (action.on_named.target !== void 0)\n actionObj.on_named.target = action.on_named.target;\n }\n }\n return actionObj;\n },\n );\n }\n ApplyComponents['minecraft:nameable'] = nameableConfigObj;\n }\n const navigationClimbConfig = components['minecraft:navigation.climb'];\n if (navigationClimbConfig !== void 0) {\n const navigationClimbConfigObj: any = {};\n if (navigationClimbConfig.avoid_damage_blocks !== void 0) {\n navigationClimbConfigObj.avoid_damage_blocks =\n navigationClimbConfig.avoid_damage_blocks;\n }\n if (navigationClimbConfig.avoid_portals !== void 0) {\n navigationClimbConfigObj.avoid_portals =\n navigationClimbConfig.avoid_portals;\n }\n if (navigationClimbConfig.avoid_sun !== void 0) {\n navigationClimbConfigObj.avoid_sun =\n navigationClimbConfig.avoid_sun;\n }\n if (navigationClimbConfig.avoid_water !== void 0) {\n navigationClimbConfigObj.avoid_water =\n navigationClimbConfig.avoid_water;\n }\n if (navigationClimbConfig.blocks_to_avoid !== void 0) {\n navigationClimbConfigObj.blocks_to_avoid = [\n ...navigationClimbConfig.blocks_to_avoid,\n ];\n }\n if (navigationClimbConfig.can_breach !== void 0) {\n navigationClimbConfigObj.can_breach =\n navigationClimbConfig.can_breach;\n }\n if (navigationClimbConfig.can_break_doors !== void 0) {\n navigationClimbConfigObj.can_break_doors =\n navigationClimbConfig.can_break_doors;\n }\n if (navigationClimbConfig.can_jump !== void 0) {\n navigationClimbConfigObj.can_jump = navigationClimbConfig.can_jump;\n }\n if (navigationClimbConfig.can_open_doors !== void 0) {\n navigationClimbConfigObj.can_open_doors =\n navigationClimbConfig.can_open_doors;\n }\n if (navigationClimbConfig.can_open_iron_doors !== void 0) {\n navigationClimbConfigObj.can_open_iron_doors =\n navigationClimbConfig.can_open_iron_doors;\n }\n if (navigationClimbConfig.can_pass_doors !== void 0) {\n navigationClimbConfigObj.can_pass_doors =\n navigationClimbConfig.can_pass_doors;\n }\n if (navigationClimbConfig.can_path_from_air !== void 0) {\n navigationClimbConfigObj.can_path_from_air =\n navigationClimbConfig.can_path_from_air;\n }\n if (navigationClimbConfig.can_path_over_lava !== void 0) {\n navigationClimbConfigObj.can_path_over_lava =\n navigationClimbConfig.can_path_over_lava;\n }\n if (navigationClimbConfig.can_path_over_water !== void 0) {\n navigationClimbConfigObj.can_path_over_water =\n navigationClimbConfig.can_path_over_water;\n }\n if (navigationClimbConfig.can_sink !== void 0) {\n navigationClimbConfigObj.can_sink = navigationClimbConfig.can_sink;\n }\n if (navigationClimbConfig.can_swim !== void 0) {\n navigationClimbConfigObj.can_swim = navigationClimbConfig.can_swim;\n }\n if (navigationClimbConfig.can_walk !== void 0) {\n navigationClimbConfigObj.can_walk = navigationClimbConfig.can_walk;\n }\n if (navigationClimbConfig.can_walk_in_lava !== void 0) {\n navigationClimbConfigObj.can_walk_in_lava =\n navigationClimbConfig.can_walk_in_lava;\n }\n ApplyComponents['minecraft:navigation.climb'] =\n navigationClimbConfigObj;\n }\n const navigationFloatConfig = components['minecraft:navigation.float'];\n if (navigationFloatConfig !== void 0) {\n const navigationFloatConfigObj: any = {};\n if (navigationFloatConfig.avoid_damage_blocks !== void 0) {\n navigationFloatConfigObj.avoid_damage_blocks =\n navigationFloatConfig.avoid_damage_blocks;\n }\n if (navigationFloatConfig.avoid_portals !== void 0) {\n navigationFloatConfigObj.avoid_portals =\n navigationFloatConfig.avoid_portals;\n }\n if (navigationFloatConfig.avoid_sun !== void 0) {\n navigationFloatConfigObj.avoid_sun =\n navigationFloatConfig.avoid_sun;\n }\n if (navigationFloatConfig.avoid_water !== void 0) {\n navigationFloatConfigObj.avoid_water =\n navigationFloatConfig.avoid_water;\n }\n if (navigationFloatConfig.blocks_to_avoid !== void 0) {\n navigationFloatConfigObj.blocks_to_avoid = [\n ...navigationFloatConfig.blocks_to_avoid,\n ];\n }\n if (navigationFloatConfig.can_breach !== void 0) {\n navigationFloatConfigObj.can_breach =\n navigationFloatConfig.can_breach;\n }\n if (navigationFloatConfig.can_break_doors !== void 0) {\n navigationFloatConfigObj.can_break_doors =\n navigationFloatConfig.can_break_doors;\n }\n if (navigationFloatConfig.can_jump !== void 0) {\n navigationFloatConfigObj.can_jump = navigationFloatConfig.can_jump;\n }\n if (navigationFloatConfig.can_open_doors !== void 0) {\n navigationFloatConfigObj.can_open_doors =\n navigationFloatConfig.can_open_doors;\n }\n if (navigationFloatConfig.can_open_iron_doors !== void 0) {\n navigationFloatConfigObj.can_open_iron_doors =\n navigationFloatConfig.can_open_iron_doors;\n }\n if (navigationFloatConfig.can_pass_doors !== void 0) {\n navigationFloatConfigObj.can_pass_doors =\n navigationFloatConfig.can_pass_doors;\n }\n if (navigationFloatConfig.can_path_from_air !== void 0) {\n navigationFloatConfigObj.can_path_from_air =\n navigationFloatConfig.can_path_from_air;\n }\n if (navigationFloatConfig.can_path_over_water !== void 0) {\n navigationFloatConfigObj.can_path_over_water =\n navigationFloatConfig.can_path_over_water;\n }\n if (navigationFloatConfig.can_sink !== void 0) {\n navigationFloatConfigObj.can_sink = navigationFloatConfig.can_sink;\n }\n if (navigationFloatConfig.can_swim !== void 0) {\n navigationFloatConfigObj.can_swim = navigationFloatConfig.can_swim;\n }\n if (navigationFloatConfig.can_walk !== void 0) {\n navigationFloatConfigObj.can_walk = navigationFloatConfig.can_walk;\n }\n if (navigationFloatConfig.can_walk_in_lava !== void 0) {\n navigationFloatConfigObj.can_walk_in_lava =\n navigationFloatConfig.can_walk_in_lava;\n }\n if (navigationFloatConfig.is_amphibious !== void 0) {\n navigationFloatConfigObj.is_amphibious =\n navigationFloatConfig.is_amphibious;\n }\n if (navigationFloatConfig.using_door_annotation !== void 0) {\n navigationFloatConfigObj.using_door_annotation =\n navigationFloatConfig.using_door_annotation;\n }\n ApplyComponents['minecraft:navigation.float'] =\n navigationFloatConfigObj;\n }\n const navigationFlyConfig = components['minecraft:navigation.fly'];\n if (navigationFlyConfig !== void 0) {\n const navigationFlyConfigObj: any = {};\n if (navigationFlyConfig.avoid_damage_blocks !== void 0) {\n navigationFlyConfigObj.avoid_damage_blocks =\n navigationFlyConfig.avoid_damage_blocks;\n }\n if (navigationFlyConfig.avoid_portals !== void 0) {\n navigationFlyConfigObj.avoid_portals =\n navigationFlyConfig.avoid_portals;\n }\n if (navigationFlyConfig.avoid_sun !== void 0) {\n navigationFlyConfigObj.avoid_sun = navigationFlyConfig.avoid_sun;\n }\n if (navigationFlyConfig.avoid_water !== void 0) {\n navigationFlyConfigObj.avoid_water =\n navigationFlyConfig.avoid_water;\n }\n if (navigationFlyConfig.blocks_to_avoid !== void 0) {\n navigationFlyConfigObj.blocks_to_avoid = [\n ...navigationFlyConfig.blocks_to_avoid,\n ];\n }\n if (navigationFlyConfig.can_breach !== void 0) {\n navigationFlyConfigObj.can_breach = navigationFlyConfig.can_breach;\n }\n if (navigationFlyConfig.can_break_doors !== void 0) {\n navigationFlyConfigObj.can_break_doors =\n navigationFlyConfig.can_break_doors;\n }\n if (navigationFlyConfig.can_jump !== void 0) {\n navigationFlyConfigObj.can_jump = navigationFlyConfig.can_jump;\n }\n if (navigationFlyConfig.can_open_doors !== void 0) {\n navigationFlyConfigObj.can_open_doors =\n navigationFlyConfig.can_open_doors;\n }\n if (navigationFlyConfig.can_open_iron_doors !== void 0) {\n navigationFlyConfigObj.can_open_iron_doors =\n navigationFlyConfig.can_open_iron_doors;\n }\n if (navigationFlyConfig.can_pass_doors !== void 0) {\n navigationFlyConfigObj.can_pass_doors =\n navigationFlyConfig.can_pass_doors;\n }\n if (navigationFlyConfig.can_path_from_air !== void 0) {\n navigationFlyConfigObj.can_path_from_air =\n navigationFlyConfig.can_path_from_air;\n }\n if (navigationFlyConfig.can_path_over_water !== void 0) {\n navigationFlyConfigObj.can_path_over_water =\n navigationFlyConfig.can_path_over_water;\n }\n if (navigationFlyConfig.can_sink !== void 0) {\n navigationFlyConfigObj.can_sink = navigationFlyConfig.can_sink;\n }\n if (navigationFlyConfig.can_swim !== void 0) {\n navigationFlyConfigObj.can_swim = navigationFlyConfig.can_swim;\n }\n if (navigationFlyConfig.can_walk !== void 0) {\n navigationFlyConfigObj.can_walk = navigationFlyConfig.can_walk;\n }\n if (navigationFlyConfig.can_walk_in_lava !== void 0) {\n navigationFlyConfigObj.can_walk_in_lava =\n navigationFlyConfig.can_walk_in_lava;\n }\n if (navigationFlyConfig.is_amphibious !== void 0) {\n navigationFlyConfigObj.is_amphibious =\n navigationFlyConfig.is_amphibious;\n }\n if (navigationFlyConfig.using_door_annotation !== void 0) {\n navigationFlyConfigObj.using_door_annotation =\n navigationFlyConfig.using_door_annotation;\n }\n ApplyComponents['minecraft:navigation.fly'] = navigationFlyConfigObj;\n }\n const navigationGenericConfig =\n components['minecraft:navigation.generic'];\n if (navigationGenericConfig !== void 0) {\n const navigationGenericConfigObj: any = {};\n if (navigationGenericConfig.avoid_damage_blocks !== void 0) {\n navigationGenericConfigObj.avoid_damage_blocks =\n navigationGenericConfig.avoid_damage_blocks;\n }\n if (navigationGenericConfig.avoid_portals !== void 0) {\n navigationGenericConfigObj.avoid_portals =\n navigationGenericConfig.avoid_portals;\n }\n if (navigationGenericConfig.avoid_sun !== void 0) {\n navigationGenericConfigObj.avoid_sun =\n navigationGenericConfig.avoid_sun;\n }\n if (navigationGenericConfig.avoid_water !== void 0) {\n navigationGenericConfigObj.avoid_water =\n navigationGenericConfig.avoid_water;\n }\n if (navigationGenericConfig.blocks_to_avoid !== void 0) {\n navigationGenericConfigObj.blocks_to_avoid = [\n ...navigationGenericConfig.blocks_to_avoid,\n ];\n }\n if (navigationGenericConfig.can_breach !== void 0) {\n navigationGenericConfigObj.can_breach =\n navigationGenericConfig.can_breach;\n }\n if (navigationGenericConfig.can_break_doors !== void 0) {\n navigationGenericConfigObj.can_break_doors =\n navigationGenericConfig.can_break_doors;\n }\n if (navigationGenericConfig.can_jump !== void 0) {\n navigationGenericConfigObj.can_jump =\n navigationGenericConfig.can_jump;\n }\n if (navigationGenericConfig.can_open_doors !== void 0) {\n navigationGenericConfigObj.can_open_doors =\n navigationGenericConfig.can_open_doors;\n }\n if (navigationGenericConfig.can_open_iron_doors !== void 0) {\n navigationGenericConfigObj.can_open_iron_doors =\n navigationGenericConfig.can_open_iron_doors;\n }\n if (navigationGenericConfig.can_pass_doors !== void 0) {\n navigationGenericConfigObj.can_pass_doors =\n navigationGenericConfig.can_pass_doors;\n }\n if (navigationGenericConfig.can_path_from_air !== void 0) {\n navigationGenericConfigObj.can_path_from_air =\n navigationGenericConfig.can_path_from_air;\n }\n if (navigationGenericConfig.can_path_over_water !== void 0) {\n navigationGenericConfigObj.can_path_over_water =\n navigationGenericConfig.can_path_over_water;\n }\n if (navigationGenericConfig.can_sink !== void 0) {\n navigationGenericConfigObj.can_sink =\n navigationGenericConfig.can_sink;\n }\n if (navigationGenericConfig.can_swim !== void 0) {\n navigationGenericConfigObj.can_swim =\n navigationGenericConfig.can_swim;\n }\n if (navigationGenericConfig.can_walk !== void 0) {\n navigationGenericConfigObj.can_walk =\n navigationGenericConfig.can_walk;\n }\n if (navigationGenericConfig.can_walk_in_lava !== void 0) {\n navigationGenericConfigObj.can_walk_in_lava =\n navigationGenericConfig.can_walk_in_lava;\n }\n if (navigationGenericConfig.is_amphibious !== void 0) {\n navigationGenericConfigObj.is_amphibious =\n navigationGenericConfig.is_amphibious;\n }\n if (navigationGenericConfig.using_door_annotation !== void 0) {\n navigationGenericConfigObj.using_door_annotation =\n navigationGenericConfig.using_door_annotation;\n }\n ApplyComponents['minecraft:navigation.generic'] =\n navigationGenericConfigObj;\n }\n const navigationHoverConfig = components['minecraft:navigation.hover'];\n if (navigationHoverConfig !== void 0) {\n const navigationHoverConfigObj: any = {};\n // Using type assertion to bypass TypeScript errors temporarily\n const hoverConfig = navigationHoverConfig;\n if (hoverConfig.avoid_damage_blocks !== void 0) {\n navigationHoverConfigObj.avoid_damage_blocks =\n hoverConfig.avoid_damage_blocks;\n }\n if (navigationHoverConfig.avoid_portals !== void 0) {\n navigationHoverConfigObj.avoid_portals =\n navigationHoverConfig.avoid_portals;\n }\n if (navigationHoverConfig.avoid_sun !== void 0) {\n navigationHoverConfigObj.avoid_sun =\n navigationHoverConfig.avoid_sun;\n }\n if (navigationHoverConfig.avoid_water !== void 0) {\n navigationHoverConfigObj.avoid_water =\n navigationHoverConfig.avoid_water;\n }\n if (navigationHoverConfig.blocks_to_avoid !== void 0) {\n navigationHoverConfigObj.blocks_to_avoid = [\n ...navigationHoverConfig.blocks_to_avoid,\n ];\n }\n if (navigationHoverConfig.can_breach !== void 0) {\n navigationHoverConfigObj.can_breach =\n navigationHoverConfig.can_breach;\n }\n if (navigationHoverConfig.can_break_doors !== void 0) {\n navigationHoverConfigObj.can_break_doors =\n navigationHoverConfig.can_break_doors;\n }\n if (navigationHoverConfig.can_jump !== void 0) {\n navigationHoverConfigObj.can_jump = navigationHoverConfig.can_jump;\n }\n if (navigationHoverConfig.can_open_doors !== void 0) {\n navigationHoverConfigObj.can_open_doors =\n navigationHoverConfig.can_open_doors;\n }\n if (navigationHoverConfig.can_open_iron_doors !== void 0) {\n navigationHoverConfigObj.can_open_iron_doors =\n navigationHoverConfig.can_open_iron_doors;\n }\n if (navigationHoverConfig.can_pass_doors !== void 0) {\n navigationHoverConfigObj.can_pass_doors =\n navigationHoverConfig.can_pass_doors;\n }\n if (navigationHoverConfig.can_path_from_air !== void 0) {\n navigationHoverConfigObj.can_path_from_air =\n navigationHoverConfig.can_path_from_air;\n }\n if (navigationHoverConfig.can_path_over_water !== void 0) {\n navigationHoverConfigObj.can_path_over_water =\n navigationHoverConfig.can_path_over_water;\n }\n if (navigationHoverConfig.can_sink !== void 0) {\n navigationHoverConfigObj.can_sink = navigationHoverConfig.can_sink;\n }\n if (navigationHoverConfig.can_swim !== void 0) {\n navigationHoverConfigObj.can_swim = navigationHoverConfig.can_swim;\n }\n if (navigationHoverConfig.can_walk !== void 0) {\n navigationHoverConfigObj.can_walk = navigationHoverConfig.can_walk;\n }\n if (navigationHoverConfig.can_walk_in_lava !== void 0) {\n navigationHoverConfigObj.can_walk_in_lava =\n navigationHoverConfig.can_walk_in_lava;\n }\n if (navigationHoverConfig.is_amphibious !== void 0) {\n navigationHoverConfigObj.is_amphibious =\n navigationHoverConfig.is_amphibious;\n }\n if (navigationHoverConfig.using_door_annotation !== void 0) {\n navigationHoverConfigObj.using_door_annotation =\n navigationHoverConfig.using_door_annotation;\n }\n ApplyComponents['minecraft:navigation.hover'] =\n navigationHoverConfigObj;\n }\n const navigationSwimConfig = components['minecraft:navigation.swim'];\n if (navigationSwimConfig !== void 0) {\n const navigationSwimConfigObj: any = {};\n if (navigationSwimConfig.avoid_damage_blocks !== void 0) {\n navigationSwimConfigObj.avoid_damage_blocks =\n navigationSwimConfig.avoid_damage_blocks;\n }\n if (navigationSwimConfig.avoid_portals !== void 0) {\n navigationSwimConfigObj.avoid_portals =\n navigationSwimConfig.avoid_portals;\n }\n if (navigationSwimConfig.avoid_sun !== void 0) {\n navigationSwimConfigObj.avoid_sun = navigationSwimConfig.avoid_sun;\n }\n if (navigationSwimConfig.avoid_water !== void 0) {\n navigationSwimConfigObj.avoid_water =\n navigationSwimConfig.avoid_water;\n }\n if (navigationSwimConfig.can_breach !== void 0) {\n navigationSwimConfigObj.can_breach =\n navigationSwimConfig.can_breach;\n }\n if (navigationSwimConfig.can_break_doors !== void 0) {\n navigationSwimConfigObj.can_break_doors =\n navigationSwimConfig.can_break_doors;\n }\n if (navigationSwimConfig.can_jump !== void 0) {\n navigationSwimConfigObj.can_jump = navigationSwimConfig.can_jump;\n }\n if (navigationSwimConfig.can_open_doors !== void 0) {\n navigationSwimConfigObj.can_open_doors =\n navigationSwimConfig.can_open_doors;\n }\n if (navigationSwimConfig.can_open_iron_doors !== void 0) {\n navigationSwimConfigObj.can_open_iron_doors =\n navigationSwimConfig.can_open_iron_doors;\n }\n if (navigationSwimConfig.can_pass_doors !== void 0) {\n navigationSwimConfigObj.can_pass_doors =\n navigationSwimConfig.can_pass_doors;\n }\n if (navigationSwimConfig.can_path_from_air !== void 0) {\n navigationSwimConfigObj.can_path_from_air =\n navigationSwimConfig.can_path_from_air;\n }\n if (navigationSwimConfig.can_path_over_water !== void 0) {\n navigationSwimConfigObj.can_path_over_water =\n navigationSwimConfig.can_path_over_water;\n }\n if (navigationSwimConfig.can_sink !== void 0) {\n navigationSwimConfigObj.can_sink = navigationSwimConfig.can_sink;\n }\n if (navigationSwimConfig.can_swim !== void 0) {\n navigationSwimConfigObj.can_swim = navigationSwimConfig.can_swim;\n }\n if (navigationSwimConfig.can_walk !== void 0) {\n navigationSwimConfigObj.can_walk = navigationSwimConfig.can_walk;\n }\n if (navigationSwimConfig.can_walk_in_lava !== void 0) {\n navigationSwimConfigObj.can_walk_in_lava =\n navigationSwimConfig.can_walk_in_lava;\n }\n if (navigationSwimConfig.is_amphibious !== void 0) {\n navigationSwimConfigObj.is_amphibious =\n navigationSwimConfig.is_amphibious;\n }\n if (navigationSwimConfig.using_door_annotation !== void 0) {\n navigationSwimConfigObj.using_door_annotation =\n navigationSwimConfig.using_door_annotation;\n }\n ApplyComponents['minecraft:navigation.swim'] =\n navigationSwimConfigObj;\n }\n const navigationWalkConfig = components['minecraft:navigation.walk'];\n if (navigationWalkConfig !== void 0) {\n const navigationWalkConfigObj: any = {};\n if (navigationWalkConfig.avoid_damage_blocks !== void 0) {\n navigationWalkConfigObj.avoid_damage_blocks =\n navigationWalkConfig.avoid_damage_blocks;\n }\n if (navigationWalkConfig.avoid_portals !== void 0) {\n navigationWalkConfigObj.avoid_portals =\n navigationWalkConfig.avoid_portals;\n }\n if (navigationWalkConfig.avoid_sun !== void 0) {\n navigationWalkConfigObj.avoid_sun = navigationWalkConfig.avoid_sun;\n }\n if (navigationWalkConfig.avoid_water !== void 0) {\n navigationWalkConfigObj.avoid_water =\n navigationWalkConfig.avoid_water;\n }\n if (navigationWalkConfig.blocks_to_avoid !== void 0) {\n navigationWalkConfigObj.blocks_to_avoid = [\n ...navigationWalkConfig.blocks_to_avoid,\n ].map(item => {\n if (typeof item === 'object' && item !== null) {\n // 处理包含name和tags的复杂对象\n const blockObj: any = {};\n if (item.name !== void 0) {\n blockObj.name = item.name;\n }\n if (item.tags !== void 0) {\n blockObj.tags = item.tags;\n }\n return blockObj;\n }\n return item; // 简单字符串\n });\n }\n if (navigationWalkConfig.can_breach !== void 0) {\n navigationWalkConfigObj.can_breach =\n navigationWalkConfig.can_breach;\n }\n if (navigationWalkConfig.can_break_doors !== void 0) {\n navigationWalkConfigObj.can_break_doors =\n navigationWalkConfig.can_break_doors;\n }\n if (navigationWalkConfig.can_jump !== void 0) {\n navigationWalkConfigObj.can_jump = navigationWalkConfig.can_jump;\n }\n if (navigationWalkConfig.can_open_doors !== void 0) {\n navigationWalkConfigObj.can_open_doors =\n navigationWalkConfig.can_open_doors;\n }\n if (navigationWalkConfig.can_open_iron_doors !== void 0) {\n navigationWalkConfigObj.can_open_iron_doors =\n navigationWalkConfig.can_open_iron_doors;\n }\n if (navigationWalkConfig.can_pass_doors !== void 0) {\n navigationWalkConfigObj.can_pass_doors =\n navigationWalkConfig.can_pass_doors;\n }\n if (navigationWalkConfig.can_path_from_air !== void 0) {\n navigationWalkConfigObj.can_path_from_air =\n navigationWalkConfig.can_path_from_air;\n }\n if (navigationWalkConfig.can_path_over_water !== void 0) {\n navigationWalkConfigObj.can_path_over_water =\n navigationWalkConfig.can_path_over_water;\n }\n if (navigationWalkConfig.can_sink !== void 0) {\n navigationWalkConfigObj.can_sink = navigationWalkConfig.can_sink;\n }\n if (navigationWalkConfig.can_swim !== void 0) {\n navigationWalkConfigObj.can_swim = navigationWalkConfig.can_swim;\n }\n if (navigationWalkConfig.can_walk !== void 0) {\n navigationWalkConfigObj.can_walk = navigationWalkConfig.can_walk;\n }\n if (navigationWalkConfig.can_walk_in_lava !== void 0) {\n navigationWalkConfigObj.can_walk_in_lava =\n navigationWalkConfig.can_walk_in_lava;\n }\n if (navigationWalkConfig.is_amphibious !== void 0) {\n navigationWalkConfigObj.is_amphibious =\n navigationWalkConfig.is_amphibious;\n }\n if (navigationWalkConfig.using_door_annotation !== void 0) {\n navigationWalkConfigObj.using_door_annotation =\n navigationWalkConfig.using_door_annotation;\n }\n ApplyComponents['minecraft:navigation.walk'] =\n navigationWalkConfigObj;\n }\n const preferredPathConfig = components['minecraft:preferred_path'];\n if (preferredPathConfig !== void 0) {\n const preferredPathConfigObj: any = {};\n if (preferredPathConfig.default_block_cost !== void 0) {\n preferredPathConfigObj.default_block_cost =\n preferredPathConfig.default_block_cost;\n }\n if (preferredPathConfig.jump_cost !== void 0) {\n preferredPathConfigObj.jump_cost = preferredPathConfig.jump_cost;\n }\n if (preferredPathConfig.max_fall_blocks !== void 0) {\n preferredPathConfigObj.max_fall_blocks =\n preferredPathConfig.max_fall_blocks;\n }\n if (preferredPathConfig.preferred_path_blocks !== void 0) {\n preferredPathConfigObj.preferred_path_blocks = [\n ...preferredPathConfig.preferred_path_blocks,\n ];\n }\n ApplyComponents['minecraft:preferred_path'] = preferredPathConfigObj;\n }\n const offspringConfig = components['minecraft:offspring'];\n if (offspringConfig !== void 0) {\n const offspringConfigObj: any = {};\n if (offspringConfig.born_event !== void 0) {\n offspringConfigObj.born_event = offspringConfig.born_event;\n }\n if (offspringConfig.cooldown !== void 0) {\n offspringConfigObj.cooldown = offspringConfig.cooldown;\n }\n if (offspringConfig.mutation_factor !== void 0) {\n const mutationFactorObj: any = {};\n if (offspringConfig.mutation_factor.color !== void 0) {\n mutationFactorObj.color = offspringConfig.mutation_factor.color;\n }\n if (offspringConfig.mutation_factor.gene !== void 0) {\n mutationFactorObj.gene = offspringConfig.mutation_factor.gene;\n }\n if (offspringConfig.mutation_factor.extra !== void 0) {\n mutationFactorObj.extra = offspringConfig.mutation_factor.extra;\n }\n if (offspringConfig.mutation_factor.health !== void 0) {\n mutationFactorObj.health = offspringConfig.mutation_factor.health;\n }\n if (offspringConfig.mutation_factor.speed !== void 0) {\n mutationFactorObj.speed = offspringConfig.mutation_factor.speed;\n }\n if (Object.keys(mutationFactorObj).length > 0) {\n offspringConfigObj.mutation_factor = mutationFactorObj;\n }\n }\n if (offspringConfig.breed_event !== void 0) {\n offspringConfigObj.breed_event = offspringConfig.breed_event;\n }\n if (offspringConfig.breed_items !== void 0) {\n offspringConfigObj.breed_items = [...offspringConfig.breed_items];\n }\n if (offspringConfig.delayed_growth !== void 0) {\n offspringConfigObj.delayed_growth = offspringConfig.delayed_growth;\n }\n if (offspringConfig.deny_parents_baby_variant !== void 0) {\n offspringConfigObj.deny_parents_baby_variant =\n offspringConfig.deny_parents_baby_variant;\n }\n if (offspringConfig.grow_up_duration !== void 0) {\n offspringConfigObj.grow_up_duration =\n offspringConfig.grow_up_duration;\n }\n if (offspringConfig.initial_variant !== void 0) {\n offspringConfigObj.initial_variant =\n offspringConfig.initial_variant;\n }\n if (offspringConfig.inheritance_chance !== void 0) {\n const inheritanceChanceObj: any = {};\n if (offspringConfig.inheritance_chance.angry !== void 0) {\n inheritanceChanceObj.angry =\n offspringConfig.inheritance_chance.angry;\n }\n if (offspringConfig.inheritance_chance.attacker !== void 0) {\n inheritanceChanceObj.attacker =\n offspringConfig.inheritance_chance.attacker;\n }\n if (offspringConfig.inheritance_chance.color !== void 0) {\n inheritanceChanceObj.color =\n offspringConfig.inheritance_chance.color;\n }\n if (offspringConfig.inheritance_chance.gene !== void 0) {\n inheritanceChanceObj.gene =\n offspringConfig.inheritance_chance.gene;\n }\n if (offspringConfig.inheritance_chance.variant !== void 0) {\n inheritanceChanceObj.variant =\n offspringConfig.inheritance_chance.variant;\n }\n if (Object.keys(inheritanceChanceObj).length > 0) {\n offspringConfigObj.inheritance_chance = inheritanceChanceObj;\n }\n }\n if (offspringConfig.num_variants !== void 0) {\n offspringConfigObj.num_variants = offspringConfig.num_variants;\n }\n if (offspringConfig.parent_centric_attribute_blending !== void 0) {\n const attributeBlendingObj: any = {};\n if (\n offspringConfig.parent_centric_attribute_blending.attribute !==\n void 0\n ) {\n attributeBlendingObj.attribute =\n offspringConfig.parent_centric_attribute_blending.attribute;\n }\n if (\n offspringConfig.parent_centric_attribute_blending.dampening !==\n void 0\n ) {\n attributeBlendingObj.dampening =\n offspringConfig.parent_centric_attribute_blending.dampening;\n }\n if (Object.keys(attributeBlendingObj).length > 0) {\n offspringConfigObj.parent_centric_attribute_blending =\n attributeBlendingObj;\n }\n }\n if (offspringConfig.should_baby_face_parent !== void 0) {\n offspringConfigObj.should_baby_face_parent =\n offspringConfig.should_baby_face_parent;\n }\n if (offspringConfig.variants !== void 0) {\n offspringConfigObj.variants = { ...offspringConfig.variants };\n }\n ApplyComponents['minecraft:offspring'] = offspringConfigObj;\n }\n }\n }\n\n return result;\n }\n\n // Setter方法\n public setId(newValue: string): void {\n if (\n typeof newValue == 'string' &&\n /[a-zA-Z0-9_]:[a-zA-Z0-9_]/.test(newValue)\n ) {\n this.#opt.id = newValue;\n } else {\n throw new Error('[set error]: id: type error or invalid format');\n }\n }\n\n public setFormat(newValue: string): void {\n if (typeof newValue == 'string' && /\\d.\\d.\\d/.test(newValue)) {\n this.#opt.format = newValue;\n } else {\n throw new Error('[set error]: format: type error or invalid format');\n }\n }\n\n public setIsSpawnable(value: boolean): void {\n if (typeof value === 'boolean') {\n this.#opt.is_spawnable = value;\n } else {\n throw new TypeError('[set error]: is_spawnable: type error');\n }\n }\n\n public setIsSummonable(value: boolean): void {\n if (typeof value === 'boolean') {\n this.#opt.is_summonable = value;\n } else {\n throw new TypeError('[set error]: is_summonable: type error');\n }\n }\n\n public setAddrider(config: {\n entity_type?: string;\n riders?: Array<{\n entity_type: string;\n spawn_event?: string;\n }>;\n spawn_event?: string;\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: addrider: must be an object configuration');\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n this.#opt.components.addrider = config;\n }\n\n public setAdmireItem(config: {\n cooldown_after_being_attacked?: number;\n duration?: number;\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: admire_item: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (\n config.cooldown_after_being_attacked !== void 0 &&\n typeof config.cooldown_after_being_attacked !== 'number'\n ) {\n throw new TypeError(\n '[set error]: admire_item: cooldown_after_being_attacked must be a number',\n );\n }\n if (config.duration !== void 0 && typeof config.duration !== 'number') {\n throw new TypeError(\n '[set error]: admire_item: duration must be a number',\n );\n }\n\n this.#opt.components['minecraft:admire_item'] = config;\n }\n\n public setAgeable(config: {\n drop_items?: string[];\n duration?: number;\n feed_items?:\n | string\n | string[]\n | Array<{\n growth?: number;\n item: string;\n }>;\n grow_up?:\n | string\n | {\n event: string;\n target: string;\n };\n interact_filters?: any;\n pause_growth_items?: string[];\n reset_growth_items?: string[];\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: ageable: must be an object configuration');\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.duration !== void 0 && typeof config.duration !== 'number') {\n throw new TypeError('[set error]: ageable: duration must be a number');\n }\n if (config.feed_items !== void 0) {\n if (\n !(\n typeof config.feed_items === 'string' ||\n Array.isArray(config.feed_items)\n )\n ) {\n throw new TypeError(\n '[set error]: ageable: feed_items must be a string or array',\n );\n }\n }\n\n this.#opt.components['minecraft:ageable'] = config;\n }\n\n public setAngerLevel(config: {\n anger_decrement_interval?: number;\n angry_boost?: number;\n angry_threshold?: number;\n broadcast_anger?: boolean;\n broadcast_anger_on_attack?: boolean;\n broadcast_filters?: any;\n broadcast_range?: number;\n broadcast_targets?: string[];\n calm_event?: string;\n default_annoyingness?: number;\n default_projectile_annoyingness?: number;\n duration?: number;\n duration_delta?: number;\n filters?: any;\n max_anger?: number;\n nuisance_filter?: any;\n on_increase_sounds?: Array<{\n condition?: string;\n sound?: string;\n }>;\n remove_targets_below_angry_threshold?: boolean;\n sound_interval?: { min: number; max: number };\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: anger_level: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (\n config.anger_decrement_interval !== void 0 &&\n typeof config.anger_decrement_interval !== 'number'\n ) {\n throw new TypeError(\n '[set error]: anger_level: anger_decrement_interval must be a number',\n );\n }\n if (\n config.angry_boost !== void 0 &&\n (typeof config.angry_boost !== 'number' || config.angry_boost < 0)\n ) {\n throw new TypeError(\n '[set error]: anger_level: angry_boost must be a number >= 0',\n );\n }\n if (\n config.angry_threshold !== void 0 &&\n (typeof config.angry_threshold !== 'number' || config.angry_threshold < 0)\n ) {\n throw new TypeError(\n '[set error]: anger_level: angry_threshold must be a number >= 0',\n );\n }\n if (\n config.max_anger !== void 0 &&\n (typeof config.max_anger !== 'number' || config.max_anger < 0)\n ) {\n throw new TypeError(\n '[set error]: anger_level: max_anger must be a number >= 0',\n );\n }\n if (\n config.broadcast_range !== void 0 &&\n (typeof config.broadcast_range !== 'number' || config.broadcast_range < 0)\n ) {\n throw new TypeError(\n '[set error]: anger_level: broadcast_range must be a number >= 0',\n );\n }\n if (\n config.broadcast_targets !== void 0 &&\n !Array.isArray(config.broadcast_targets)\n ) {\n throw new TypeError(\n '[set error]: anger_level: broadcast_targets must be an array',\n );\n }\n\n this.#opt.components['minecraft:anger_level'] = config;\n }\n\n public setAngry(config: {\n angry_sound?: string;\n broadcast_anger?: boolean;\n broadcast_anger_on_attack?: boolean;\n broadcast_anger_on_being_attacked?: boolean;\n broadcast_anger_when_dying?: boolean;\n broadcast_filters?: any;\n broadcast_range?: number;\n broadcast_targets?: string[];\n calm_event?: string | { event: string; target: string };\n duration?: number;\n duration_delta?: number;\n filters?: any;\n sound_interval?: { min: number; max: number };\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: angry: must be an object configuration');\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.duration !== void 0 && typeof config.duration !== 'number') {\n throw new TypeError('[set error]: angry: duration must be a number');\n }\n if (\n config.duration_delta !== void 0 &&\n typeof config.duration_delta !== 'number'\n ) {\n throw new TypeError(\n '[set error]: angry: duration_delta must be a number',\n );\n }\n if (\n config.broadcast_range !== void 0 &&\n (typeof config.broadcast_range !== 'number' || config.broadcast_range < 0)\n ) {\n throw new TypeError(\n '[set error]: angry: broadcast_range must be a number >= 0',\n );\n }\n if (\n config.broadcast_targets !== void 0 &&\n !Array.isArray(config.broadcast_targets)\n ) {\n throw new TypeError(\n '[set error]: angry: broadcast_targets must be an array',\n );\n }\n\n this.#opt.components['minecraft:angry'] = config;\n }\n\n public setAnnotationBreakDoor(config: {\n break_time?: number;\n min_difficulty?: 'hard' | 'normal' | 'easy' | 'peaceful';\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: annotation.break_door: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (\n config.break_time !== void 0 &&\n (typeof config.break_time !== 'number' || config.break_time < 0)\n ) {\n throw new TypeError(\n '[set error]: annotation.break_door: break_time must be a number >= 0',\n );\n }\n if (\n config.min_difficulty !== void 0 &&\n !['hard', 'normal', 'easy', 'peaceful'].includes(config.min_difficulty)\n ) {\n throw new TypeError(\n \"[set error]: annotation.break_door: min_difficulty must be one of 'hard', 'normal', 'easy', 'peaceful'\",\n );\n }\n\n this.#opt.components['minecraft:annotation.break_door'] = config;\n }\n\n public setAnnotationOpenDoor(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n // minecraft:annotation.open_door 是一个空对象组件\n this.#opt.components['minecraft:annotation.open_door'] = {};\n }\n\n public setAttack(config: {\n damage?:\n | number\n | [number, number]\n | { range_min: number; range_max: number };\n effect_duration?: number;\n effect_name?: string;\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: attack: must be an object configuration');\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.damage !== void 0) {\n if (typeof config.damage === 'number') {\n // 单一数字,有效\n } else if (\n Array.isArray(config.damage) &&\n config.damage.length === 2 &&\n typeof config.damage[0] === 'number' &&\n typeof config.damage[1] === 'number'\n ) {\n // 数组[min, max],有效\n } else if (\n typeof config.damage === 'object' &&\n config.damage !== null &&\n 'range_min' in config.damage &&\n 'range_max' in config.damage &&\n typeof config.damage.range_min === 'number' &&\n typeof config.damage.range_max === 'number'\n ) {\n // 对象{range_min, range_max},有效\n } else {\n throw new TypeError(\n '[set error]: attack: damage must be a number, [min, max] array, or {range_min, range_max} object',\n );\n }\n }\n if (\n config.effect_duration !== void 0 &&\n typeof config.effect_duration !== 'number'\n ) {\n throw new TypeError(\n '[set error]: attack: effect_duration must be a number',\n );\n }\n\n this.#opt.components['minecraft:attack'] = config;\n }\n\n public setAreaAttack(config: {\n cause?: string;\n damage_cooldown?: number;\n damage_per_tick?: number;\n damage_range?: number;\n entity_filter?: any;\n play_attack_sound?: boolean;\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: area_attack: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (\n config.damage_cooldown !== void 0 &&\n (typeof config.damage_cooldown !== 'number' || config.damage_cooldown < 0)\n ) {\n throw new TypeError(\n '[set error]: area_attack: damage_cooldown must be a number >= 0',\n );\n }\n if (\n config.damage_per_tick !== void 0 &&\n (typeof config.damage_per_tick !== 'number' || config.damage_per_tick < 0)\n ) {\n throw new TypeError(\n '[set error]: area_attack: damage_per_tick must be a number >= 0',\n );\n }\n if (\n config.damage_range !== void 0 &&\n (typeof config.damage_range !== 'number' || config.damage_range < 0)\n ) {\n throw new TypeError(\n '[set error]: area_attack: damage_range must be a number >= 0',\n );\n }\n if (\n config.play_attack_sound !== void 0 &&\n typeof config.play_attack_sound !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: area_attack: play_attack_sound must be a boolean',\n );\n }\n\n this.#opt.components['minecraft:area_attack'] = config;\n }\n\n public setAttackCooldown(config: {\n attack_cooldown_complete_event?:\n | string\n | { event: string; target?: string };\n attack_cooldown_time?: number | { min: number; max: number };\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: attack_cooldown: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.attack_cooldown_time !== void 0) {\n if (typeof config.attack_cooldown_time === 'number') {\n // 单一数字,有效\n } else if (\n typeof config.attack_cooldown_time === 'object' &&\n config.attack_cooldown_time !== null &&\n 'min' in config.attack_cooldown_time &&\n 'max' in config.attack_cooldown_time &&\n typeof config.attack_cooldown_time.min === 'number' &&\n typeof config.attack_cooldown_time.max === 'number'\n ) {\n // 对象{min, max},有效\n } else {\n throw new TypeError(\n '[set error]: attack_cooldown: attack_cooldown_time must be a number or {min, max} object',\n );\n }\n }\n\n this.#opt.components['minecraft:attack_cooldown'] = config;\n }\n\n public setBalloonable(config: {\n mass?: number;\n max_distance?: number;\n on_balloon?: any;\n on_unballoon?: any;\n soft_distance?: number;\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: balloonable: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.mass !== void 0 && typeof config.mass !== 'number') {\n throw new TypeError('[set error]: balloonable: mass must be a number');\n }\n if (\n config.max_distance !== void 0 &&\n (typeof config.max_distance !== 'number' || config.max_distance < 0)\n ) {\n throw new TypeError(\n '[set error]: balloonable: max_distance must be a number >= 0',\n );\n }\n if (\n config.soft_distance !== void 0 &&\n (typeof config.soft_distance !== 'number' || config.soft_distance < 0)\n ) {\n throw new TypeError(\n '[set error]: balloonable: soft_distance must be a number >= 0',\n );\n }\n\n this.#opt.components['minecraft:balloonable'] = config;\n }\n\n public setBarter(config: {\n barter_table?: string;\n cooldown_after_being_attacked?: { min: number; max: number };\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: barter: must be an object configuration');\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.cooldown_after_being_attacked !== void 0) {\n if (\n typeof config.cooldown_after_being_attacked !== 'object' ||\n config.cooldown_after_being_attacked === null ||\n !('min' in config.cooldown_after_being_attacked) ||\n !('max' in config.cooldown_after_being_attacked) ||\n typeof config.cooldown_after_being_attacked.min !== 'number' ||\n typeof config.cooldown_after_being_attacked.max !== 'number'\n ) {\n throw new TypeError(\n '[set error]: barter: cooldown_after_being_attacked must be a {min, max} object',\n );\n }\n }\n\n this.#opt.components['minecraft:barter'] = config;\n }\n\n public setBlockClimber(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n // minecraft:block_climber 是一个空对象组件\n this.#opt.components['minecraft:block_climber'] = {};\n }\n\n public setBlockSensor(config: {\n on_break?: Array<{\n block_list?: string[];\n on_block_broken?: string;\n }>;\n sensor_radius?: number;\n sources?: any;\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: block_sensor: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (\n config.sensor_radius !== void 0 &&\n (typeof config.sensor_radius !== 'number' ||\n config.sensor_radius < 0 ||\n config.sensor_radius > 32.0)\n ) {\n throw new TypeError(\n '[set error]: block_sensor: sensor_radius must be a number between 0 and 32.0',\n );\n }\n if (config.on_break !== void 0 && !Array.isArray(config.on_break)) {\n throw new TypeError(\n '[set error]: block_sensor: on_break must be an array',\n );\n }\n\n this.#opt.components['minecraft:block_sensor'] = config;\n }\n\n public setBodyRotationAxisAligned(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n // minecraft:body_rotation_axis_aligned 是一个空对象组件\n this.#opt.components['minecraft:body_rotation_axis_aligned'] = {};\n }\n\n public setBodyRotationAlwaysFollowsHead(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n // minecraft:body_rotation_always_follows_head 是一个空对象组件\n this.#opt.components['minecraft:body_rotation_always_follows_head'] = {};\n }\n\n public setBodyRotationBlocked(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n // minecraft:body_rotation_blocked 是一个空对象组件\n this.#opt.components['minecraft:body_rotation_blocked'] = {};\n }\n\n public setBodyRotationLockedToVehicle(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n // minecraft:body_rotation_locked_to_vehicle 是一个空对象组件\n this.#opt.components['minecraft:body_rotation_locked_to_vehicle'] = {};\n }\n\n public setBoostable(config: {\n boost_items?: Array<{\n damage?: number;\n item: string;\n replace_item?: string;\n }>;\n duration?: number;\n speed_multiplier?: number;\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: boostable: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.boost_items !== void 0 && !Array.isArray(config.boost_items)) {\n throw new TypeError(\n '[set error]: boostable: boost_items must be an array',\n );\n }\n if (config.boost_items !== void 0) {\n for (const item of config.boost_items) {\n if (\n !item ||\n typeof item !== 'object' ||\n !item.item ||\n typeof item.item !== 'string'\n ) {\n throw new TypeError(\n \"[set error]: boostable: boost_items must contain objects with 'item' string property\",\n );\n }\n if (item.damage !== void 0 && typeof item.damage !== 'number') {\n throw new TypeError(\n '[set error]: boostable: boost_items item damage must be a number',\n );\n }\n }\n }\n if (\n config.duration !== void 0 &&\n (typeof config.duration !== 'number' || config.duration < 0)\n ) {\n throw new TypeError(\n '[set error]: boostable: duration must be a number >= 0',\n );\n }\n if (\n config.speed_multiplier !== void 0 &&\n (typeof config.speed_multiplier !== 'number' ||\n config.speed_multiplier <= 0)\n ) {\n throw new TypeError(\n '[set error]: boostable: speed_multiplier must be a number > 0',\n );\n }\n\n this.#opt.components['minecraft:boostable'] = config;\n }\n\n public setBoss(config: {\n hud_range?: number;\n name?: string;\n should_darken_sky?: boolean;\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: boss: must be an object configuration');\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n if (\n config.hud_range !== void 0 &&\n (typeof config.hud_range !== 'number' || config.hud_range < 0)\n ) {\n throw new TypeError('[set error]: boss: hud_range must be a number >= 0');\n }\n\n if (config.name !== void 0 && typeof config.name !== 'string') {\n throw new TypeError('[set error]: boss: name must be a string');\n }\n\n if (\n config.should_darken_sky !== void 0 &&\n typeof config.should_darken_sky !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: boss: should_darken_sky must be a boolean',\n );\n }\n\n this.#opt.components['minecraft:boss'] = config;\n }\n\n public setBreakBlocks(config: { breakable_blocks?: string[] }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: break_blocks: must be an object configuration',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n if (config.breakable_blocks !== void 0) {\n if (!Array.isArray(config.breakable_blocks)) {\n throw new TypeError(\n '[set error]: break_blocks: breakable_blocks must be an array',\n );\n }\n for (const block of config.breakable_blocks) {\n if (typeof block !== 'string') {\n throw new TypeError(\n '[set error]: break_blocks: breakable_blocks must contain string values',\n );\n }\n }\n }\n\n this.#opt.components['minecraft:break_blocks'] = config;\n }\n\n public setBreathable(config: {\n breathe_blocks?: string[];\n breathes_air?: boolean;\n breathes_lava?: boolean;\n breathes_solids?: boolean;\n breathes_water?: boolean;\n generates_bubbles?: boolean;\n inhale_time?: number;\n non_breathe_blocks?: string[];\n suffocate_time?: number;\n suffocateTime?: number;\n total_supply?: number;\n totalSupply?: number;\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: breathable: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n const arrayProperties = [\n { prop: 'breathe_blocks', name: 'breathe_blocks' },\n { prop: 'non_breathe_blocks', name: 'non_breathe_blocks' },\n ];\n\n for (const { prop, name } of arrayProperties) {\n if (config[prop as keyof typeof config] !== void 0) {\n const value = config[prop as keyof typeof config];\n if (!Array.isArray(value)) {\n throw new TypeError(\n `[set error]: breathable: ${name} must be an array`,\n );\n }\n for (const item of value) {\n if (typeof item !== 'string') {\n throw new TypeError(\n `[set error]: breathable: ${name} must contain string values`,\n );\n }\n }\n }\n }\n const booleanProperties = [\n 'breathes_air',\n 'breathes_lava',\n 'breathes_solids',\n 'breathes_water',\n 'generates_bubbles',\n ];\n\n for (const prop of booleanProperties) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: breathable: ${prop} must be a boolean`,\n );\n }\n }\n const numberProperties = [\n 'inhale_time',\n 'suffocate_time',\n 'suffocateTime',\n 'total_supply',\n 'totalSupply',\n ];\n\n for (const prop of numberProperties) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'number'\n ) {\n throw new TypeError(\n `[set error]: breathable: ${prop} must be a number`,\n );\n }\n }\n\n this.#opt.components['minecraft:breathable'] = config;\n }\n\n public setBribeable(config: {\n bribe_cooldown?: number;\n bribe_items?: string[] | string;\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: bribeable: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (\n config.bribe_cooldown !== void 0 &&\n (typeof config.bribe_cooldown !== 'number' || config.bribe_cooldown < 0)\n ) {\n throw new TypeError(\n '[set error]: bribeable: bribe_cooldown must be a number >= 0',\n );\n }\n if (config.bribe_items !== void 0) {\n if (\n typeof config.bribe_items !== 'string' &&\n !Array.isArray(config.bribe_items)\n ) {\n throw new TypeError(\n '[set error]: bribeable: bribe_items must be a string or an array of strings',\n );\n }\n\n // 如果是数组,验证数组元素都是字符串\n if (Array.isArray(config.bribe_items)) {\n for (const item of config.bribe_items) {\n if (typeof item !== 'string') {\n throw new TypeError(\n '[set error]: bribeable: bribe_items array must contain string values',\n );\n }\n }\n }\n }\n\n this.#opt.components['minecraft:bribeable'] = config;\n }\n\n public setBreedable(config: {\n allow_sitting?: boolean;\n blend_attributes?: boolean;\n breed_cooldown?: number;\n breed_items?: string[] | string;\n breeds_with?:\n | Array<{\n baby_type?: string;\n breed_event?: string | { event: string; filters?: any };\n mate_type?: string;\n }>\n | {\n baby_type?: string;\n breed_event?: string | { event: string; filters?: any };\n mate_type?: string;\n };\n causes_pregnancy?: boolean;\n deny_parents_variant?: {\n chance?: number;\n max_variant?: string;\n min_variant?: string;\n };\n environment_requirements?: Array<{\n block_types?: string[];\n count?: number;\n radius?: number;\n }>;\n extra_baby_chance?: { min: number; max: number };\n inherit_tamed?: boolean;\n love_filters?: any;\n mutation_factor?: {\n color?: { min: number; max: number } | number;\n extra_variant?: { min: number; max: number } | number;\n variant?: { min: number; max: number } | number;\n };\n require_full_health?: boolean;\n require_tame?: boolean;\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: breedable: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n const booleanProperties = [\n 'allow_sitting',\n 'blend_attributes',\n 'causes_pregnancy',\n 'inherit_tamed',\n 'require_full_health',\n 'require_tame',\n ];\n\n for (const prop of booleanProperties) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: breedable: ${prop} must be a boolean`,\n );\n }\n }\n if (\n config.breed_cooldown !== void 0 &&\n (typeof config.breed_cooldown !== 'number' || config.breed_cooldown < 0)\n ) {\n throw new TypeError(\n '[set error]: breedable: breed_cooldown must be a number >= 0',\n );\n }\n if (config.breed_items !== void 0) {\n if (\n typeof config.breed_items !== 'string' &&\n !Array.isArray(config.breed_items)\n ) {\n throw new TypeError(\n '[set error]: breedable: breed_items must be a string or an array of strings',\n );\n }\n\n // 如果是数组,验证数组元素都是字符串\n if (Array.isArray(config.breed_items)) {\n for (const item of config.breed_items) {\n if (typeof item !== 'string') {\n throw new TypeError(\n '[set error]: breedable: breed_items array must contain string values',\n );\n }\n }\n }\n }\n if (config.extra_baby_chance !== void 0) {\n if (\n typeof config.extra_baby_chance !== 'object' ||\n config.extra_baby_chance === null ||\n typeof config.extra_baby_chance.min !== 'number' ||\n typeof config.extra_baby_chance.max !== 'number' ||\n config.extra_baby_chance.min < 0 ||\n config.extra_baby_chance.max < 0 ||\n config.extra_baby_chance.min > config.extra_baby_chance.max\n ) {\n throw new TypeError(\n '[set error]: breedable: extra_baby_chance must be an object with min and max numbers, where min <= max and both >= 0',\n );\n }\n }\n\n this.#opt.components['minecraft:breedable'] = config;\n }\n\n public setBuoyant(config: {\n apply_gravity?: boolean;\n base_buoyancy?: number;\n big_wave_probability?: number;\n big_wave_speed?: number;\n can_auto_step_from_liquid?: boolean;\n drag_down_on_buoyancy_removed?: number;\n liquid_blocks?: string[];\n movement_type?: 'waves' | 'bobbing' | 'none';\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: buoyant: must be an object configuration');\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n const booleanProperties = ['apply_gravity', 'can_auto_step_from_liquid'];\n for (const prop of booleanProperties) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'boolean'\n ) {\n throw new TypeError(`[set error]: buoyant: ${prop} must be a boolean`);\n }\n }\n const numberProperties = [\n 'base_buoyancy',\n 'big_wave_probability',\n 'big_wave_speed',\n 'drag_down_on_buoyancy_removed',\n ];\n for (const prop of numberProperties) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'number'\n ) {\n throw new TypeError(`[set error]: buoyant: ${prop} must be a number`);\n }\n\n // 特殊验证:big_wave_probability应在[0,1]范围内\n if (\n prop === 'big_wave_probability' &&\n config.big_wave_probability !== void 0 &&\n (config.big_wave_probability < 0 || config.big_wave_probability > 1)\n ) {\n throw new TypeError(\n '[set error]: buoyant: big_wave_probability must be between 0 and 1',\n );\n }\n }\n if (\n config.movement_type !== void 0 &&\n !['waves', 'bobbing', 'none'].includes(config.movement_type)\n ) {\n throw new TypeError(\n \"[set error]: buoyant: movement_type must be 'waves', 'bobbing', or 'none'\",\n );\n }\n if (config.liquid_blocks !== void 0) {\n if (!Array.isArray(config.liquid_blocks)) {\n throw new TypeError(\n '[set error]: buoyant: liquid_blocks must be an array',\n );\n }\n for (const block of config.liquid_blocks) {\n if (typeof block !== 'string') {\n throw new TypeError(\n '[set error]: buoyant: liquid_blocks must contain string values',\n );\n }\n }\n }\n\n this.#opt.components['minecraft:buoyant'] = config;\n }\n\n // 以下为新的空对象组件方法\n public setBurnsInDaylight(\n config: {\n protection_slot?:\n | 'slot.armor.body'\n | 'slot.armor.chest'\n | 'slot.armor.feet'\n | 'slot.armor.head'\n | 'slot.armor.legs'\n | 'slot.weapon.mainhand'\n | 'slot.weapon.offhand';\n } = {},\n ): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (\n config.protection_slot !== void 0 &&\n ![\n 'slot.armor.body',\n 'slot.armor.chest',\n 'slot.armor.feet',\n 'slot.armor.head',\n 'slot.armor.legs',\n 'slot.weapon.mainhand',\n 'slot.weapon.offhand',\n ].includes(config.protection_slot)\n ) {\n throw new TypeError(\n '[set error]: burns_in_daylight: protection_slot must be a valid armor slot',\n );\n }\n\n this.#opt.components['minecraft:burns_in_daylight'] = config;\n }\n\n public setCannotBeAttacked(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n // minecraft:cannot_be_attacked 是一个空对象组件\n this.#opt.components['minecraft:cannot_be_attacked'] = {};\n }\n\n public setCanClimb(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n // minecraft:can_climb 是一个空对象组件\n this.#opt.components['minecraft:can_climb'] = {};\n }\n\n public setCanFly(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n // minecraft:can_fly 是一个空对象组件\n this.#opt.components['minecraft:can_fly'] = {};\n }\n\n public setCanJoinRaid(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n // minecraft:can_join_raid 是一个空对象组件\n this.#opt.components['minecraft:can_join_raid'] = {};\n }\n\n public setCanPowerJump(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n // minecraft:can_power_jump 是一个空对象组件\n this.#opt.components['minecraft:can_power_jump'] = {};\n }\n\n public setCelebrateHunt(config: {\n broadcast?: boolean;\n celeberation_targets?: any;\n celebrate_sound?: string;\n duration?: number;\n radius?: number;\n sound_interval?: { min: number; max: number };\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: celebrate_hunt: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.broadcast !== void 0 && typeof config.broadcast !== 'boolean') {\n throw new TypeError(\n '[set error]: celebrate_hunt: broadcast must be a boolean',\n );\n }\n if (\n config.celebrate_sound !== void 0 &&\n typeof config.celebrate_sound !== 'string'\n ) {\n throw new TypeError(\n '[set error]: celebrate_hunt: celebrate_sound must be a string',\n );\n }\n const numberProperties = ['duration', 'radius'];\n for (const prop of numberProperties) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'number'\n ) {\n throw new TypeError(\n `[set error]: celebrate_hunt: ${prop} must be a number`,\n );\n }\n }\n if (config.duration !== void 0 && config.duration < 0) {\n throw new TypeError('[set error]: celebrate_hunt: duration must be >= 0');\n }\n if (config.radius !== void 0 && config.radius < 0) {\n throw new TypeError('[set error]: celebrate_hunt: radius must be >= 0');\n }\n if (config.sound_interval !== void 0) {\n if (\n typeof config.sound_interval !== 'object' ||\n config.sound_interval === null ||\n typeof config.sound_interval.min !== 'number' ||\n typeof config.sound_interval.max !== 'number' ||\n config.sound_interval.min < 0 ||\n config.sound_interval.max < 0 ||\n config.sound_interval.min > config.sound_interval.max\n ) {\n throw new TypeError(\n '[set error]: celebrate_hunt: sound_interval must be an object with min and max numbers, where min <= max and both >= 0',\n );\n }\n }\n\n this.#opt.components['minecraft:celebrate_hunt'] = config;\n }\n\n public setCollisionBox(\n config: {\n height?: number;\n width?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: collision_box: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.height !== void 0) {\n if (typeof config.height !== 'number') {\n throw new TypeError(\n '[set error]: collision_box: height must be a number',\n );\n }\n if (config.height < 0) {\n throw new TypeError('[set error]: collision_box: height must be >= 0');\n }\n }\n if (config.width !== void 0) {\n if (typeof config.width !== 'number') {\n throw new TypeError(\n '[set error]: collision_box: width must be a number',\n );\n }\n if (config.width < 0) {\n throw new TypeError('[set error]: collision_box: width must be >= 0');\n }\n }\n\n this.#opt.components['minecraft:collision_box'] = config;\n }\n\n public setColor(\n config: {\n value?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: color: must be an object configuration');\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.value !== void 0 && typeof config.value !== 'number') {\n throw new TypeError('[set error]: color: value must be a number');\n }\n\n this.#opt.components['minecraft:color'] = config;\n }\n\n public setColor2(\n config: {\n value?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: color2: must be an object configuration');\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.value !== void 0 && typeof config.value !== 'number') {\n throw new TypeError('[set error]: color2: value must be a number');\n }\n\n this.#opt.components['minecraft:color2'] = config;\n }\n\n public setCombatRegeneration(\n config: {\n apply_to_family?: boolean;\n apply_to_self?: boolean;\n regeneration_duration?: number | 'infinite';\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: combat_regeneration: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n const booleanProperties = ['apply_to_family', 'apply_to_self'];\n for (const prop of booleanProperties) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: combat_regeneration: ${prop} must be a boolean`,\n );\n }\n }\n if (config.regeneration_duration !== void 0) {\n if (typeof config.regeneration_duration === 'number') {\n if (config.regeneration_duration < 0) {\n throw new TypeError(\n '[set error]: combat_regeneration: regeneration_duration must be >= 0 when a number',\n );\n }\n } else if (config.regeneration_duration !== 'infinite') {\n throw new TypeError(\n \"[set error]: combat_regeneration: regeneration_duration must be a number or 'infinite'\",\n );\n }\n }\n\n this.#opt.components['minecraft:combat_regeneration'] = config;\n }\n\n public setConditionalBandwidthOptimization(\n config: {\n conditional_values?: Array<{\n conditional_values?: any;\n max_dropped_ticks?: number;\n max_optimized_distance?: number;\n use_motion_prediction_hints?: boolean;\n }>;\n default_values?: {\n max_dropped_ticks?: number;\n max_optimized_distance?: number;\n use_motion_prediction_hints?: boolean;\n };\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: conditional_bandwidth_optimization: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.conditional_values !== void 0) {\n if (!Array.isArray(config.conditional_values)) {\n throw new TypeError(\n '[set error]: conditional_bandwidth_optimization: conditional_values must be an array',\n );\n }\n\n for (let i = 0; i < config.conditional_values.length; i++) {\n const item = config.conditional_values[i];\n if (typeof item !== 'object' || item === null) {\n throw new TypeError(\n `[set error]: conditional_bandwidth_optimization: conditional_values[${i}] must be an object`,\n );\n }\n if (\n item.max_dropped_ticks !== void 0 &&\n typeof item.max_dropped_ticks !== 'number'\n ) {\n throw new TypeError(\n `[set error]: conditional_bandwidth_optimization: conditional_values[${i}].max_dropped_ticks must be a number`,\n );\n }\n if (\n item.max_optimized_distance !== void 0 &&\n typeof item.max_optimized_distance !== 'number'\n ) {\n throw new TypeError(\n `[set error]: conditional_bandwidth_optimization: conditional_values[${i}].max_optimized_distance must be a number`,\n );\n }\n if (\n item.use_motion_prediction_hints !== void 0 &&\n typeof item.use_motion_prediction_hints !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: conditional_bandwidth_optimization: conditional_values[${i}].use_motion_prediction_hints must be a boolean`,\n );\n }\n }\n }\n if (config.default_values !== void 0) {\n if (\n typeof config.default_values !== 'object' ||\n config.default_values === null\n ) {\n throw new TypeError(\n '[set error]: conditional_bandwidth_optimization: default_values must be an object',\n );\n }\n if (\n config.default_values.max_dropped_ticks !== void 0 &&\n typeof config.default_values.max_dropped_ticks !== 'number'\n ) {\n throw new TypeError(\n '[set error]: conditional_bandwidth_optimization: default_values.max_dropped_ticks must be a number',\n );\n }\n if (\n config.default_values.max_optimized_distance !== void 0 &&\n typeof config.default_values.max_optimized_distance !== 'number'\n ) {\n throw new TypeError(\n '[set error]: conditional_bandwidth_optimization: default_values.max_optimized_distance must be a number',\n );\n }\n if (\n config.default_values.use_motion_prediction_hints !== void 0 &&\n typeof config.default_values.use_motion_prediction_hints !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: conditional_bandwidth_optimization: default_values.use_motion_prediction_hints must be a boolean',\n );\n }\n }\n\n this.#opt.components['minecraft:conditional_bandwidth_optimization'] =\n config;\n }\n\n public setCustomHitTest(\n config: {\n hitboxes?: Array<{\n height?: number;\n pivot?: [number, number, number];\n width?: number;\n }>;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: custom_hit_test: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.hitboxes !== void 0) {\n if (!Array.isArray(config.hitboxes)) {\n throw new TypeError(\n '[set error]: custom_hit_test: hitboxes must be an array',\n );\n }\n\n for (let i = 0; i < config.hitboxes.length; i++) {\n const hitbox = config.hitboxes[i];\n if (typeof hitbox !== 'object' || hitbox === null) {\n throw new TypeError(\n `[set error]: custom_hit_test: hitboxes[${i}] must be an object`,\n );\n }\n if (hitbox.height !== void 0) {\n if (typeof hitbox.height !== 'number') {\n throw new TypeError(\n `[set error]: custom_hit_test: hitboxes[${i}].height must be a number`,\n );\n }\n if (hitbox.height < 0) {\n throw new TypeError(\n `[set error]: custom_hit_test: hitboxes[${i}].height must be >= 0`,\n );\n }\n }\n if (hitbox.width !== void 0) {\n if (typeof hitbox.width !== 'number') {\n throw new TypeError(\n `[set error]: custom_hit_test: hitboxes[${i}].width must be a number`,\n );\n }\n if (hitbox.width < 0) {\n throw new TypeError(\n `[set error]: custom_hit_test: hitboxes[${i}].width must be >= 0`,\n );\n }\n }\n if (hitbox.pivot !== void 0) {\n if (!Array.isArray(hitbox.pivot) || hitbox.pivot.length !== 3) {\n throw new TypeError(\n `[set error]: custom_hit_test: hitboxes[${i}].pivot must be an array with 3 numbers [x, y, z]`,\n );\n }\n for (let j = 0; j < hitbox.pivot.length; j++) {\n if (typeof hitbox.pivot[j] !== 'number') {\n throw new TypeError(\n `[set error]: custom_hit_test: hitboxes[${i}].pivot[${j}] must be a number`,\n );\n }\n }\n }\n }\n }\n\n this.#opt.components['minecraft:custom_hit_test'] = config;\n }\n\n public setDamageOverTime(\n config: {\n damage_per_hurt?: number;\n time_between_hurt?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: damage_over_time: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.damage_per_hurt !== void 0) {\n if (\n typeof config.damage_per_hurt !== 'number' ||\n !Number.isInteger(config.damage_per_hurt)\n ) {\n throw new TypeError(\n '[set error]: damage_over_time: damage_per_hurt must be an integer',\n );\n }\n if (config.damage_per_hurt < 0) {\n throw new TypeError(\n '[set error]: damage_over_time: damage_per_hurt must be >= 0',\n );\n }\n }\n if (config.time_between_hurt !== void 0) {\n if (typeof config.time_between_hurt !== 'number') {\n throw new TypeError(\n '[set error]: damage_over_time: time_between_hurt must be a number',\n );\n }\n if (config.time_between_hurt < 0) {\n throw new TypeError(\n '[set error]: damage_over_time: time_between_hurt must be >= 0',\n );\n }\n }\n\n this.#opt.components['minecraft:damage_over_time'] = config;\n }\n\n public setDamageSensor(\n config: {\n deals_damage?: boolean | 'yes' | 'no' | 'no_but_side_effects_apply';\n triggers?:\n | Array<{\n cause?: string;\n damage_modifier?: number;\n damage_multiplier?: number;\n deals_damage?: boolean | string;\n event?: string;\n filters?: any;\n on_damage?: {\n filters?: any;\n };\n on_damage_sound_event?: string;\n }>\n | {\n cause?: string;\n damage_modifier?: number;\n damage_multiplier?: number;\n deals_damage?: boolean | string;\n event?: string;\n filters?: any;\n on_damage?: {\n filters?: any;\n };\n on_damage_sound_event?: string;\n };\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: damage_sensor: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.deals_damage !== void 0) {\n if (typeof config.deals_damage === 'boolean') {\n // 布尔值,有效\n } else if (typeof config.deals_damage === 'string') {\n const validValues = ['yes', 'no', 'no_but_side_effects_apply'];\n if (!validValues.includes(config.deals_damage)) {\n throw new TypeError(\n \"[set error]: damage_sensor: deals_damage must be boolean or one of 'yes', 'no', 'no_but_side_effects_apply'\",\n );\n }\n } else {\n throw new TypeError(\n '[set error]: damage_sensor: deals_damage must be boolean or string',\n );\n }\n }\n if (config.triggers !== void 0) {\n if (typeof config.triggers === 'object' && config.triggers !== null) {\n if (Array.isArray(config.triggers)) {\n // 数组格式的triggers\n for (let i = 0; i < config.triggers.length; i++) {\n const trigger = config.triggers[i];\n if (typeof trigger !== 'object' || trigger === null) {\n throw new TypeError(\n `[set error]: damage_sensor: triggers[${i}] must be an object`,\n );\n }\n this.#validateDamageSensorTrigger(trigger);\n }\n } else {\n // 单对象格式的triggers\n this.#validateDamageSensorTrigger(config.triggers);\n }\n } else {\n throw new TypeError(\n '[set error]: damage_sensor: triggers must be an object or array of objects',\n );\n }\n }\n\n this.#opt.components['minecraft:damage_sensor'] = config;\n }\n\n // 私有方法用于验证damage_sensor的trigger对象\n #validateDamageSensorTrigger(trigger: any): void {\n if (trigger.cause !== void 0 && typeof trigger.cause !== 'string') {\n throw new TypeError(\n '[set error]: damage_sensor: trigger.cause must be a string',\n );\n }\n if (\n trigger.damage_modifier !== void 0 &&\n typeof trigger.damage_modifier !== 'number'\n ) {\n throw new TypeError(\n '[set error]: damage_sensor: trigger.damage_modifier must be a number',\n );\n }\n if (\n trigger.damage_multiplier !== void 0 &&\n typeof trigger.damage_multiplier !== 'number'\n ) {\n throw new TypeError(\n '[set error]: damage_sensor: trigger.damage_multiplier must be a number',\n );\n }\n if (trigger.deals_damage !== void 0) {\n if (typeof trigger.deals_damage === 'boolean') {\n // 布尔值,有效\n } else if (typeof trigger.deals_damage === 'string') {\n // 字符串值,无需额外验证,因为可以接受任何字符串\n } else {\n throw new TypeError(\n '[set error]: damage_sensor: trigger.deals_damage must be boolean or string',\n );\n }\n }\n if (trigger.event !== void 0 && typeof trigger.event !== 'string') {\n throw new TypeError(\n '[set error]: damage_sensor: trigger.event must be a string',\n );\n }\n if (\n trigger.on_damage_sound_event !== void 0 &&\n typeof trigger.on_damage_sound_event !== 'string'\n ) {\n throw new TypeError(\n '[set error]: damage_sensor: trigger.on_damage_sound_event must be a string',\n );\n }\n }\n\n public setDash(\n config: {\n cooldown_time?: number;\n horizontal_momentum?: number;\n vertical_momentum?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: dash: must be an object configuration');\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.cooldown_time !== void 0) {\n if (typeof config.cooldown_time !== 'number') {\n throw new TypeError(\n '[set error]: dash: cooldown_time must be a number',\n );\n }\n if (config.cooldown_time < 0) {\n throw new TypeError('[set error]: dash: cooldown_time must be >= 0');\n }\n }\n if (\n config.horizontal_momentum !== void 0 &&\n typeof config.horizontal_momentum !== 'number'\n ) {\n throw new TypeError(\n '[set error]: dash: horizontal_momentum must be a number',\n );\n }\n if (\n config.vertical_momentum !== void 0 &&\n typeof config.vertical_momentum !== 'number'\n ) {\n throw new TypeError(\n '[set error]: dash: vertical_momentum must be a number',\n );\n }\n\n this.#opt.components['minecraft:dash'] = config;\n }\n\n public setDashAction(\n config: {\n can_dash_underwater?: boolean;\n cooldown_time?: number;\n direction?: 'entity' | 'passenger';\n horizontal_momentum?: number;\n vertical_momentum?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: dash_action: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (\n config.can_dash_underwater !== void 0 &&\n typeof config.can_dash_underwater !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: dash_action: can_dash_underwater must be a boolean',\n );\n }\n if (config.cooldown_time !== void 0) {\n if (typeof config.cooldown_time !== 'number') {\n throw new TypeError(\n '[set error]: dash_action: cooldown_time must be a number',\n );\n }\n if (config.cooldown_time < 0) {\n throw new TypeError(\n '[set error]: dash_action: cooldown_time must be >= 0',\n );\n }\n }\n if (config.direction !== void 0) {\n if (config.direction !== 'entity' && config.direction !== 'passenger') {\n throw new TypeError(\n \"[set error]: dash_action: direction must be 'entity' or 'passenger'\",\n );\n }\n }\n if (\n config.horizontal_momentum !== void 0 &&\n typeof config.horizontal_momentum !== 'number'\n ) {\n throw new TypeError(\n '[set error]: dash_action: horizontal_momentum must be a number',\n );\n }\n if (\n config.vertical_momentum !== void 0 &&\n typeof config.vertical_momentum !== 'number'\n ) {\n throw new TypeError(\n '[set error]: dash_action: vertical_momentum must be a number',\n );\n }\n\n this.#opt.components['minecraft:dash_action'] = config;\n }\n\n public setDefaultLookAngle(\n config: {\n value?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: default_look_angle: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.value !== void 0 && typeof config.value !== 'number') {\n throw new TypeError(\n '[set error]: default_look_angle: value must be a number',\n );\n }\n\n this.#opt.components['minecraft:default_look_angle'] = config;\n }\n\n public setDespawn(\n config: {\n despawn_from_chance?: boolean;\n despawn_from_distance?: {\n max_distance?: number;\n min_distance?: number;\n };\n despawn_from_inactivity?: boolean;\n despawn_from_simulation_edge?: boolean;\n filters?: any;\n min_range_inactivity_timer?: number;\n min_range_random_chance?: number;\n remove_child_entities?: boolean;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: despawn: must be an object configuration');\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n const booleanProperties = [\n 'despawn_from_chance',\n 'despawn_from_inactivity',\n 'despawn_from_simulation_edge',\n 'remove_child_entities',\n ];\n for (const prop of booleanProperties) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'boolean'\n ) {\n throw new TypeError(`[set error]: despawn: ${prop} must be a boolean`);\n }\n }\n const numberProperties = [\n 'min_range_inactivity_timer',\n 'min_range_random_chance',\n ];\n for (const prop of numberProperties) {\n if (config[prop as keyof typeof config] !== void 0) {\n if (\n typeof config[prop as keyof typeof config] !== 'number' ||\n !Number.isInteger(config[prop as keyof typeof config])\n ) {\n throw new TypeError(\n `[set error]: despawn: ${prop} must be an integer`,\n );\n }\n if ((config[prop as keyof typeof config] as number) < 0) {\n throw new TypeError(`[set error]: despawn: ${prop} must be >= 0`);\n }\n }\n }\n if (config.despawn_from_distance !== void 0) {\n if (\n typeof config.despawn_from_distance !== 'object' ||\n config.despawn_from_distance === null\n ) {\n throw new TypeError(\n '[set error]: despawn: despawn_from_distance must be an object',\n );\n }\n if (config.despawn_from_distance.max_distance !== void 0) {\n if (\n typeof config.despawn_from_distance.max_distance !== 'number' ||\n !Number.isInteger(config.despawn_from_distance.max_distance)\n ) {\n throw new TypeError(\n '[set error]: despawn: despawn_from_distance.max_distance must be an integer',\n );\n }\n if (config.despawn_from_distance.max_distance < 0) {\n throw new TypeError(\n '[set error]: despawn: despawn_from_distance.max_distance must be >= 0',\n );\n }\n }\n if (config.despawn_from_distance.min_distance !== void 0) {\n if (\n typeof config.despawn_from_distance.min_distance !== 'number' ||\n !Number.isInteger(config.despawn_from_distance.min_distance)\n ) {\n throw new TypeError(\n '[set error]: despawn: despawn_from_distance.min_distance must be an integer',\n );\n }\n if (config.despawn_from_distance.min_distance < 0) {\n throw new TypeError(\n '[set error]: despawn: despawn_from_distance.min_distance must be >= 0',\n );\n }\n }\n }\n\n this.#opt.components['minecraft:despawn'] = config;\n }\n\n public setDimensionBound(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n\n // minecraft:dimension_bound 是一个空对象组件\n this.#opt.components['minecraft:dimension_bound'] = {};\n }\n\n public setDryingOutTimer(\n config: {\n dried_out_event?: string | { event: string; target?: string };\n recover_after_dried_out_event?:\n | string\n | { event: string; target?: string };\n stopped_drying_out_event?: string | { event: string; target?: string };\n total_time?: number;\n water_bottle_refill_time?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: drying_out_timer: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.total_time !== void 0) {\n if (typeof config.total_time !== 'number' || config.total_time < 0) {\n throw new TypeError(\n '[set error]: drying_out_timer: total_time must be a non-negative number',\n );\n }\n }\n if (config.water_bottle_refill_time !== void 0) {\n if (\n typeof config.water_bottle_refill_time !== 'number' ||\n config.water_bottle_refill_time < 0\n ) {\n throw new TypeError(\n '[set error]: drying_out_timer: water_bottle_refill_time must be a non-negative number',\n );\n }\n }\n const validEventTypes = ['string', 'object'];\n\n if (config.dried_out_event !== void 0) {\n if (!validEventTypes.includes(typeof config.dried_out_event)) {\n throw new TypeError(\n '[set error]: drying_out_timer: dried_out_event must be a string or object',\n );\n }\n if (\n typeof config.dried_out_event === 'object' &&\n (config.dried_out_event.event === void 0 ||\n typeof config.dried_out_event.event !== 'string')\n ) {\n throw new TypeError(\n \"[set error]: drying_out_timer: dried_out_event object must have an 'event' string property\",\n );\n }\n }\n\n if (config.recover_after_dried_out_event !== void 0) {\n if (\n !validEventTypes.includes(typeof config.recover_after_dried_out_event)\n ) {\n throw new TypeError(\n '[set error]: drying_out_timer: recover_after_dried_out_event must be a string or object',\n );\n }\n if (\n typeof config.recover_after_dried_out_event === 'object' &&\n (config.recover_after_dried_out_event.event === void 0 ||\n typeof config.recover_after_dried_out_event.event !== 'string')\n ) {\n throw new TypeError(\n \"[set error]: drying_out_timer: recover_after_dried_out_event object must have an 'event' string property\",\n );\n }\n }\n\n if (config.stopped_drying_out_event !== void 0) {\n if (!validEventTypes.includes(typeof config.stopped_drying_out_event)) {\n throw new TypeError(\n '[set error]: drying_out_timer: stopped_drying_out_event must be a string or object',\n );\n }\n if (\n typeof config.stopped_drying_out_event === 'object' &&\n (config.stopped_drying_out_event.event === void 0 ||\n typeof config.stopped_drying_out_event.event !== 'string')\n ) {\n throw new TypeError(\n \"[set error]: drying_out_timer: stopped_drying_out_event object must have an 'event' string property\",\n );\n }\n }\n\n this.#opt.components['minecraft:drying_out_timer'] = config;\n }\n\n public setDweller(\n config: {\n can_find_poi?: boolean;\n can_migrate?: boolean;\n dweller_role?: string;\n dwelling_bounds_tolerance?: number;\n dwelling_role?: string;\n dwelling_type?: string;\n first_founding_reward?: number;\n preferred_profession?: string;\n update_interval_base?: number;\n update_interval_variant?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: dweller: must be an object configuration');\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (\n config.can_find_poi !== void 0 &&\n typeof config.can_find_poi !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: dweller: can_find_poi must be a boolean',\n );\n }\n\n if (\n config.can_migrate !== void 0 &&\n typeof config.can_migrate !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: dweller: can_migrate must be a boolean',\n );\n }\n const numericProperties = [\n 'dwelling_bounds_tolerance',\n 'first_founding_reward',\n 'update_interval_base',\n 'update_interval_variant',\n ] as Array<keyof typeof config>;\n\n for (const prop of numericProperties) {\n if (config[prop] !== void 0) {\n if (typeof config[prop] !== 'number' || config[prop] < 0) {\n throw new TypeError(\n `[set error]: dweller: ${prop} must be a non-negative number`,\n );\n }\n }\n }\n\n this.#opt.components['minecraft:dweller'] = config;\n }\n\n public setEconomyTradeTable(\n config: {\n convert_trades_economy?: boolean;\n cured_discount?: number | [number, number];\n display_name?: string;\n hero_demand_discount?: number;\n max_cured_discount?: number | [number, number];\n max_nearby_cured_discount?: number;\n nearby_cured_discount?: number;\n new_screen?: boolean;\n persist_trades?: boolean;\n show_trade_screen?: boolean;\n table?: string;\n use_legacy_price_formula?: boolean;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: economy_trade_table: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n const booleanProperties = [\n 'convert_trades_economy',\n 'new_screen',\n 'persist_trades',\n 'show_trade_screen',\n 'use_legacy_price_formula',\n ] as Array<keyof typeof config>;\n\n for (const prop of booleanProperties) {\n if (config[prop] !== void 0 && typeof config[prop] !== 'boolean') {\n throw new TypeError(\n `[set error]: economy_trade_table: ${prop} must be a boolean`,\n );\n }\n }\n if (config.cured_discount !== void 0) {\n if (Array.isArray(config.cured_discount)) {\n if (\n config.cured_discount.length !== 2 ||\n typeof config.cured_discount[0] !== 'number' ||\n typeof config.cured_discount[1] !== 'number'\n ) {\n throw new TypeError(\n '[set error]: economy_trade_table: cured_discount array must contain exactly 2 numbers',\n );\n }\n } else if (typeof config.cured_discount !== 'number') {\n throw new TypeError(\n '[set error]: economy_trade_table: cured_discount must be a number or array of 2 numbers',\n );\n }\n }\n if (config.max_cured_discount !== void 0) {\n if (Array.isArray(config.max_cured_discount)) {\n if (\n config.max_cured_discount.length !== 2 ||\n typeof config.max_cured_discount[0] !== 'number' ||\n typeof config.max_cured_discount[1] !== 'number'\n ) {\n throw new TypeError(\n '[set error]: economy_trade_table: max_cured_discount array must contain exactly 2 numbers',\n );\n }\n } else if (typeof config.max_cured_discount !== 'number') {\n throw new TypeError(\n '[set error]: economy_trade_table: max_cured_discount must be a number or array of 2 numbers',\n );\n }\n }\n const singleNumericProperties = [\n 'hero_demand_discount',\n 'max_nearby_cured_discount',\n 'nearby_cured_discount',\n ] as Array<keyof typeof config>;\n\n for (const prop of singleNumericProperties) {\n if (config[prop] !== void 0 && typeof config[prop] !== 'number') {\n throw new TypeError(\n `[set error]: economy_trade_table: ${prop} must be a number`,\n );\n }\n }\n\n this.#opt.components['minecraft:economy_trade_table'] = config;\n }\n\n public setEntityArmorEquipmentSlotMapping(\n config: {\n armor_slot?: string;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: entity_armor_equipment_slot_mapping: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.armor_slot !== void 0 && typeof config.armor_slot !== 'string') {\n throw new TypeError(\n '[set error]: entity_armor_equipment_slot_mapping: armor_slot must be a string',\n );\n }\n\n this.#opt.components['minecraft:entity_armor_equipment_slot_mapping'] =\n config;\n }\n\n public setEntitySensor(\n config: {\n find_players_only?: boolean;\n relative_range?: boolean;\n subsensors?: Array<{\n cooldown?: number;\n event?: string | { event: string; target?: string };\n event_filters?: any;\n maximum_count?: number;\n minimum_count?: number;\n range?: [number, number] | [number, number, number];\n require_all?: boolean;\n y_offset?: number;\n }>;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: entity_sensor: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (\n config.find_players_only !== void 0 &&\n typeof config.find_players_only !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: entity_sensor: find_players_only must be a boolean',\n );\n }\n\n if (\n config.relative_range !== void 0 &&\n typeof config.relative_range !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: entity_sensor: relative_range must be a boolean',\n );\n }\n if (config.subsensors !== void 0) {\n if (!Array.isArray(config.subsensors)) {\n throw new TypeError(\n '[set error]: entity_sensor: subsensors must be an array',\n );\n }\n\n for (let i = 0; i < config.subsensors.length; i++) {\n const subsensor = config.subsensors[i];\n if (subsensor && subsensor.event !== void 0) {\n if (\n typeof subsensor.event !== 'string' &&\n (typeof subsensor.event !== 'object' ||\n subsensor.event === null ||\n typeof subsensor.event.event !== 'string')\n ) {\n throw new TypeError(\n `[set error]: entity_sensor: subsensors[${i}].event must be a string or event object`,\n );\n }\n }\n const numericProperties = [\n 'cooldown',\n 'maximum_count',\n 'minimum_count',\n 'y_offset',\n ] as const;\n for (const prop of numericProperties) {\n if (\n subsensor &&\n subsensor[prop] !== void 0 &&\n typeof subsensor[prop] !== 'number'\n ) {\n throw new TypeError(\n `[set error]: entity_sensor: subsensors[${i}].${prop} must be a number`,\n );\n }\n }\n if (subsensor && subsensor.range !== void 0) {\n if (\n !Array.isArray(subsensor.range) ||\n (subsensor.range.length !== 2 && subsensor.range.length !== 3) ||\n !subsensor.range.every(item => typeof item === 'number')\n ) {\n throw new TypeError(\n `[set error]: entity_sensor: subsensors[${i}].range must be an array of 2 or 3 numbers`,\n );\n }\n }\n if (\n subsensor &&\n subsensor.require_all !== void 0 &&\n typeof subsensor.require_all !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: entity_sensor: subsensors[${i}].require_all must be a boolean`,\n );\n }\n }\n }\n\n this.#opt.components['minecraft:entity_sensor'] = config;\n }\n\n public setEnvironmentSensor(\n config: {\n triggers?:\n | {\n event?: string | { event: string; target?: string };\n filters?: any;\n }\n | Array<{\n event?: string | { event: string; target?: string };\n filters?: any;\n }>;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: environment_sensor: must be an object configuration',\n );\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (config.triggers !== void 0) {\n if (typeof config.triggers !== 'object' || config.triggers === null) {\n throw new TypeError(\n '[set error]: environment_sensor: triggers must be an object or array',\n );\n }\n\n // 处理数组格式的triggers\n if (Array.isArray(config.triggers)) {\n for (let i = 0; i < config.triggers.length; i++) {\n const trigger = config.triggers[i];\n if (trigger && trigger.event !== void 0) {\n if (\n typeof trigger.event !== 'string' &&\n (typeof trigger.event !== 'object' ||\n trigger.event === null ||\n typeof trigger.event.event !== 'string')\n ) {\n throw new TypeError(\n `[set error]: environment_sensor: triggers[${i}].event must be a string or event object`,\n );\n }\n }\n }\n } else {\n // 处理对象格式的trigger\n if (config.triggers.event !== void 0) {\n const event = config.triggers.event;\n if (\n typeof event !== 'string' &&\n (typeof event !== 'object' ||\n event === null ||\n typeof event.event !== 'string')\n ) {\n throw new TypeError(\n '[set error]: environment_sensor: triggers.event must be a string or event object',\n );\n }\n }\n }\n }\n\n this.#opt.components['minecraft:environment_sensor'] = config;\n }\n\n /**\n * Sets the Equipment table to use for this Entity\n * @param config Equipment configuration\n */\n public setEquipment(\n config: {\n slot_drop_chance?: Array<\n | string\n | {\n drop_chance?: number;\n slot?: string;\n }\n >;\n table?: string;\n } = {},\n ): void {\n if (config.slot_drop_chance !== void 0) {\n if (!Array.isArray(config.slot_drop_chance)) {\n throw new TypeError(\n '[set error]: equipment: slot_drop_chance must be an array',\n );\n }\n for (let i = 0; i < config.slot_drop_chance.length; i++) {\n const item = config.slot_drop_chance[i];\n if (\n typeof item !== 'string' &&\n (typeof item !== 'object' ||\n item === null ||\n !('slot' in item) ||\n !('drop_chance' in item))\n ) {\n throw new TypeError(\n `[set error]: equipment: slot_drop_chance[${i}] must be a string or object with slot and drop_chance properties`,\n );\n }\n if (\n typeof item === 'object' &&\n item.drop_chance !== void 0 &&\n (typeof item.drop_chance !== 'number' ||\n item.drop_chance < 0 ||\n item.drop_chance > 1)\n ) {\n throw new TypeError(\n `[set error]: equipment: slot_drop_chance[${i}].drop_chance must be a decimal number between 0.0 and 1.0`,\n );\n }\n }\n }\n if (config.table !== void 0 && typeof config.table !== 'string') {\n throw new TypeError('[set error]: equipment: table must be a string');\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:equipment'] = config;\n }\n\n /**\n * Defines an entity's behavior for having items equipped to it\n * @param config Equippable configuration\n */\n public setEquippable(\n config: {\n slots?: Array<{\n accepted_items?: string[];\n interact_text?: string;\n item?: string;\n on_equip?: any;\n on_unequip?: any;\n slot?: number;\n [key: string]: any;\n }>;\n } = {},\n ): void {\n if (config.slots !== void 0) {\n if (!Array.isArray(config.slots)) {\n throw new TypeError('[set error]: equippable: slots must be an array');\n }\n for (let i = 0; i < config.slots.length; i++) {\n const slot = config.slots[i];\n if (typeof slot !== 'object' || slot === null) {\n throw new TypeError(\n `[set error]: equippable: slots[${i}] must be an object`,\n );\n }\n if (\n slot.accepted_items !== void 0 &&\n (!Array.isArray(slot.accepted_items) ||\n !slot.accepted_items.every(item => typeof item === 'string'))\n ) {\n throw new TypeError(\n `[set error]: equippable: slots[${i}].accepted_items must be an array of strings`,\n );\n }\n if (\n slot.interact_text !== void 0 &&\n typeof slot.interact_text !== 'string'\n ) {\n throw new TypeError(\n `[set error]: equippable: slots[${i}].interact_text must be a string`,\n );\n }\n if (slot.item !== void 0 && typeof slot.item !== 'string') {\n throw new TypeError(\n `[set error]: equippable: slots[${i}].item must be a string`,\n );\n }\n if (\n slot.slot !== void 0 &&\n (typeof slot.slot !== 'number' || slot.slot < 0)\n ) {\n throw new TypeError(\n `[set error]: equippable: slots[${i}].slot must be a non-negative number`,\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:equippable'] = config;\n }\n\n /**\n * The entity puts on the desired equipment\n * @param config Equip Item configuration\n */\n public setEquipItem(\n config: {\n can_wear_armor?: boolean;\n excluded_items?: Array<{\n item?: string;\n [key: string]: any;\n }>;\n } = {},\n ): void {\n if (\n config.can_wear_armor !== void 0 &&\n typeof config.can_wear_armor !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: equip_item: can_wear_armor must be a boolean',\n );\n }\n if (config.excluded_items !== void 0) {\n if (!Array.isArray(config.excluded_items)) {\n throw new TypeError(\n '[set error]: equip_item: excluded_items must be an array',\n );\n }\n for (let i = 0; i < config.excluded_items.length; i++) {\n const excludedItem = config.excluded_items[i];\n if (typeof excludedItem !== 'object' || excludedItem === null) {\n throw new TypeError(\n `[set error]: equip_item: excluded_items[${i}] must be an object`,\n );\n }\n if (\n excludedItem.item !== void 0 &&\n typeof excludedItem.item !== 'string'\n ) {\n throw new TypeError(\n `[set error]: equip_item: excluded_items[${i}].item must be a string`,\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:equip_item'] = config;\n }\n\n /**\n * Defines how much exhaustion each player action should take\n * @param config Exhaustion values configuration\n */\n public setExhaustionValues(\n config: {\n attack?: number;\n damage?: number;\n heal?: number;\n jump?: number;\n lunge?: number;\n mine?: number;\n sprint?: number;\n sprint_jump?: number;\n swim?: number;\n walk?: number;\n [key: string]: any;\n } = {},\n ): void {\n const numericProperties = [\n 'attack',\n 'damage',\n 'heal',\n 'jump',\n 'lunge',\n 'mine',\n 'sprint',\n 'sprint_jump',\n 'swim',\n 'walk',\n ] as const;\n for (const prop of numericProperties) {\n if (\n config[prop] !== void 0 &&\n (typeof config[prop] !== 'number' || config[prop] < 0)\n ) {\n throw new TypeError(\n `[set error]: exhaustion_values: ${prop} must be a non-negative number`,\n );\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:exhaustion_values'] = config;\n }\n\n /**\n * Defines experience rewards for entity interactions\n * @param config Experience reward configuration\n */\n public setExperienceReward(\n config: {\n on_bred?:\n | string\n | number\n | {\n expression?: string;\n version?: number;\n };\n on_death?:\n | string\n | number\n | {\n expression?: string;\n version?: number;\n };\n [key: string]: any;\n } = {},\n ): void {\n if (config.on_bred !== void 0) {\n if (\n typeof config.on_bred === 'string' ||\n typeof config.on_bred === 'number'\n ) {\n // 有效的字符串(Molang)或数字格式\n } else if (\n typeof config.on_bred === 'object' &&\n config.on_bred !== null\n ) {\n if (\n config.on_bred.expression !== void 0 &&\n typeof config.on_bred.expression !== 'string'\n ) {\n throw new TypeError(\n '[set error]: experience_reward: on_bred.expression must be a string',\n );\n }\n if (\n config.on_bred.version !== void 0 &&\n (typeof config.on_bred.version !== 'number' ||\n config.on_bred.version < 0)\n ) {\n throw new TypeError(\n '[set error]: experience_reward: on_bred.version must be a non-negative integer',\n );\n }\n } else {\n throw new TypeError(\n '[set error]: experience_reward: on_bred must be a string, number, or expression object',\n );\n }\n }\n if (config.on_death !== void 0) {\n if (\n typeof config.on_death === 'string' ||\n typeof config.on_death === 'number'\n ) {\n // 有效的字符串(Molang)或数字格式\n } else if (\n typeof config.on_death === 'object' &&\n config.on_death !== null\n ) {\n if (\n config.on_death.expression !== void 0 &&\n typeof config.on_death.expression !== 'string'\n ) {\n throw new TypeError(\n '[set error]: experience_reward: on_death.expression must be a string',\n );\n }\n if (\n config.on_death.version !== void 0 &&\n (typeof config.on_death.version !== 'number' ||\n config.on_death.version < 0)\n ) {\n throw new TypeError(\n '[set error]: experience_reward: on_death.version must be a non-negative integer',\n );\n }\n } else {\n throw new TypeError(\n '[set error]: experience_reward: on_death must be a string, number, or expression object',\n );\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:experience_reward'] = config;\n }\n\n /**\n * Defines how the entity explodes\n * @param config Explode configuration\n */\n public setExplode(\n config: {\n add?: {\n component_groups?: string[];\n [key: string]: any;\n };\n allow_underwater?: boolean;\n breaks_blocks?: boolean;\n causes_fire?: boolean;\n damage_scaling?: number;\n destroy_affected_by_griefing?: boolean;\n fire_affected_by_griefing?: boolean;\n fuse_length?: number | [number, number];\n fuse_lit?: boolean;\n knockback_scaling?: number;\n max_resistance?: number;\n negates_fall_damage?: boolean;\n particle_effect?: string;\n power?: number;\n sound_effect?: string;\n toggles_blocks?: boolean;\n [key: string]: any;\n } = {},\n ): void {\n if (config.add !== void 0 && typeof config.add !== 'object') {\n throw new TypeError('[set error]: explode: add must be an object');\n }\n if (\n config.add?.component_groups !== void 0 &&\n (!Array.isArray(config.add.component_groups) ||\n !config.add.component_groups.every(item => typeof item === 'string'))\n ) {\n throw new TypeError(\n '[set error]: explode: add.component_groups must be an array of strings',\n );\n }\n const booleanProperties = [\n 'allow_underwater',\n 'breaks_blocks',\n 'causes_fire',\n 'destroy_affected_by_griefing',\n 'fire_affected_by_griefing',\n 'fuse_lit',\n 'negates_fall_damage',\n 'toggles_blocks',\n ] as const;\n for (const prop of booleanProperties) {\n if (config[prop] !== void 0 && typeof config[prop] !== 'boolean') {\n throw new TypeError(`[set error]: explode: ${prop} must be a boolean`);\n }\n }\n const numericProperties = [\n 'damage_scaling',\n 'knockback_scaling',\n 'max_resistance',\n 'power',\n ] as const;\n for (const prop of numericProperties) {\n if (config[prop] !== void 0 && typeof config[prop] !== 'number') {\n throw new TypeError(`[set error]: explode: ${prop} must be a number`);\n }\n }\n if (config.fuse_length !== void 0) {\n if (typeof config.fuse_length === 'number') {\n // 单个数字值\n } else if (\n Array.isArray(config.fuse_length) &&\n config.fuse_length.length === 2 &&\n typeof config.fuse_length[0] === 'number' &&\n typeof config.fuse_length[1] === 'number'\n ) {\n // 范围数组 [min, max]\n } else {\n throw new TypeError(\n '[set error]: explode: fuse_length must be a number or array of two numbers',\n );\n }\n }\n if (\n config.particle_effect !== void 0 &&\n !['explosion', 'wind_burst', 'breeze_wind_burst'].includes(\n config.particle_effect,\n )\n ) {\n throw new TypeError(\n \"[set error]: explode: particle_effect must be 'explosion', 'wind_burst', or 'breeze_wind_burst'\",\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:explode'] = config;\n }\n\n /**\n * Sets that this entity doesn't take damage from fire\n */\n public setFireImmune(config: {} = {}): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:fire_immune'] = config;\n }\n\n /**\n * Sets that this entity can float in liquid blocks\n */\n public setFloatsInLiquid(config: {} = {}): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:floats_in_liquid'] = config;\n }\n\n /**\n * Allows entities to flock in groups in water or not\n */\n public setFlocking(\n config: {\n block_distance?: number;\n block_weight?: number;\n breach_influence?: number;\n cohesion_threshold?: number;\n cohesion_weight?: number;\n goal_weight?: number;\n high_flock_limit?: number;\n in_water?: boolean;\n influence_radius?: number;\n innner_cohesion_threshold?: number;\n loner_chance?: number;\n low_flock_limit?: number;\n match_variants?: boolean;\n max_height?: number;\n min_height?: number;\n separation_threshold?: number;\n separation_weight?: number;\n use_center_of_mass?: boolean;\n } = {},\n ): void {\n // Validate numeric parameters\n const validateNumber = (value: any, name: string): void => {\n if (value !== void 0 && typeof value !== 'number') {\n throw new TypeError(`[set error]: flocking: ${name} must be a number`);\n }\n };\n\n const validateInteger = (value: any, name: string): void => {\n if (\n value !== void 0 &&\n (typeof value !== 'number' || !Number.isInteger(value))\n ) {\n throw new TypeError(\n `[set error]: flocking: ${name} must be an integer`,\n );\n }\n };\n\n const validateBoolean = (value: any, name: string): void => {\n if (value !== void 0 && typeof value !== 'boolean') {\n throw new TypeError(`[set error]: flocking: ${name} must be a boolean`);\n }\n };\n\n // Validate loner_chance is between 0 and 1\n if (config.loner_chance !== void 0) {\n if (\n typeof config.loner_chance !== 'number' ||\n config.loner_chance < 0 ||\n config.loner_chance > 1\n ) {\n throw new TypeError(\n '[set error]: flocking: loner_chance must be a number between 0 and 1',\n );\n }\n }\n\n // Validate all numeric parameters\n const numericParams = [\n 'block_distance',\n 'block_weight',\n 'breach_influence',\n 'cohesion_threshold',\n 'cohesion_weight',\n 'goal_weight',\n 'influence_radius',\n 'innner_cohesion_threshold',\n 'separation_threshold',\n 'separation_weight',\n 'max_height',\n 'min_height',\n ] as const;\n\n numericParams.forEach(param => {\n if (config[param] !== void 0) {\n validateNumber(config[param], param);\n }\n });\n\n // Validate integer parameters\n if (config.high_flock_limit !== void 0)\n validateInteger(config.high_flock_limit, 'high_flock_limit');\n if (config.low_flock_limit !== void 0)\n validateInteger(config.low_flock_limit, 'low_flock_limit');\n\n // Validate boolean parameters\n validateBoolean(config.in_water, 'in_water');\n validateBoolean(config.match_variants, 'match_variants');\n validateBoolean(config.use_center_of_mass, 'use_center_of_mass');\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:flocking'] = config;\n }\n\n /**\n * Sets the flying speed in blocks that this entity flies at\n */\n public setFlyingSpeed(\n config: {\n value?: number;\n } = {},\n ): void {\n if (config.value !== void 0 && typeof config.value !== 'number') {\n throw new TypeError('[set error]: flying_speed: value must be a number');\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:flying_speed'] = config;\n }\n\n /**\n * Defines the maximum range, in blocks, that a mob will pursue a target\n */\n public setFollowRange(\n config: {\n max?: number;\n value?: number;\n } = {},\n ): void {\n if (\n (config.max !== void 0 && typeof config.max !== 'number') ||\n (config.value !== void 0 && typeof config.value !== 'number')\n ) {\n throw new TypeError(\n '[set error]: follow_range: parameters must be numbers',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:follow_range'] = config;\n }\n\n /**\n * When configured as a rideable entity, the entity will be controlled using WASD controls\n */\n public setFreeCameraControlled(\n config: {\n backwards_movement_modifier?: number;\n strafe_speed_modifier?: number;\n } = {},\n ): void {\n if (\n (config.backwards_movement_modifier !== void 0 &&\n typeof config.backwards_movement_modifier !== 'number') ||\n (config.strafe_speed_modifier !== void 0 &&\n typeof config.strafe_speed_modifier !== 'number')\n ) {\n throw new TypeError(\n '[set error]: free_camera_controlled: parameters must be numbers',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:free_camera_controlled'] = config;\n }\n\n /**\n * Defines how much friction affects this entity\n */\n public setFrictionModifier(\n config: {\n value?: number;\n } = {},\n ): void {\n if (config.value !== void 0 && typeof config.value !== 'number') {\n throw new TypeError(\n '[set error]: friction_modifier: value must be a number',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:friction_modifier'] = config;\n }\n\n /**\n * Allows an entity to emit entityMove, swim and flap game events\n */\n public setGameEventMovementTracking(\n config: {\n emit_flap?: boolean;\n emit_move?: boolean;\n emit_swim?: boolean;\n } = {},\n ): void {\n if (\n (config.emit_flap !== void 0 && typeof config.emit_flap !== 'boolean') ||\n (config.emit_move !== void 0 && typeof config.emit_move !== 'boolean') ||\n (config.emit_swim !== void 0 && typeof config.emit_swim !== 'boolean')\n ) {\n throw new TypeError(\n '[set error]: game_event_movement_tracking: parameters must be booleans',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:game_event_movement_tracking'] = config;\n }\n\n /**\n * Defines the way a mob's genes and alleles are passed on to its offspring\n */\n public setGenetics(\n config: {\n mutation_rate?: number;\n genes?: Array<{\n name: string;\n use_simplified_breeding?: boolean;\n mutation_rate?: number;\n allele_range?:\n | number\n | {\n range_min: number;\n range_max: number;\n };\n genetic_variants?: Array<{\n birth_event?:\n | string\n | {\n event: string;\n target?: string;\n };\n main_allele?:\n | number\n | {\n range_min: number;\n range_max: number;\n };\n hidden_allele?:\n | number\n | {\n range_min: number;\n range_max: number;\n };\n both_allele?:\n | number\n | {\n range_min: number;\n range_max: number;\n };\n either_allele?:\n | number\n | {\n range_min: number;\n range_max: number;\n };\n }>;\n }>;\n } = {},\n ): void {\n // Validate mutation_rate\n if (\n config.mutation_rate !== void 0 &&\n (typeof config.mutation_rate !== 'number' || config.mutation_rate < 0)\n ) {\n throw new TypeError(\n '[set error]: genetics: mutation_rate must be a non-negative number',\n );\n }\n\n // Validate genes array\n if (config.genes !== void 0) {\n if (!Array.isArray(config.genes)) {\n throw new TypeError('[set error]: genetics: genes must be an array');\n }\n\n for (let i = 0; i < config.genes.length; i++) {\n const gene = config.genes[i];\n if (!gene) continue; // Skip void 0 entries\n\n // Validate gene name is required\n if (typeof gene.name !== 'string' || gene.name.trim() === '') {\n throw new TypeError(\n `[set error]: genetics: genes[${i}].name is required and must be a non-empty string`,\n );\n }\n\n // Validate use_simplified_breeding\n if (\n gene.use_simplified_breeding !== void 0 &&\n typeof gene.use_simplified_breeding !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: genetics: genes[${i}].use_simplified_breeding must be a boolean`,\n );\n }\n\n // Validate gene mutation_rate\n if (\n gene.mutation_rate !== void 0 &&\n (typeof gene.mutation_rate !== 'number' || gene.mutation_rate < -1)\n ) {\n throw new TypeError(\n `[set error]: genetics: genes[${i}].mutation_rate must be a number >= -1`,\n );\n }\n\n // Validate allele_range\n if (gene.allele_range !== void 0) {\n if (typeof gene.allele_range === 'number') {\n if (!Number.isInteger(gene.allele_range) || gene.allele_range < 1) {\n throw new TypeError(\n `[set error]: genetics: genes[${i}].allele_range as number must be a positive integer`,\n );\n }\n } else if (\n typeof gene.allele_range === 'object' &&\n gene.allele_range !== null\n ) {\n if (\n typeof gene.allele_range.range_min !== 'number' ||\n typeof gene.allele_range.range_max !== 'number' ||\n !Number.isInteger(gene.allele_range.range_min) ||\n !Number.isInteger(gene.allele_range.range_max) ||\n gene.allele_range.range_min < 1 ||\n gene.allele_range.range_max < gene.allele_range.range_min\n ) {\n throw new TypeError(\n `[set error]: genetics: genes[${i}].allele_range object must have valid range_min and range_max integers`,\n );\n }\n } else {\n throw new TypeError(\n `[set error]: genetics: genes[${i}].allele_range must be a number or object`,\n );\n }\n }\n\n // Validate genetic_variants array\n if (gene.genetic_variants !== void 0) {\n if (!Array.isArray(gene.genetic_variants)) {\n throw new TypeError(\n `[set error]: genetics: genes[${i}].genetic_variants must be an array`,\n );\n }\n\n for (let j = 0; j < gene.genetic_variants.length; j++) {\n const variant = gene.genetic_variants[j];\n if (!variant) continue; // Skip void 0 entries\n\n // Validate allele properties\n const validateAllele = (value: any, propName: string): void => {\n if (value !== void 0) {\n if (typeof value === 'number') {\n if (!Number.isInteger(value) || value < -1) {\n throw new TypeError(\n `[set error]: genetics: genes[${i}].genetic_variants[${j}].${propName} must be an integer >= -1`,\n );\n }\n } else if (typeof value === 'object' && value !== null) {\n if (\n typeof value.range_min !== 'number' ||\n typeof value.range_max !== 'number' ||\n !Number.isInteger(value.range_min) ||\n !Number.isInteger(value.range_max) ||\n value.range_min < 0 ||\n value.range_max < value.range_min\n ) {\n throw new TypeError(\n `[set error]: genetics: genes[${i}].genetic_variants[${j}].${propName} object must have valid range_min and range_max integers`,\n );\n }\n } else {\n throw new TypeError(\n `[set error]: genetics: genes[${i}].genetic_variants[${j}].${propName} must be a number or object`,\n );\n }\n }\n };\n\n validateAllele(variant.main_allele, 'main_allele');\n validateAllele(variant.hidden_allele, 'hidden_allele');\n validateAllele(variant.both_allele, 'both_allele');\n validateAllele(variant.either_allele, 'either_allele');\n\n // Validate birth_event\n if (variant.birth_event !== void 0) {\n if (\n typeof variant.birth_event !== 'string' &&\n (typeof variant.birth_event !== 'object' ||\n variant.birth_event === null ||\n typeof variant.birth_event.event !== 'string')\n ) {\n throw new TypeError(\n `[set error]: genetics: genes[${i}].genetic_variants[${j}].birth_event must be a string or event object`,\n );\n }\n }\n }\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:genetics'] = config;\n }\n\n /**\n * Defines sets of items that can be used to trigger events when used on this entity\n */\n public setGiveable(\n config: {\n cooldown?: number;\n items?: string | string[];\n on_give?:\n | string\n | {\n event: string;\n target?: string;\n };\n } = {},\n ): void {\n // Validate cooldown\n if (\n config.cooldown !== void 0 &&\n (typeof config.cooldown !== 'number' || config.cooldown < 0)\n ) {\n throw new TypeError(\n '[set error]: giveable: cooldown must be a non-negative number',\n );\n }\n\n // Validate items\n if (config.items !== void 0) {\n if (typeof config.items === 'string') {\n // Valid string\n } else if (Array.isArray(config.items)) {\n for (let i = 0; i < config.items.length; i++) {\n if (typeof config.items[i] !== 'string') {\n throw new TypeError(\n `[set error]: giveable: items[${i}] must be a string`,\n );\n }\n }\n } else {\n throw new TypeError(\n '[set error]: giveable: items must be a string or array of strings',\n );\n }\n }\n\n // Validate on_give\n if (config.on_give !== void 0) {\n if (\n typeof config.on_give !== 'string' &&\n (typeof config.on_give !== 'object' ||\n config.on_give === null ||\n typeof config.on_give.event !== 'string')\n ) {\n throw new TypeError(\n '[set error]: giveable: on_give must be a string or event object',\n );\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:giveable'] = config;\n }\n\n /**\n * Sets the offset from the ground that the entity is actually at\n */\n public setGroundOffset(\n config: {\n value?: number;\n } = {},\n ): void {\n if (config.value !== void 0 && typeof config.value !== 'number') {\n throw new TypeError('[set error]: ground_offset: value must be a number');\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:ground_offset'] = config;\n }\n\n /**\n * Keeps track of entity group size in the given radius\n */\n public setGroupSize(\n config: {\n radius?: number;\n filters?: any;\n } = {},\n ): void {\n // Validate radius\n if (\n config.radius !== void 0 &&\n (typeof config.radius !== 'number' || config.radius < 0)\n ) {\n throw new TypeError(\n '[set error]: group_size: radius must be a non-negative number',\n );\n }\n\n // Filters can be any valid Minecraft filter object - minimal validation\n if (\n config.filters !== void 0 &&\n (typeof config.filters !== 'object' || config.filters === null)\n ) {\n throw new TypeError('[set error]: group_size: filters must be an object');\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:group_size'] = config;\n }\n\n /**\n * Could increase crop growth when entity walks over crop\n */\n public setGrowsCrop(\n config: {\n chance?: number;\n charges?: number;\n } = {},\n ): void {\n // Validate chance (0-1)\n if (\n config.chance !== void 0 &&\n (typeof config.chance !== 'number' ||\n config.chance < 0 ||\n config.chance > 1)\n ) {\n throw new TypeError(\n '[set error]: grows_crop: chance must be a number between 0 and 1',\n );\n }\n\n // Validate charges (must be integer >= 1)\n if (\n config.charges !== void 0 &&\n (typeof config.charges !== 'number' ||\n !Number.isInteger(config.charges) ||\n config.charges < 1)\n ) {\n throw new TypeError(\n '[set error]: grows_crop: charges must be a positive integer',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:grows_crop'] = config;\n }\n\n /**\n * Defines the health pool for an entity, measured in health points (1 point = half a heart)\n */\n public setHealth(\n config: {\n max?: number;\n value?:\n | number\n | {\n range_min?: number;\n range_max?: number;\n };\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: health: must be an object configuration',\n );\n }\n\n // Validate max health (must be integer >= 1)\n if (\n config.max !== void 0 &&\n (typeof config.max !== 'number' ||\n !Number.isInteger(config.max) ||\n config.max < 1)\n ) {\n throw new TypeError(\n '[set error]: health: max must be a positive integer',\n );\n }\n\n // Validate value as number\n if (config.value !== void 0 && typeof config.value === 'number') {\n if (!Number.isInteger(config.value) || config.value < 0) {\n throw new TypeError(\n '[set error]: health: value as number must be an integer >= 0',\n );\n }\n }\n // Validate value as object\n else if (\n config.value !== void 0 &&\n typeof config.value === 'object' &&\n config.value !== null\n ) {\n if (\n config.value.range_min !== void 0 &&\n (typeof config.value.range_min !== 'number' ||\n !Number.isInteger(config.value.range_min) ||\n config.value.range_min < 0)\n ) {\n throw new TypeError(\n '[set error]: health: value.range_min must be an integer >= 0',\n );\n }\n if (\n config.value.range_max !== void 0 &&\n (typeof config.value.range_max !== 'number' ||\n !Number.isInteger(config.value.range_max) ||\n config.value.range_max < 0)\n ) {\n throw new TypeError(\n '[set error]: health: value.range_max must be an integer >= 0',\n );\n }\n if (\n config.value.range_min !== void 0 &&\n config.value.range_max !== void 0 &&\n config.value.range_max < config.value.range_min\n ) {\n throw new TypeError(\n '[set error]: health: value.range_max must be >= range_min',\n );\n }\n }\n // Validate value is not invalid type\n else if (\n config.value !== void 0 &&\n typeof config.value !== 'number' &&\n (typeof config.value !== 'object' || config.value === null)\n ) {\n throw new TypeError(\n '[set error]: health: value must be a number or range object',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:health'] = config;\n }\n\n /**\n * Defines the entity's heartbeat\n */\n public setHeartbeat(\n config: {\n interval?: string;\n sound_event?: string;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: heartbeat: must be an object configuration',\n );\n }\n\n // Validate interval (should be a string, typically a Molang expression)\n if (config.interval !== void 0 && typeof config.interval !== 'string') {\n throw new TypeError(\n '[set error]: heartbeat: interval must be a string (Molang expression)',\n );\n }\n\n // Validate sound_event (must be string if provided)\n if (\n config.sound_event !== void 0 &&\n typeof config.sound_event !== 'string'\n ) {\n throw new TypeError(\n '[set error]: heartbeat: sound_event must be a string',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:heartbeat'] = config;\n }\n\n /**\n * Moves to and hides at their owned POI or the closest nearby\n */\n public setHide(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:hide'] = {};\n }\n\n /**\n * Saves a home position for when the entity is spawned\n */\n public setHome(\n config: {\n home_block_list?: string[];\n restriction_radius?: number;\n restriction_type?: 'none' | 'random_movement' | 'all_movement';\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError('[set error]: home: must be an object configuration');\n }\n\n // Validate home_block_list (must be array of strings if provided)\n if (config.home_block_list !== void 0) {\n if (!Array.isArray(config.home_block_list)) {\n throw new TypeError(\n '[set error]: home: home_block_list must be an array',\n );\n }\n for (let i = 0; i < config.home_block_list.length; i++) {\n const block = config.home_block_list[i];\n if (typeof block !== 'string' || block.trim() === '') {\n throw new TypeError(\n `[set error]: home: home_block_list[${i}] must be a non-empty string`,\n );\n }\n }\n }\n\n // Validate restriction_radius (must be integer >= 0)\n if (\n config.restriction_radius !== void 0 &&\n (typeof config.restriction_radius !== 'number' ||\n !Number.isInteger(config.restriction_radius) ||\n config.restriction_radius < 0)\n ) {\n throw new TypeError(\n '[set error]: home: restriction_radius must be an integer >= 0',\n );\n }\n\n // Validate restriction_type (must be one of the valid values)\n if (\n config.restriction_type !== void 0 &&\n !['none', 'random_movement', 'all_movement'].includes(\n config.restriction_type,\n )\n ) {\n throw new TypeError(\n \"[set error]: home: restriction_type must be 'none', 'random_movement', or 'all_movement'\",\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:home'] = config;\n }\n\n /**\n * Determines the jump height for a horse or similar entity\n */\n public setHorseJumpStrength(\n config: {\n value?:\n | number\n | {\n range_min?: number;\n range_max?: number;\n };\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: horse.jump_strength: must be an object configuration',\n );\n }\n\n // Validate value as number\n if (config.value !== void 0 && typeof config.value === 'number') {\n if (typeof config.value !== 'number' || config.value < 0) {\n throw new TypeError(\n '[set error]: horse.jump_strength: value as number must be >= 0',\n );\n }\n }\n // Validate value as object\n else if (\n config.value !== void 0 &&\n typeof config.value === 'object' &&\n config.value !== null\n ) {\n if (\n config.value.range_min !== void 0 &&\n (typeof config.value.range_min !== 'number' ||\n config.value.range_min < 0)\n ) {\n throw new TypeError(\n '[set error]: horse.jump_strength: value.range_min must be >= 0',\n );\n }\n if (\n config.value.range_max !== void 0 &&\n (typeof config.value.range_max !== 'number' ||\n config.value.range_max < 0)\n ) {\n throw new TypeError(\n '[set error]: horse.jump_strength: value.range_max must be >= 0',\n );\n }\n if (\n config.value.range_min !== void 0 &&\n config.value.range_max !== void 0 &&\n config.value.range_max < config.value.range_min\n ) {\n throw new TypeError(\n '[set error]: horse.jump_strength: value.range_max must be >= range_min',\n );\n }\n }\n // Validate value is not invalid type\n else if (\n config.value !== void 0 &&\n typeof config.value !== 'number' &&\n (typeof config.value !== 'object' || config.value === null)\n ) {\n throw new TypeError(\n '[set error]: horse.jump_strength: value must be a number or range object',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:horse.jump_strength'] = config;\n }\n\n /**\n * Defines a set of conditions under which an entity should take damage\n */\n public setHurtOnCondition(\n config: {\n damage_conditions?: Array<{\n cause?: string;\n damage_per_tick?: number;\n filters?: {\n subject?: string;\n test?: string;\n value?: any;\n operator?: string;\n [key: string]: any;\n };\n }>;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: hurt_on_condition: must be an object configuration',\n );\n }\n\n // Validate damage_conditions array\n if (config.damage_conditions !== void 0) {\n if (!Array.isArray(config.damage_conditions)) {\n throw new TypeError(\n '[set error]: hurt_on_condition: damage_conditions must be an array',\n );\n }\n\n for (let i = 0; i < config.damage_conditions.length; i++) {\n const condition = config.damage_conditions[i];\n if (!condition) continue; // Skip void 0 entries\n\n // Validate cause (must be string if provided)\n if (condition.cause !== void 0 && typeof condition.cause !== 'string') {\n throw new TypeError(\n `[set error]: hurt_on_condition: damage_conditions[${i}].cause must be a string`,\n );\n }\n\n // Validate damage_per_tick (must be integer >= 0 if provided)\n if (\n condition.damage_per_tick !== void 0 &&\n (typeof condition.damage_per_tick !== 'number' ||\n !Number.isInteger(condition.damage_per_tick) ||\n condition.damage_per_tick < 0)\n ) {\n throw new TypeError(\n `[set error]: hurt_on_condition: damage_conditions[${i}].damage_per_tick must be an integer >= 0`,\n );\n }\n\n // Validate filters (must be object if provided)\n if (\n condition.filters !== void 0 &&\n (typeof condition.filters !== 'object' || condition.filters === null)\n ) {\n throw new TypeError(\n `[set error]: hurt_on_condition: damage_conditions[${i}].filters must be an object`,\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:hurt_on_condition'] = config;\n }\n\n /**\n * Prevents entities from attacking the owner entity unless explicitly allowed\n */\n public setIgnoreCannotBeAttacked(\n config: {\n filters?: {\n subject?: string;\n test?: string;\n value?: any;\n operator?: string;\n [key: string]: any;\n };\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: ignore_cannot_be_attacked: must be an object configuration',\n );\n }\n\n // Validate filters (must be object if provided)\n if (\n config.filters !== void 0 &&\n (typeof config.filters !== 'object' || config.filters === null)\n ) {\n throw new TypeError(\n '[set error]: ignore_cannot_be_attacked: filters must be an object',\n );\n }\n\n // Validate subject in filters (must be string if provided)\n if (\n config.filters?.subject !== void 0 &&\n typeof config.filters.subject !== 'string'\n ) {\n throw new TypeError(\n '[set error]: ignore_cannot_be_attacked: filters.subject must be a string',\n );\n }\n\n // Validate test in filters (must be string if provided)\n if (\n config.filters?.test !== void 0 &&\n typeof config.filters.test !== 'string'\n ) {\n throw new TypeError(\n '[set error]: ignore_cannot_be_attacked: filters.test must be a string',\n );\n }\n\n // Validate operator in filters (must be string if provided)\n if (\n config.filters?.operator !== void 0 &&\n typeof config.filters.operator !== 'string'\n ) {\n throw new TypeError(\n '[set error]: ignore_cannot_be_attacked: filters.operator must be a string',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:ignore_cannot_be_attacked'] = config;\n }\n\n /**\n * Applies WASD controls for rideable entities in air (3D movement control)\n */\n public setInputAirControlled(config: Record<string, any> = {}): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: input_air_controlled: must be an object configuration',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:input_air_controlled'] = config;\n }\n\n /**\n * Applies WASD controls for rideable entities on ground\n */\n public setInputGroundControlled(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:input_ground_controlled'] = {};\n }\n\n /**\n * Monitors when the entity enters or exits specific blocks and triggers events\n */\n public setInsideBlockNotifier(\n config: {\n block_list?: Array<{\n block?: {\n name?: string;\n states?: {\n [key: string]: string | number | boolean;\n };\n };\n entered_block_event?: {\n event?: string;\n target?: string;\n };\n exited_block_event?: {\n event?: string;\n target?: string;\n };\n }>;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: inside_block_notifier: must be an object configuration',\n );\n }\n\n // Validate block_list array\n if (config.block_list !== void 0) {\n if (!Array.isArray(config.block_list)) {\n throw new TypeError(\n '[set error]: inside_block_notifier: block_list must be an array',\n );\n }\n\n for (let i = 0; i < config.block_list.length; i++) {\n const blockEntry = config.block_list[i];\n if (!blockEntry) continue; // Skip void 0 entries\n\n // Validate block object (must be object if provided)\n if (\n blockEntry.block !== void 0 &&\n (typeof blockEntry.block !== 'object' || blockEntry.block === null)\n ) {\n throw new TypeError(\n `[set error]: inside_block_notifier: block_list[${i}].block must be an object`,\n );\n }\n\n // Validate block name (must be string if provided)\n if (\n blockEntry.block?.name !== void 0 &&\n typeof blockEntry.block.name !== 'string'\n ) {\n throw new TypeError(\n `[set error]: inside_block_notifier: block_list[${i}].block.name must be a string`,\n );\n }\n\n // Validate block states (must be object if provided)\n if (\n blockEntry.block?.states !== void 0 &&\n (typeof blockEntry.block.states !== 'object' ||\n blockEntry.block.states === null)\n ) {\n throw new TypeError(\n `[set error]: inside_block_notifier: block_list[${i}].block.states must be an object`,\n );\n }\n\n // Validate entered_block_event (must be object if provided)\n if (\n blockEntry.entered_block_event !== void 0 &&\n (typeof blockEntry.entered_block_event !== 'object' ||\n blockEntry.entered_block_event === null)\n ) {\n throw new TypeError(\n `[set error]: inside_block_notifier: block_list[${i}].entered_block_event must be an object`,\n );\n }\n\n // Validate entered_block_event event property (must be string if provided)\n if (\n blockEntry.entered_block_event?.event !== void 0 &&\n typeof blockEntry.entered_block_event.event !== 'string'\n ) {\n throw new TypeError(\n `[set error]: inside_block_notifier: block_list[${i}].entered_block_event.event must be a string`,\n );\n }\n\n // Validate entered_block_event target property (must be string if provided)\n if (\n blockEntry.entered_block_event?.target !== void 0 &&\n typeof blockEntry.entered_block_event.target !== 'string'\n ) {\n throw new TypeError(\n `[set error]: inside_block_notifier: block_list[${i}].entered_block_event.target must be a string`,\n );\n }\n\n // Validate exited_block_event (must be object if provided)\n if (\n blockEntry.exited_block_event !== void 0 &&\n (typeof blockEntry.exited_block_event !== 'object' ||\n blockEntry.exited_block_event === null)\n ) {\n throw new TypeError(\n `[set error]: inside_block_notifier: block_list[${i}].exited_block_event must be an object`,\n );\n }\n\n // Validate exited_block_event event property (must be string if provided)\n if (\n blockEntry.exited_block_event?.event !== void 0 &&\n typeof blockEntry.exited_block_event.event !== 'string'\n ) {\n throw new TypeError(\n `[set error]: inside_block_notifier: block_list[${i}].exited_block_event.event must be a string`,\n );\n }\n\n // Validate exited_block_event target property (must be string if provided)\n if (\n blockEntry.exited_block_event?.target !== void 0 &&\n typeof blockEntry.exited_block_event.target !== 'string'\n ) {\n throw new TypeError(\n `[set error]: inside_block_notifier: block_list[${i}].exited_block_event.target must be a string`,\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:inside_block_notifier'] = config;\n }\n\n /**\n * Adds a timer since last rested to see if phantoms should spawn\n */\n public setInsomnia(\n config: {\n days_until_insomnia?: number; // Number of days the mob has to stay up until the insomnia effect begins\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: insomnia: must be an object configuration',\n );\n }\n\n // Validate days_until_insomnia (must be number >= 0 if provided)\n if (\n config.days_until_insomnia !== void 0 &&\n (typeof config.days_until_insomnia !== 'number' ||\n config.days_until_insomnia < 0)\n ) {\n throw new TypeError(\n '[set error]: insomnia: days_until_insomnia must be a number >= 0',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:insomnia'] = config;\n }\n\n /**\n * Despawns the Actor immediately\n */\n public setInstantDespawn(\n config: {\n remove_child_entities?: boolean; // If true, all entities linked to this entity in a child relationship will also be despawned\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: instant_despawn: must be an object configuration',\n );\n }\n\n // Validate remove_child_entities (must be boolean if provided)\n if (\n config.remove_child_entities !== void 0 &&\n typeof config.remove_child_entities !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: instant_despawn: remove_child_entities must be a boolean',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:instant_despawn'] = config;\n }\n\n /**\n * Defines interactions with this entity\n */\n public setInteract(\n config: {\n cooldown?: number;\n cooldown_after_being_attacked?: number;\n drop_item_slot?: string | number;\n drop_item_y_offset?: number;\n equip_item_slot?: string | number;\n health_amount?: number;\n hurt_item?: number;\n interact_text?: string;\n interactions?: Array<{\n give_item?: boolean;\n hurt_item?: number;\n interact_text?: string;\n on_interact?:\n | string\n | {\n filters?: {\n subject?: string;\n test?: string;\n value?: any;\n operator?: string;\n [key: string]: any;\n };\n };\n particle_on_start?: Array<{\n particle_offset_towards_interactor?: boolean;\n particle_type?: string;\n particle_y_offset?: number;\n }>;\n play_sounds?: string;\n repair_entity_item?: Array<{\n amount?: number;\n slot?: string | number;\n }>;\n spawn_entities?: string;\n spawn_items?: Array<{\n table?: string;\n y_offset?: number;\n }>;\n swing?: boolean;\n take_item?: boolean;\n transform_to_item?: string;\n use_item?: boolean;\n vibration?:\n | 'none'\n | 'shear'\n | 'entity_die'\n | 'entity_act'\n | 'entity_interact';\n }>;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: interact: must be an object configuration',\n );\n }\n\n // Validate cooldown (must be number >= 0 if provided)\n if (\n config.cooldown !== void 0 &&\n (typeof config.cooldown !== 'number' || config.cooldown < 0)\n ) {\n throw new TypeError(\n '[set error]: interact: cooldown must be a number >= 0',\n );\n }\n\n // Validate cooldown_after_being_attacked (must be number >= 0 if provided)\n if (\n config.cooldown_after_being_attacked !== void 0 &&\n (typeof config.cooldown_after_being_attacked !== 'number' ||\n config.cooldown_after_being_attacked < 0)\n ) {\n throw new TypeError(\n '[set error]: interact: cooldown_after_being_attacked must be a number >= 0',\n );\n }\n\n // Validate drop_item_y_offset (must be number if provided)\n if (\n config.drop_item_y_offset !== void 0 &&\n typeof config.drop_item_y_offset !== 'number'\n ) {\n throw new TypeError(\n '[set error]: interact: drop_item_y_offset must be a number',\n );\n }\n\n // Validate health_amount (must be number if provided)\n if (\n config.health_amount !== void 0 &&\n typeof config.health_amount !== 'number'\n ) {\n throw new TypeError(\n '[set error]: interact: health_amount must be a number',\n );\n }\n\n // Validate hurt_item (must be integer >= 0 if provided)\n if (\n config.hurt_item !== void 0 &&\n (typeof config.hurt_item !== 'number' ||\n !Number.isInteger(config.hurt_item) ||\n config.hurt_item < 0)\n ) {\n throw new TypeError(\n '[set error]: interact: hurt_item must be an integer >= 0',\n );\n }\n\n // Validate interact_text (must be string if provided)\n if (\n config.interact_text !== void 0 &&\n typeof config.interact_text !== 'string'\n ) {\n throw new TypeError(\n '[set error]: interact: interact_text must be a string',\n );\n }\n\n // Validate interactions array\n if (config.interactions !== void 0) {\n if (!Array.isArray(config.interactions)) {\n throw new TypeError(\n '[set error]: interact: interactions must be an array',\n );\n }\n\n for (let i = 0; i < config.interactions.length; i++) {\n const interaction = config.interactions[i];\n if (!interaction) continue; // Skip void 0 entries\n\n // Validate give_item (must be boolean if provided)\n if (\n interaction.give_item !== void 0 &&\n typeof interaction.give_item !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].give_item must be a boolean`,\n );\n }\n\n // Validate hurt_item (must be number if provided)\n if (\n interaction.hurt_item !== void 0 &&\n typeof interaction.hurt_item !== 'number'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].hurt_item must be a number`,\n );\n }\n\n // Validate interact_text (must be string if provided)\n if (\n interaction.interact_text !== void 0 &&\n typeof interaction.interact_text !== 'string'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].interact_text must be a string`,\n );\n }\n\n // Validate on_interact (must be string or object if provided)\n if (\n interaction.on_interact !== void 0 &&\n typeof interaction.on_interact !== 'string' &&\n (typeof interaction.on_interact !== 'object' ||\n interaction.on_interact === null)\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].on_interact must be a string or object`,\n );\n }\n\n // Validate particle_on_start array\n if (interaction.particle_on_start !== void 0) {\n if (!Array.isArray(interaction.particle_on_start)) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].particle_on_start must be an array`,\n );\n }\n\n for (let j = 0; j < interaction.particle_on_start.length; j++) {\n const particle = interaction.particle_on_start[j];\n if (!particle) continue;\n\n // Validate particle_offset_towards_interactor (boolean if provided)\n if (\n particle.particle_offset_towards_interactor !== void 0 &&\n typeof particle.particle_offset_towards_interactor !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].particle_on_start[${j}].particle_offset_towards_interactor must be a boolean`,\n );\n }\n\n // Validate particle_type (string if provided)\n if (\n particle.particle_type !== void 0 &&\n typeof particle.particle_type !== 'string'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].particle_on_start[${j}].particle_type must be a string`,\n );\n }\n\n // Validate particle_y_offset (number if provided)\n if (\n particle.particle_y_offset !== void 0 &&\n typeof particle.particle_y_offset !== 'number'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].particle_on_start[${j}].particle_y_offset must be a number`,\n );\n }\n }\n }\n\n // Validate play_sounds (string if provided)\n if (\n interaction.play_sounds !== void 0 &&\n typeof interaction.play_sounds !== 'string'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].play_sounds must be a string`,\n );\n }\n\n // Validate repair_entity_item array\n if (interaction.repair_entity_item !== void 0) {\n if (!Array.isArray(interaction.repair_entity_item)) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].repair_entity_item must be an array`,\n );\n }\n\n for (let j = 0; j < interaction.repair_entity_item.length; j++) {\n const repair = interaction.repair_entity_item[j];\n if (!repair) continue;\n\n // Validate amount (integer if provided)\n if (\n repair.amount !== void 0 &&\n (typeof repair.amount !== 'number' ||\n !Number.isInteger(repair.amount))\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].repair_entity_item[${j}].amount must be an integer`,\n );\n }\n }\n }\n\n // Validate spawn_entities (string if provided)\n if (\n interaction.spawn_entities !== void 0 &&\n typeof interaction.spawn_entities !== 'string'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].spawn_entities must be a string`,\n );\n }\n\n // Validate spawn_items array\n if (interaction.spawn_items !== void 0) {\n if (!Array.isArray(interaction.spawn_items)) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].spawn_items must be an array`,\n );\n }\n\n for (let j = 0; j < interaction.spawn_items.length; j++) {\n const spawn = interaction.spawn_items[j];\n if (!spawn) continue;\n\n // Validate table (string if provided)\n if (spawn.table !== void 0 && typeof spawn.table !== 'string') {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].spawn_items[${j}].table must be a string`,\n );\n }\n\n // Validate y_offset (number if provided)\n if (\n spawn.y_offset !== void 0 &&\n typeof spawn.y_offset !== 'number'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].spawn_items[${j}].y_offset must be a number`,\n );\n }\n }\n }\n\n // Validate swing (boolean if provided)\n if (\n interaction.swing !== void 0 &&\n typeof interaction.swing !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].swing must be a boolean`,\n );\n }\n\n // Validate take_item (boolean if provided)\n if (\n interaction.take_item !== void 0 &&\n typeof interaction.take_item !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].take_item must be a boolean`,\n );\n }\n\n // Validate transform_to_item (string if provided)\n if (\n interaction.transform_to_item !== void 0 &&\n typeof interaction.transform_to_item !== 'string'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].transform_to_item must be a string`,\n );\n }\n\n // Validate use_item (boolean if provided)\n if (\n interaction.use_item !== void 0 &&\n typeof interaction.use_item !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].use_item must be a boolean`,\n );\n }\n\n // Validate vibration (must be valid value if provided)\n if (\n interaction.vibration !== void 0 &&\n ![\n 'none',\n 'shear',\n 'entity_die',\n 'entity_act',\n 'entity_interact',\n ].includes(interaction.vibration)\n ) {\n throw new TypeError(\n `[set error]: interact: interactions[${i}].vibration must be one of: 'none', 'shear', 'entity_die', 'entity_act', 'entity_interact'`,\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:interact'] = config;\n }\n\n public setInventory(\n config: {\n additional_slots_per_strength?: number;\n can_be_siphoned_from?: boolean;\n container_type?: string;\n inventory_size?: number;\n private?: boolean;\n restrict_to_owner?: boolean;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: inventory: must be an object configuration',\n );\n }\n\n // Validate additional_slots_per_strength (number if provided)\n if (\n config.additional_slots_per_strength !== void 0 &&\n typeof config.additional_slots_per_strength !== 'number'\n ) {\n throw new TypeError(\n '[set error]: inventory: additional_slots_per_strength must be a number',\n );\n }\n\n // Validate can_be_siphoned_from (boolean if provided)\n if (\n config.can_be_siphoned_from !== void 0 &&\n typeof config.can_be_siphoned_from !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: inventory: can_be_siphoned_from must be a boolean',\n );\n }\n\n // Validate container_type (string if provided)\n if (\n config.container_type !== void 0 &&\n typeof config.container_type !== 'string'\n ) {\n throw new TypeError(\n '[set error]: inventory: container_type must be a string',\n );\n }\n\n // Validate inventory_size (number if provided)\n if (\n config.inventory_size !== void 0 &&\n typeof config.inventory_size !== 'number'\n ) {\n throw new TypeError(\n '[set error]: inventory: inventory_size must be a number',\n );\n }\n\n // Validate private (boolean if provided)\n if (config.private !== void 0 && typeof config.private !== 'boolean') {\n throw new TypeError('[set error]: inventory: private must be a boolean');\n }\n\n // Validate restrict_to_owner (boolean if provided)\n if (\n config.restrict_to_owner !== void 0 &&\n typeof config.restrict_to_owner !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: inventory: restrict_to_owner must be a boolean',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:inventory'] = config;\n }\n\n public setIsBaby(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:is_baby'] = {};\n }\n\n public setIsCharged(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:is_charged'] = {};\n }\n\n public setIsChested(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:is_chested'] = {};\n }\n\n public setIsDyeable(\n config: {\n interact_text?: string;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: is_dyeable: must be an object configuration',\n );\n }\n\n // Validate interact_text (string if provided)\n if (\n config.interact_text !== void 0 &&\n typeof config.interact_text !== 'string'\n ) {\n throw new TypeError(\n '[set error]: is_dyeable: interact_text must be a string',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:is_dyeable'] = config;\n }\n\n public setIsIgnited(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:is_ignited'] = {};\n }\n\n public setIsPregnant(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:is_pregnant'] = {};\n }\n\n public setItemControllable(\n config: {\n control_items?: string | string[];\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: item_controllable: must be an object configuration',\n );\n }\n\n // Validate control_items (string or string array if provided)\n if (config.control_items !== void 0) {\n if (\n typeof config.control_items !== 'string' &&\n (!Array.isArray(config.control_items) ||\n config.control_items.some((item: any) => typeof item !== 'string'))\n ) {\n throw new TypeError(\n '[set error]: item_controllable: control_items must be a string or array of strings',\n );\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:item_controllable'] = config;\n }\n\n /**\n * Makes the entity leashable with customized spring behavior\n */\n public setLeashable(\n config: {\n can_be_cut?: boolean;\n can_be_stolen?: boolean;\n hard_distance?: number;\n max_distance?: number;\n on_leash?: string | { event: string; target?: string };\n on_unleash?: string | { event: string; target?: string };\n soft_distance?: number;\n presets?: Array<{\n filter?: {\n subject?: string;\n test?: string;\n value?: any;\n operator?: string;\n [key: string]: any;\n };\n spring_type?: 'bouncy' | 'dampened' | 'quad_dampened';\n }>;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: leashable: must be an object configuration',\n );\n }\n\n // Validate boolean values\n if (\n config.can_be_cut !== void 0 &&\n typeof config.can_be_cut !== 'boolean'\n ) {\n throw new TypeError('[set error]: leashable: can_be_cut must be boolean');\n }\n if (\n config.can_be_stolen !== void 0 &&\n typeof config.can_be_stolen !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: leashable: can_be_stolen must be boolean',\n );\n }\n\n // Validate number values\n if (\n config.hard_distance !== void 0 &&\n typeof config.hard_distance !== 'number'\n ) {\n throw new TypeError(\n '[set error]: leashable: hard_distance must be a number',\n );\n }\n if (\n config.max_distance !== void 0 &&\n typeof config.max_distance !== 'number'\n ) {\n throw new TypeError(\n '[set error]: leashable: max_distance must be a number',\n );\n }\n if (\n config.soft_distance !== void 0 &&\n typeof config.soft_distance !== 'number'\n ) {\n throw new TypeError(\n '[set error]: leashable: soft_distance must be a number',\n );\n }\n\n // Validate event handlers\n if (config.on_leash !== void 0) {\n if (\n typeof config.on_leash !== 'string' &&\n (typeof config.on_leash !== 'object' ||\n config.on_leash === null ||\n !('event' in config.on_leash))\n ) {\n throw new TypeError(\n '[set error]: leashable: on_leash must be string or object with event property',\n );\n }\n }\n if (config.on_unleash !== void 0) {\n if (\n typeof config.on_unleash !== 'string' &&\n (typeof config.on_unleash !== 'object' ||\n config.on_unleash === null ||\n !('event' in config.on_unleash))\n ) {\n throw new TypeError(\n '[set error]: leashable: on_unleash must be string or object with event property',\n );\n }\n }\n\n // Validate presets array\n if (config.presets !== void 0) {\n if (!Array.isArray(config.presets)) {\n throw new TypeError('[set error]: leashable: presets must be an array');\n }\n\n for (const preset of config.presets) {\n if (typeof preset !== 'object' || preset === null) {\n throw new TypeError(\n '[set error]: leashable: presets must contain objects',\n );\n }\n\n if (\n preset.spring_type !== void 0 &&\n !['bouncy', 'dampened', 'quad_dampened'].includes(preset.spring_type)\n ) {\n throw new TypeError(\n \"[set error]: leashable: spring_type must be one of 'bouncy', 'dampened', or 'quad_dampened'\",\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:leashable'] = config;\n }\n\n /**\n * Allows entities to be leashed to this entity with retrieval option\n */\n public setLeashableTo(\n config: {\n can_retrieve_from?: boolean;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: leashable_to: must be an object configuration',\n );\n }\n\n // Validate can_retrieve_from\n if (\n config.can_retrieve_from !== void 0 &&\n typeof config.can_retrieve_from !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: leashable_to: can_retrieve_from must be boolean',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:leashable_to'] = config;\n }\n\n /**\n * Defines behavior when entities look at the owner entity\n */\n public setLookedAt(\n config: {\n field_of_view?: number;\n filters?: {\n subject?: string;\n test?: string;\n value?: any;\n operator?: string;\n [key: string]: any;\n };\n find_players_only?: boolean;\n line_of_sight_obstruction_type?:\n | 'outline'\n | 'collision'\n | 'collision_for_camera';\n look_at_locations?: string[];\n looked_at_cooldown?: { min: number; max: number };\n looked_at_event?: string | { event: string; target?: string };\n min_looked_at_duration?: number;\n not_looked_at_event?: string | { event: string; target?: string };\n scale_fov_by_distance?: boolean;\n search_radius?: number;\n set_target?:\n | boolean\n | 'never'\n | 'once_and_stop_scanning'\n | 'once_and_keep_scanning';\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: looked_at: must be an object configuration',\n );\n }\n\n // Validate field_of_view\n if (\n config.field_of_view !== void 0 &&\n typeof config.field_of_view !== 'number'\n ) {\n throw new TypeError(\n '[set error]: looked_at: field_of_view must be a number',\n );\n }\n\n // Validate find_players_only\n if (\n config.find_players_only !== void 0 &&\n typeof config.find_players_only !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: looked_at: find_players_only must be boolean',\n );\n }\n\n // Validate line_of_sight_obstruction_type\n if (\n config.line_of_sight_obstruction_type !== void 0 &&\n !['outline', 'collision', 'collision_for_camera'].includes(\n config.line_of_sight_obstruction_type,\n )\n ) {\n throw new TypeError(\n \"[set error]: looked_at: line_of_sight_obstruction_type must be 'outline', 'collision', or 'collision_for_camera'\",\n );\n }\n\n // Validate look_at_locations\n if (config.look_at_locations !== void 0) {\n if (\n !Array.isArray(config.look_at_locations) ||\n config.look_at_locations.some((loc: any) => typeof loc !== 'string')\n ) {\n throw new TypeError(\n '[set error]: looked_at: look_at_locations must be an array of strings',\n );\n }\n }\n\n // Validate looked_at_cooldown\n if (config.looked_at_cooldown !== void 0) {\n if (\n typeof config.looked_at_cooldown !== 'object' ||\n config.looked_at_cooldown === null ||\n typeof config.looked_at_cooldown.min !== 'number' ||\n typeof config.looked_at_cooldown.max !== 'number'\n ) {\n throw new TypeError(\n '[set error]: looked_at: looked_at_cooldown must be an object with min and max numbers',\n );\n }\n }\n\n // Validate looked_at_event\n if (config.looked_at_event !== void 0) {\n if (\n typeof config.looked_at_event !== 'string' &&\n (typeof config.looked_at_event !== 'object' ||\n config.looked_at_event === null ||\n !('event' in config.looked_at_event))\n ) {\n throw new TypeError(\n '[set error]: looked_at: looked_at_event must be string or object with event property',\n );\n }\n }\n\n // Validate min_looked_at_duration\n if (\n config.min_looked_at_duration !== void 0 &&\n typeof config.min_looked_at_duration !== 'number'\n ) {\n throw new TypeError(\n '[set error]: looked_at: min_looked_at_duration must be a number',\n );\n }\n\n // Validate not_looked_at_event\n if (config.not_looked_at_event !== void 0) {\n if (\n typeof config.not_looked_at_event !== 'string' &&\n (typeof config.not_looked_at_event !== 'object' ||\n config.not_looked_at_event === null ||\n !('event' in config.not_looked_at_event))\n ) {\n throw new TypeError(\n '[set error]: looked_at: not_looked_at_event must be string or object with event property',\n );\n }\n }\n\n // Validate scale_fov_by_distance\n if (\n config.scale_fov_by_distance !== void 0 &&\n typeof config.scale_fov_by_distance !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: looked_at: scale_fov_by_distance must be boolean',\n );\n }\n\n // Validate search_radius\n if (\n config.search_radius !== void 0 &&\n typeof config.search_radius !== 'number'\n ) {\n throw new TypeError(\n '[set error]: looked_at: search_radius must be a number',\n );\n }\n\n // Validate set_target\n if (config.set_target !== void 0) {\n if (\n typeof config.set_target !== 'boolean' &&\n config.set_target !== 'never' &&\n config.set_target !== 'once_and_stop_scanning' &&\n config.set_target !== 'once_and_keep_scanning'\n ) {\n throw new TypeError(\n \"[set error]: looked_at: set_target must be boolean, 'never', 'once_and_stop_scanning', or 'once_and_keep_scanning'\",\n );\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:looked_at'] = config;\n }\n\n /**\n * Sets the loot table for the entity\n */\n public setLoot(config: { table: string }): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError('[set error]: loot: must be an object configuration');\n }\n\n // Validate required table property\n if (typeof config.table !== 'string' || config.table.trim() === '') {\n throw new TypeError(\n '[set error]: loot: table must be a non-empty string',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:loot'] = config;\n }\n\n /**\n * Enables wandering trader management for the entity\n */\n public setManagedWanderingTrader(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:managed_wandering_trader'] = {};\n }\n\n /**\n * Sets the mark variant for the entity (visual differentiation)\n */\n public setMarkVariant(value: number): void {\n if (typeof value !== 'number' || !Number.isInteger(value) || value < 0) {\n throw new TypeError(\n '[set error]: mark_variant: value must be a non-negative integer',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:mark_variant'] = { value };\n }\n\n /**\n * Applies a mob effect to entities within range\n */\n public setMobEffect(config: {\n ambient?: boolean;\n cooldown_time?: number;\n effect_range?: number;\n effect_time?: number | 'infinite';\n entity_filter?: {\n subject?: string;\n test?: string;\n value?: any;\n operator?: string;\n [key: string]: any;\n };\n mob_effect: string;\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: mob_effect: must be an object configuration',\n );\n }\n\n // Validate required mob_effect property\n if (\n typeof config.mob_effect !== 'string' ||\n config.mob_effect.trim() === ''\n ) {\n throw new TypeError(\n '[set error]: mob_effect: mob_effect must be a non-empty string',\n );\n }\n\n // Validate ambient\n if (config.ambient !== void 0 && typeof config.ambient !== 'boolean') {\n throw new TypeError('[set error]: mob_effect: ambient must be boolean');\n }\n\n // Validate cooldown_time\n if (config.cooldown_time !== void 0) {\n if (\n typeof config.cooldown_time !== 'number' ||\n config.cooldown_time < 0\n ) {\n throw new TypeError(\n '[set error]: mob_effect: cooldown_time must be a non-negative number',\n );\n }\n }\n\n // Validate effect_range\n if (config.effect_range !== void 0) {\n if (typeof config.effect_range !== 'number' || config.effect_range <= 0) {\n throw new TypeError(\n '[set error]: mob_effect: effect_range must be a positive number',\n );\n }\n }\n\n // Validate effect_time\n if (config.effect_time !== void 0) {\n if (config.effect_time === 'infinite') {\n // Valid case\n } else if (\n typeof config.effect_time !== 'number' ||\n config.effect_time <= 0\n ) {\n throw new TypeError(\n \"[set error]: mob_effect: effect_time must be 'infinite' or a positive number\",\n );\n }\n }\n\n // Validate entity_filter (if provided)\n if (config.entity_filter !== void 0) {\n if (\n typeof config.entity_filter !== 'object' ||\n config.entity_filter === null\n ) {\n throw new TypeError(\n '[set error]: mob_effect: entity_filter must be an object',\n );\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:mob_effect'] = config;\n }\n\n /**\n * Sets mob effect immunity for the entity\n */\n public setMobEffectImmunity(mob_effects: string[]): void {\n if (!Array.isArray(mob_effects)) {\n throw new TypeError(\n '[set error]: mob_effect_immunity: mob_effects must be an array',\n );\n }\n\n // Validate each mob effect name\n for (const effect of mob_effects) {\n if (typeof effect !== 'string' || effect.trim() === '') {\n throw new TypeError(\n '[set error]: mob_effect_immunity: each mob effect must be a non-empty string',\n );\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:mob_effect_immunity'] = { mob_effects };\n }\n\n public setItemHopper(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:item_hopper'] = {};\n }\n\n /**\n * Sets the base movement speed for the entity\n */\n public setMovement(\n config: {\n max?: number;\n value?: number | { range_min: number; range_max: number };\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: movement: must be an object configuration',\n );\n }\n\n // Validate max\n if (\n config.max !== void 0 &&\n (typeof config.max !== 'number' || config.max <= 0)\n ) {\n throw new TypeError(\n '[set error]: movement: max must be a positive number',\n );\n }\n\n // Validate value\n if (config.value !== void 0) {\n if (typeof config.value === 'number') {\n if (config.value <= 0) {\n throw new TypeError(\n '[set error]: movement: value must be a positive number when provided as number',\n );\n }\n } else if (typeof config.value === 'object' && config.value !== null) {\n if (\n typeof config.value.range_min !== 'number' ||\n config.value.range_min < 0\n ) {\n throw new TypeError(\n '[set error]: movement: value.range_min must be a non-negative number',\n );\n }\n if (\n typeof config.value.range_max !== 'number' ||\n config.value.range_max <= 0\n ) {\n throw new TypeError(\n '[set error]: movement: value.range_max must be a positive number',\n );\n }\n if (config.value.range_min >= config.value.range_max) {\n throw new TypeError(\n '[set error]: movement: value.range_min must be less than value.range_max',\n );\n }\n } else {\n throw new TypeError(\n '[set error]: movement: value must be a number or object with range_min and range_max',\n );\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:movement'] = config;\n }\n\n /**\n * Sets amphibious movement control (swim in water and walk on land)\n */\n public setMovementAmphibious(max_turn?: number): void {\n const config: any = {};\n\n if (max_turn !== void 0) {\n if (typeof max_turn !== 'number' || max_turn <= 0) {\n throw new TypeError(\n '[set error]: movement.amphibious: max_turn must be a positive number',\n );\n }\n config.max_turn = max_turn;\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:movement.amphibious'] = config;\n }\n\n /**\n * Sets basic movement control\n */\n public setMovementBasic(max_turn?: number): void {\n const config: any = {};\n\n if (max_turn !== void 0) {\n if (typeof max_turn !== 'number' || max_turn <= 0) {\n throw new TypeError(\n '[set error]: movement.basic: max_turn must be a positive number',\n );\n }\n config.max_turn = max_turn;\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:movement.basic'] = config;\n }\n\n /**\n * Note: This component is not currently being used in game\n */\n public setMovementDolphin(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:movement.dolphin'] = {};\n }\n\n /**\n * Sets fly movement control\n */\n public setMovementFly(\n config: {\n max_turn?: number;\n speed_when_turning?: number;\n start_speed?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: movement.fly: must be an object configuration',\n );\n }\n\n // Validate max_turn\n if (\n config.max_turn !== void 0 &&\n (typeof config.max_turn !== 'number' || config.max_turn <= 0)\n ) {\n throw new TypeError(\n '[set error]: movement.fly: max_turn must be a positive number',\n );\n }\n\n // Validate speed_when_turning\n if (\n config.speed_when_turning !== void 0 &&\n (typeof config.speed_when_turning !== 'number' ||\n config.speed_when_turning <= 0)\n ) {\n throw new TypeError(\n '[set error]: movement.fly: speed_when_turning must be a positive number',\n );\n }\n\n // Validate start_speed\n if (\n config.start_speed !== void 0 &&\n (typeof config.start_speed !== 'number' || config.start_speed <= 0)\n ) {\n throw new TypeError(\n '[set error]: movement.fly: start_speed must be a positive number',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:movement.fly'] = config;\n }\n\n /**\n * Sets generic movement control (fly, swim, climb, etc.)\n */\n public setMovementGeneric(max_turn?: number): void {\n const config: any = {};\n\n if (max_turn !== void 0) {\n if (typeof max_turn !== 'number' || max_turn <= 0) {\n throw new TypeError(\n '[set error]: movement.generic: max_turn must be a positive number',\n );\n }\n config.max_turn = max_turn;\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:movement.generic'] = config;\n }\n\n /**\n * Sets glide movement control\n */\n public setMovementGlide(\n config: {\n max_turn?: number;\n speed_when_turning?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: movement.glide: must be an object configuration',\n );\n }\n\n // Validate max_turn\n if (\n config.max_turn !== void 0 &&\n (typeof config.max_turn !== 'number' || config.max_turn <= 0)\n ) {\n throw new TypeError(\n '[set error]: movement.glide: max_turn must be a positive number',\n );\n }\n\n // Validate speed_when_turning\n if (\n config.speed_when_turning !== void 0 &&\n (typeof config.speed_when_turning !== 'number' ||\n config.speed_when_turning <= 0)\n ) {\n throw new TypeError(\n '[set error]: movement.glide: speed_when_turning must be a positive number',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:movement.glide'] = config;\n }\n\n /**\n * Sets hover movement control\n */\n public setMovementHover(max_turn?: number): void {\n const config: any = {};\n\n if (max_turn !== void 0) {\n if (typeof max_turn !== 'number' || max_turn <= 0) {\n throw new TypeError(\n '[set error]: movement.hover: max_turn must be a positive number',\n );\n }\n config.max_turn = max_turn;\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:movement.hover'] = config;\n }\n\n /**\n * Sets jump movement control (requires minecraft:behavior.slime_attack for target following)\n */\n public setMovementJump(\n config: {\n jump_delay?:\n | number\n | [number, number]\n | { range_min: number; range_max: number };\n max_turn?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: movement.jump: must be an object configuration',\n );\n }\n\n // Validate jump_delay\n if (config.jump_delay !== void 0) {\n if (typeof config.jump_delay === 'number') {\n if (config.jump_delay < 0) {\n throw new TypeError(\n '[set error]: movement.jump: jump_delay must be a non-negative number when provided as number',\n );\n }\n } else if (\n Array.isArray(config.jump_delay) &&\n config.jump_delay.length === 2\n ) {\n if (\n typeof config.jump_delay[0] !== 'number' ||\n config.jump_delay[0] < 0\n ) {\n throw new TypeError(\n '[set error]: movement.jump: jump_delay[0] must be a non-negative number',\n );\n }\n if (\n typeof config.jump_delay[1] !== 'number' ||\n config.jump_delay[1] <= 0\n ) {\n throw new TypeError(\n '[set error]: movement.jump: jump_delay[1] must be a positive number',\n );\n }\n if (config.jump_delay[0] >= config.jump_delay[1]) {\n throw new TypeError(\n '[set error]: movement.jump: jump_delay[0] must be less than jump_delay[1]',\n );\n }\n } else if (\n typeof config.jump_delay === 'object' &&\n config.jump_delay !== null &&\n 'range_min' in config.jump_delay\n ) {\n const jumpDelay = config.jump_delay as {\n range_min?: number;\n range_max?: number;\n };\n if (\n typeof jumpDelay.range_min !== 'number' ||\n jumpDelay.range_min < 0\n ) {\n throw new TypeError(\n '[set error]: movement.jump: jump_delay.range_min must be a non-negative number',\n );\n }\n if (\n typeof jumpDelay.range_max !== 'number' ||\n jumpDelay.range_max <= 0\n ) {\n throw new TypeError(\n '[set error]: movement.jump: jump_delay.range_max must be a positive number',\n );\n }\n if (jumpDelay.range_min >= jumpDelay.range_max) {\n throw new TypeError(\n '[set error]: movement.jump: jump_delay.range_min must be less than jump_delay.range_max',\n );\n }\n } else {\n throw new TypeError(\n '[set error]: movement.jump: jump_delay must be number, array [min, max], or object with range_min and range_max',\n );\n }\n }\n\n // Validate max_turn\n if (\n config.max_turn !== void 0 &&\n (typeof config.max_turn !== 'number' || config.max_turn <= 0)\n ) {\n throw new TypeError(\n '[set error]: movement.jump: max_turn must be a positive number',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:movement.jump'] = config;\n }\n\n /**\n * Sets skip movement control\n */\n public setMovementSkip(max_turn?: number): void {\n const config: any = {};\n\n if (max_turn !== void 0) {\n if (typeof max_turn !== 'number' || max_turn <= 0) {\n throw new TypeError(\n '[set error]: movement.skip: max_turn must be a positive number',\n );\n }\n config.max_turn = max_turn;\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:movement.skip'] = config;\n }\n\n /**\n * Sets movement sound distance offset\n */\n public setMovementSoundDistanceOffset(value?: number): void {\n const config: any = {};\n\n if (value !== void 0) {\n if (typeof value !== 'number' || value <= 0) {\n throw new TypeError(\n '[set error]: movement.sound_distance_offset: value must be a positive number',\n );\n }\n config.value = value;\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:movement.sound_distance_offset'] = config;\n }\n\n /**\n * Sets sway movement control\n */\n public setMovementSway(\n config: {\n max_turn?: number;\n sway_amplitude?: number;\n sway_frequency?: number;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: movement.sway: must be an object configuration',\n );\n }\n\n // Validate max_turn\n if (\n config.max_turn !== void 0 &&\n (typeof config.max_turn !== 'number' || config.max_turn <= 0)\n ) {\n throw new TypeError(\n '[set error]: movement.sway: max_turn must be a positive number',\n );\n }\n\n // Validate sway_amplitude\n if (\n config.sway_amplitude !== void 0 &&\n (typeof config.sway_amplitude !== 'number' || config.sway_amplitude <= 0)\n ) {\n throw new TypeError(\n '[set error]: movement.sway: sway_amplitude must be a positive number',\n );\n }\n\n // Validate sway_frequency\n if (\n config.sway_frequency !== void 0 &&\n (typeof config.sway_frequency !== 'number' || config.sway_frequency <= 0)\n ) {\n throw new TypeError(\n '[set error]: movement.sway: sway_frequency must be a positive number',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:movement.sway'] = config;\n }\n\n /**\n * Makes the entity nameable with customization options\n */\n public setNameable(\n config: {\n allow_name_tag_renaming?: boolean;\n always_show?: boolean;\n default_trigger?: string;\n name_actions?: Array<{\n name_filter?: string[];\n on_named?: string | { event: string; target?: string };\n }>;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: nameable: must be an object configuration',\n );\n }\n\n // Validate allow_name_tag_renaming\n if (\n config.allow_name_tag_renaming !== void 0 &&\n typeof config.allow_name_tag_renaming !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: nameable: allow_name_tag_renaming must be boolean',\n );\n }\n\n // Validate always_show\n if (\n config.always_show !== void 0 &&\n typeof config.always_show !== 'boolean'\n ) {\n throw new TypeError('[set error]: nameable: always_show must be boolean');\n }\n\n // Validate default_trigger\n if (\n config.default_trigger !== void 0 &&\n (typeof config.default_trigger !== 'string' ||\n config.default_trigger.trim() === '')\n ) {\n throw new TypeError(\n '[set error]: nameable: default_trigger must be a non-empty string',\n );\n }\n\n // Validate name_actions\n if (config.name_actions !== void 0) {\n if (!Array.isArray(config.name_actions)) {\n throw new TypeError(\n '[set error]: nameable: name_actions must be an array',\n );\n }\n\n for (const action of config.name_actions) {\n if (typeof action !== 'object' || action === null) {\n throw new TypeError(\n '[set error]: nameable: each name_action must be an object',\n );\n }\n\n // Validate name_filter\n if (action.name_filter !== void 0) {\n if (!Array.isArray(action.name_filter)) {\n throw new TypeError(\n '[set error]: nameable: name_action.name_filter must be an array',\n );\n }\n for (const filter of action.name_filter) {\n if (typeof filter !== 'string' || filter.trim() === '') {\n throw new TypeError(\n '[set error]: nameable: each name_filter item must be a non-empty string',\n );\n }\n }\n }\n\n // Validate on_named\n if (action.on_named !== void 0) {\n if (\n typeof action.on_named !== 'string' &&\n (typeof action.on_named !== 'object' ||\n action.on_named === null ||\n !('event' in action.on_named))\n ) {\n throw new TypeError(\n '[set error]: nameable: name_action.on_named must be string or object with event property',\n );\n }\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:nameable'] = config;\n }\n\n /**\n * Sets climb navigation for the entity (like vanilla spiders)\n */\n public setNavigationClimb(\n config: {\n avoid_damage_blocks?: boolean;\n avoid_portals?: boolean;\n avoid_sun?: boolean;\n avoid_water?: boolean;\n blocks_to_avoid?: string[];\n can_breach?: boolean;\n can_break_doors?: boolean;\n can_jump?: boolean;\n can_open_doors?: boolean;\n can_open_iron_doors?: boolean;\n can_pass_doors?: boolean;\n can_path_from_air?: boolean;\n can_path_over_lava?: boolean;\n can_path_over_water?: boolean;\n can_sink?: boolean;\n can_swim?: boolean;\n can_walk?: boolean;\n can_walk_in_lava?: boolean;\n is_amphibious?: boolean;\n } = {},\n ): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: navigation.climb: must be an object configuration',\n );\n }\n\n // Validate boolean properties\n const booleanProps = [\n 'avoid_damage_blocks',\n 'avoid_portals',\n 'avoid_sun',\n 'avoid_water',\n 'can_breach',\n 'can_break_doors',\n 'can_jump',\n 'can_open_doors',\n 'can_open_iron_doors',\n 'can_pass_doors',\n 'can_path_from_air',\n 'can_path_over_lava',\n 'can_path_over_water',\n 'can_sink',\n 'can_swim',\n 'can_walk',\n 'can_walk_in_lava',\n 'is_amphibious',\n ];\n\n for (const prop of booleanProps) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: navigation.climb: ${prop} must be boolean`,\n );\n }\n }\n\n // Validate blocks_to_avoid\n if (config.blocks_to_avoid !== void 0) {\n if (!Array.isArray(config.blocks_to_avoid)) {\n throw new TypeError(\n '[set error]: navigation.climb: blocks_to_avoid must be an array',\n );\n }\n for (const block of config.blocks_to_avoid) {\n if (typeof block !== 'string' || block.trim() === '') {\n throw new TypeError(\n '[set error]: navigation.climb: each block in blocks_to_avoid must be a non-empty string',\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:navigation.climb'] = config;\n }\n\n /**\n * Sets float navigation for the entity\n */\n public setNavigationFloat(config: {\n avoid_damage_blocks?: boolean;\n avoid_portals?: boolean;\n avoid_sun?: boolean;\n avoid_water?: boolean;\n blocks_to_avoid?: string[];\n can_breach?: boolean;\n can_break_doors?: boolean;\n can_jump?: boolean;\n can_open_doors?: boolean;\n can_open_iron_doors?: boolean;\n can_pass_doors?: boolean;\n can_path_from_air?: boolean;\n can_path_over_water?: boolean;\n can_sink?: boolean;\n can_swim?: boolean;\n can_walk?: boolean;\n can_walk_in_lava?: boolean;\n is_amphibious?: boolean;\n using_door_annotation?: boolean;\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: navigation.float: must be an object configuration',\n );\n }\n\n // Validate boolean properties\n const booleanProps = [\n 'avoid_damage_blocks',\n 'avoid_portals',\n 'avoid_sun',\n 'avoid_water',\n 'can_breach',\n 'can_break_doors',\n 'can_jump',\n 'can_open_doors',\n 'can_open_iron_doors',\n 'can_pass_doors',\n 'can_path_from_air',\n 'can_path_over_water',\n 'can_sink',\n 'can_swim',\n 'can_walk',\n 'can_walk_in_lava',\n 'is_amphibious',\n 'using_door_annotation',\n ];\n\n for (const prop of booleanProps) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: navigation.float: ${prop} must be boolean`,\n );\n }\n }\n\n // Validate blocks_to_avoid\n if (config.blocks_to_avoid !== void 0) {\n if (!Array.isArray(config.blocks_to_avoid)) {\n throw new TypeError(\n '[set error]: navigation.float: blocks_to_avoid must be an array',\n );\n }\n for (const block of config.blocks_to_avoid) {\n if (typeof block !== 'string' || block.trim() === '') {\n throw new TypeError(\n '[set error]: navigation.float: each block in blocks_to_avoid must be a non-empty string',\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:navigation.float'] = config;\n }\n\n /**\n * Sets fly navigation for the entity\n */\n public setNavigationFly(config: {\n avoid_damage_blocks?: boolean;\n avoid_portals?: boolean;\n avoid_sun?: boolean;\n avoid_water?: boolean;\n blocks_to_avoid?: string[];\n can_breach?: boolean;\n can_break_doors?: boolean;\n can_jump?: boolean;\n can_open_doors?: boolean;\n can_open_iron_doors?: boolean;\n can_pass_doors?: boolean;\n can_path_from_air?: boolean;\n can_path_over_water?: boolean;\n can_sink?: boolean;\n can_swim?: boolean;\n can_walk?: boolean;\n can_walk_in_lava?: boolean;\n is_amphibious?: boolean;\n using_door_annotation?: boolean;\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: navigation.fly: must be an object configuration',\n );\n }\n\n // Validate boolean properties\n const booleanProps = [\n 'avoid_damage_blocks',\n 'avoid_portals',\n 'avoid_sun',\n 'avoid_water',\n 'can_breach',\n 'can_break_doors',\n 'can_jump',\n 'can_open_doors',\n 'can_open_iron_doors',\n 'can_pass_doors',\n 'can_path_from_air',\n 'can_path_over_water',\n 'can_sink',\n 'can_swim',\n 'can_walk',\n 'can_walk_in_lava',\n 'is_amphibious',\n 'using_door_annotation',\n ];\n\n for (const prop of booleanProps) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: navigation.fly: ${prop} must be boolean`,\n );\n }\n }\n\n // Validate blocks_to_avoid\n if (config.blocks_to_avoid !== void 0) {\n if (!Array.isArray(config.blocks_to_avoid)) {\n throw new TypeError(\n '[set error]: navigation.fly: blocks_to_avoid must be an array',\n );\n }\n for (const block of config.blocks_to_avoid) {\n if (typeof block !== 'string' || block.trim() === '') {\n throw new TypeError(\n '[set error]: navigation.fly: each block in blocks_to_avoid must be a non-empty string',\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:navigation.fly'] = config;\n }\n\n /**\n * Sets generic navigation for the entity\n */\n public setNavigationGeneric(config: {\n avoid_damage_blocks?: boolean;\n avoid_portals?: boolean;\n avoid_sun?: boolean;\n avoid_water?: boolean;\n blocks_to_avoid?: string[];\n can_breach?: boolean;\n can_break_doors?: boolean;\n can_jump?: boolean;\n can_open_doors?: boolean;\n can_open_iron_doors?: boolean;\n can_pass_doors?: boolean;\n can_path_from_air?: boolean;\n can_path_over_water?: boolean;\n can_sink?: boolean;\n can_swim?: boolean;\n can_walk?: boolean;\n can_walk_in_lava?: boolean;\n is_amphibious?: boolean;\n using_door_annotation?: boolean;\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: navigation.generic: must be an object configuration',\n );\n }\n\n // Validate boolean properties\n const booleanProps = [\n 'avoid_damage_blocks',\n 'avoid_portals',\n 'avoid_sun',\n 'avoid_water',\n 'can_breach',\n 'can_break_doors',\n 'can_jump',\n 'can_open_doors',\n 'can_open_iron_doors',\n 'can_pass_doors',\n 'can_path_from_air',\n 'can_path_over_water',\n 'can_sink',\n 'can_swim',\n 'can_walk',\n 'can_walk_in_lava',\n 'is_amphibious',\n 'using_door_annotation',\n ];\n\n for (const prop of booleanProps) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: navigation.generic: ${prop} must be boolean`,\n );\n }\n }\n\n // Validate blocks_to_avoid\n if (config.blocks_to_avoid !== void 0) {\n if (!Array.isArray(config.blocks_to_avoid)) {\n throw new TypeError(\n '[set error]: navigation.generic: blocks_to_avoid must be an array',\n );\n }\n for (const block of config.blocks_to_avoid) {\n if (typeof block !== 'string' || block.trim() === '') {\n throw new TypeError(\n '[set error]: navigation.generic: each block in blocks_to_avoid must be a non-empty string',\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:navigation.generic'] = config;\n }\n\n /**\n * Sets hover navigation for the entity\n */\n public setNavigationHover(config: {\n avoid_damage_blocks?: boolean;\n avoid_portals?: boolean;\n avoid_sun?: boolean;\n avoid_water?: boolean;\n blocks_to_avoid?: string[];\n can_breach?: boolean;\n can_break_doors?: boolean;\n can_jump?: boolean;\n can_open_doors?: boolean;\n can_open_iron_doors?: boolean;\n can_pass_doors?: boolean;\n can_path_from_air?: boolean;\n can_path_over_water?: boolean;\n can_sink?: boolean;\n can_swim?: boolean;\n can_walk?: boolean;\n can_walk_in_lava?: boolean;\n is_amphibious?: boolean;\n using_door_annotation?: boolean;\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: navigation.hover: must be an object configuration',\n );\n }\n\n // Validate boolean properties\n const booleanProps = [\n 'avoid_damage_blocks',\n 'avoid_portals',\n 'avoid_sun',\n 'avoid_water',\n 'can_breach',\n 'can_break_doors',\n 'can_jump',\n 'can_open_doors',\n 'can_open_iron_doors',\n 'can_pass_doors',\n 'can_path_from_air',\n 'can_path_over_water',\n 'can_sink',\n 'can_swim',\n 'can_walk',\n 'can_walk_in_lava',\n 'is_amphibious',\n 'using_door_annotation',\n ];\n\n for (const prop of booleanProps) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: navigation.hover: ${prop} must be boolean`,\n );\n }\n }\n\n // Validate blocks_to_avoid\n if (config.blocks_to_avoid !== void 0) {\n if (!Array.isArray(config.blocks_to_avoid)) {\n throw new TypeError(\n '[set error]: navigation.hover: blocks_to_avoid must be an array',\n );\n }\n for (const block of config.blocks_to_avoid) {\n if (typeof block !== 'string' || block.trim() === '') {\n throw new TypeError(\n '[set error]: navigation.hover: each block in blocks_to_avoid must be a non-empty string',\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:navigation.hover'] = config;\n }\n\n /**\n * Sets swim navigation for the entity\n */\n public setNavigationSwim(config: {\n avoid_damage_blocks?: boolean;\n avoid_portals?: boolean;\n avoid_sun?: boolean;\n avoid_water?: boolean;\n blocks_to_avoid?:\n | string[]\n | Array<{\n name?: string;\n tags?: string;\n }>;\n can_breach?: boolean;\n can_break_doors?: boolean;\n can_jump?: boolean;\n can_open_doors?: boolean;\n can_open_iron_doors?: boolean;\n can_pass_doors?: boolean;\n can_path_from_air?: boolean;\n can_path_over_lava?: boolean;\n can_path_over_water?: boolean;\n can_sink?: boolean;\n can_swim?: boolean;\n can_walk?: boolean;\n can_walk_in_lava?: boolean;\n is_amphibious?: boolean;\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: navigation.swim: must be an object configuration',\n );\n }\n\n // Validate boolean properties\n const booleanProps = [\n 'avoid_damage_blocks',\n 'avoid_portals',\n 'avoid_sun',\n 'avoid_water',\n 'can_breach',\n 'can_break_doors',\n 'can_jump',\n 'can_open_doors',\n 'can_open_iron_doors',\n 'can_pass_doors',\n 'can_path_from_air',\n 'can_path_over_lava',\n 'can_path_over_water',\n 'can_sink',\n 'can_swim',\n 'can_walk',\n 'can_walk_in_lava',\n 'is_amphibious',\n ];\n\n for (const prop of booleanProps) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: navigation.swim: ${prop} must be boolean`,\n );\n }\n }\n\n // Validate blocks_to_avoid\n if (config.blocks_to_avoid !== void 0) {\n if (!Array.isArray(config.blocks_to_avoid)) {\n throw new TypeError(\n '[set error]: navigation.swim: blocks_to_avoid must be an array',\n );\n }\n for (const block of config.blocks_to_avoid) {\n if (typeof block === 'string') {\n if (block.trim() === '') {\n throw new TypeError(\n '[set error]: navigation.swim: each block string in blocks_to_avoid must be non-empty',\n );\n }\n } else if (typeof block === 'object' && block !== null) {\n if (block.name !== void 0 && typeof block.name !== 'string') {\n throw new TypeError(\n '[set error]: navigation.swim: block.name must be a string',\n );\n }\n if (block.tags !== void 0 && typeof block.tags !== 'string') {\n throw new TypeError(\n '[set error]: navigation.swim: block.tags must be a string',\n );\n }\n } else {\n throw new TypeError(\n '[set error]: navigation.swim: each block in blocks_to_avoid must be a string or object',\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:navigation.swim'] = config;\n }\n\n /**\n * Sets walk navigation for the entity\n */\n public setNavigationWalk(config: {\n avoid_damage_blocks?: boolean;\n avoid_portals?: boolean;\n avoid_sun?: boolean;\n avoid_water?: boolean;\n blocks_to_avoid?:\n | string[]\n | Array<{\n name?: string;\n tags?: string;\n }>;\n can_breach?: boolean;\n can_break_doors?: boolean;\n can_float?: boolean;\n can_jump?: boolean;\n can_open_doors?: boolean;\n can_open_iron_doors?: boolean;\n can_pass_doors?: boolean;\n can_path_from_air?: boolean;\n can_path_over_lava?: boolean;\n can_path_over_water?: boolean;\n can_sink?: boolean;\n can_swim?: boolean;\n can_walk?: boolean;\n can_walk_in_lava?: boolean;\n is_amphibious?: boolean;\n using_door_annotation?: boolean;\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: navigation.walk: must be an object configuration',\n );\n }\n\n // Validate boolean properties\n const booleanProps = [\n 'avoid_damage_blocks',\n 'avoid_portals',\n 'avoid_sun',\n 'avoid_water',\n 'can_breach',\n 'can_break_doors',\n 'can_float',\n 'can_jump',\n 'can_open_doors',\n 'can_open_iron_doors',\n 'can_pass_doors',\n 'can_path_from_air',\n 'can_path_over_lava',\n 'can_path_over_water',\n 'can_sink',\n 'can_swim',\n 'can_walk',\n 'can_walk_in_lava',\n 'is_amphibious',\n 'using_door_annotation',\n ];\n\n for (const prop of booleanProps) {\n if (\n config[prop as keyof typeof config] !== void 0 &&\n typeof config[prop as keyof typeof config] !== 'boolean'\n ) {\n throw new TypeError(\n `[set error]: navigation.walk: ${prop} must be boolean`,\n );\n }\n }\n\n // Validate blocks_to_avoid\n if (config.blocks_to_avoid !== void 0) {\n if (!Array.isArray(config.blocks_to_avoid)) {\n throw new TypeError(\n '[set error]: navigation.walk: blocks_to_avoid must be an array',\n );\n }\n for (const block of config.blocks_to_avoid) {\n if (typeof block === 'string') {\n if (block.trim() === '') {\n throw new TypeError(\n '[set error]: navigation.walk: each block string in blocks_to_avoid must be non-empty',\n );\n }\n } else if (typeof block === 'object' && block !== null) {\n if (block.name !== void 0 && typeof block.name !== 'string') {\n throw new TypeError(\n '[set error]: navigation.walk: block.name must be a string',\n );\n }\n if (block.tags !== void 0 && typeof block.tags !== 'string') {\n throw new TypeError(\n '[set error]: navigation.walk: block.tags must be a string',\n );\n }\n } else {\n throw new TypeError(\n '[set error]: navigation.walk: each block in blocks_to_avoid must be a string or object',\n );\n }\n }\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:navigation.walk'] = config;\n }\n\n /**\n * Sets out_of_control configuration for the entity, defining the entity's 'out of control' state\n */\n public setOutOfControl(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:out_of_control'] = {};\n }\n\n /**\n * Sets peek configuration for the entity, defining the events that should be called during it\n */\n public setPeek(config: {\n on_close?: {\n event?: string; // Event to call when the entity is done peeking\n };\n on_open?: {\n event?: string; // Event to call when the entity starts peeking\n };\n on_target_open?: {\n event?: string; // Event to call when the entity's target entity starts peeking\n };\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError('[set error]: peek: must be an object configuration');\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:peek'] = config;\n }\n\n /**\n * Sets persistent configuration for the entity, defining whether an entity should be persistent\n */\n public setPersistent(): void {\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:persistent'] = {};\n }\n\n /**\n * Sets physics configuration for the entity, defining physics properties\n */\n public setPhysics(config: {\n has_collision?: boolean; // Whether or not the entity collides with things\n has_gravity?: boolean; // Whether or not the entity is affected by gravity\n push_towards_closest_space?: boolean; // Whether or not the entity should be pushed towards the nearest open area\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: physics: must be an object configuration',\n );\n }\n\n // Validate boolean properties\n if (\n config.has_collision !== void 0 &&\n typeof config.has_collision !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: physics: has_collision must be boolean',\n );\n }\n if (\n config.has_gravity !== void 0 &&\n typeof config.has_gravity !== 'boolean'\n ) {\n throw new TypeError('[set error]: physics: has_gravity must be boolean');\n }\n if (\n config.push_towards_closest_space !== void 0 &&\n typeof config.push_towards_closest_space !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: physics: push_towards_closest_space must be boolean',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:physics'] = config;\n }\n\n /**\n * Sets player.exhaustion configuration for the player, defining the player's exhaustion level\n */\n public setPlayerExhaustion(config: {\n max?: number; // A maximum value for a player's exhaustion\n value?: number; // The initial value of a player's exhaustion level\n }): void {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: player.exhaustion: must be an object configuration',\n );\n }\n\n // Validate numeric properties\n if (\n config.max !== void 0 &&\n (typeof config.max !== 'number' || config.max < 0)\n ) {\n throw new TypeError(\n '[set error]: player.exhaustion: max must be a non-negative number',\n );\n }\n if (\n config.value !== void 0 &&\n (typeof config.value !== 'number' || config.value < 0)\n ) {\n throw new TypeError(\n '[set error]: player.exhaustion: value must be a non-negative number',\n );\n }\n\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:player.exhaustion'] = config;\n }\n\n /**\n * Sets offspring configuration for the entity\n */\n public setOffspring(config: {\n blend_attributes?: boolean;\n deny_parents_variant?: Array<{\n chance?: number;\n max_variant?: number;\n min_variant?: number;\n }>;\n inherit_tamed?: boolean;\n mutation_factor?: {\n color?: number;\n extra_variant?: number;\n variant?: number;\n };\n offspring_pairs?: Record<string, string>;\n parent_centric_attribute_blending?: {\n attribute?: string;\n dampening?: number;\n };\n property_inheritance?: Record<string, any>;\n random_extra_variant_mutation_interval?: {\n range_max?: number;\n range_min?: number;\n };\n random_variant_mutation_interval?: {\n range_max?: number;\n range_min?: number;\n };\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new TypeError(\n '[set error]: offspring: must be an object configuration',\n );\n }\n\n // Validate boolean properties\n if (\n config.blend_attributes !== void 0 &&\n typeof config.blend_attributes !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: offspring: blend_attributes must be boolean',\n );\n }\n if (\n config.inherit_tamed !== void 0 &&\n typeof config.inherit_tamed !== 'boolean'\n ) {\n throw new TypeError(\n '[set error]: offspring: inherit_tamed must be boolean',\n );\n }\n\n // Validate deny_parents_variant array\n if (config.deny_parents_variant !== void 0) {\n if (!Array.isArray(config.deny_parents_variant)) {\n throw new TypeError(\n '[set error]: offspring: deny_parents_variant must be an array',\n );\n }\n for (const item of config.deny_parents_variant) {\n if (\n item.chance !== void 0 &&\n (typeof item.chance !== 'number' || item.chance < 0)\n ) {\n throw new TypeError(\n '[set error]: offspring: deny_parents_variant.chance must be a non-negative number',\n );\n }\n if (\n item.max_variant !== void 0 &&\n (typeof item.max_variant !== 'number' || item.max_variant < 0)\n ) {\n throw new TypeError(\n '[set error]: offspring: deny_parents_variant.max_variant must be a non-negative integer',\n );\n }\n if (\n item.min_variant !== void 0 &&\n (typeof item.min_variant !== 'number' || item.min_variant < 0)\n ) {\n throw new TypeError(\n '[set error]: offspring: deny_parents_variant.min_variant must be a non-negative integer',\n );\n }\n }\n }\n\n // Validate mutation_factor\n if (config.mutation_factor !== void 0) {\n if (\n config.mutation_factor.color !== void 0 &&\n (typeof config.mutation_factor.color !== 'number' ||\n config.mutation_factor.color < 0 ||\n config.mutation_factor.color > 1)\n ) {\n throw new TypeError(\n '[set error]: offspring: mutation_factor.color must be a number between 0.0 and 1.0',\n );\n }\n if (\n config.mutation_factor.extra_variant !== void 0 &&\n (typeof config.mutation_factor.extra_variant !== 'number' ||\n config.mutation_factor.extra_variant < 0 ||\n config.mutation_factor.extra_variant > 1)\n ) {\n throw new TypeError(\n '[set error]: offspring: mutation_factor.extra_variant must be a number between 0.0 and 1.0',\n );\n }\n if (\n config.mutation_factor.variant !== void 0 &&\n (typeof config.mutation_factor.variant !== 'number' ||\n config.mutation_factor.variant < 0 ||\n config.mutation_factor.variant > 1)\n ) {\n throw new TypeError(\n '[set error]: offspring: mutation_factor.variant must be a number between 0.0 and 1.0',\n );\n }\n }\n\n // Validate parent_centric_attribute_blending\n if (config.parent_centric_attribute_blending !== void 0) {\n if (\n typeof config.parent_centric_attribute_blending !== 'object' ||\n config.parent_centric_attribute_blending === null\n ) {\n throw new TypeError(\n '[set error]: offspring: parent_centric_attribute_blending must be an object',\n );\n }\n const item = config.parent_centric_attribute_blending;\n if (item.attribute !== void 0 && typeof item.attribute !== 'string') {\n throw new TypeError(\n '[set error]: offspring: parent_centric_attribute_blending attribute must be string',\n );\n }\n if (item.dampening !== void 0 && typeof item.dampening !== 'number') {\n throw new TypeError(\n '[set error]: offspring: parent_centric_attribute_blending dampening must be number',\n );\n }\n }\n\n // Validate random intervals\n if (config.random_extra_variant_mutation_interval !== void 0) {\n if (\n config.random_extra_variant_mutation_interval.range_max !== void 0 &&\n (typeof config.random_extra_variant_mutation_interval.range_max !==\n 'number' ||\n config.random_extra_variant_mutation_interval.range_max < 0)\n ) {\n throw new TypeError(\n '[set error]: offspring: random_extra_variant_mutation_interval.range_max must be a non-negative number',\n );\n }\n if (\n config.random_extra_variant_mutation_interval.range_min !== void 0 &&\n (typeof config.random_extra_variant_mutation_interval.range_min !==\n 'number' ||\n config.random_extra_variant_mutation_interval.range_min < 0)\n ) {\n throw new TypeError(\n '[set error]: offspring: random_extra_variant_mutation_interval.range_min must be a non-negative number',\n );\n }\n }\n if (config.random_variant_mutation_interval !== void 0) {\n if (\n config.random_variant_mutation_interval.range_max !== void 0 &&\n (typeof config.random_variant_mutation_interval.range_max !==\n 'number' ||\n config.random_variant_mutation_interval.range_max < 0)\n ) {\n throw new TypeError(\n '[set error]: offspring: random_variant_mutation_interval.range_max must be a non-negative number',\n );\n }\n if (\n config.random_variant_mutation_interval.range_min !== void 0 &&\n (typeof config.random_variant_mutation_interval.range_min !==\n 'number' ||\n config.random_variant_mutation_interval.range_min < 0)\n ) {\n throw new TypeError(\n '[set error]: offspring: random_variant_mutation_interval.range_min must be a non-negative number',\n );\n }\n }\n if (!this.#opt.components) {\n this.#opt.components = {};\n }\n this.#opt.components['minecraft:offspring'] = config;\n }\n}\nexport { EntityComponent };\n","/**\n * @description Sound Event Choose List\n * @description Update time UTC 2026/4/8\n */\nconst SoundEventEnum = [\n 'activate',\n 'add.chest',\n 'admire',\n 'agitated',\n 'ambient',\n 'ambient.aggressive',\n 'ambient.baby',\n 'ambient.basalt_deltas.additions',\n 'ambient.basalt_deltas.loop',\n 'ambient.basalt_deltas.mood',\n 'ambient.candle',\n 'ambient.cave',\n 'ambient.crimson_forest.additions',\n 'ambient.crimson_forest.loop',\n 'ambient.crimson_forest.mood',\n 'ambient.in.air',\n 'ambient.in.raid',\n 'ambient.in.water',\n 'ambient.nether_wastes.additions',\n 'ambient.nether_wastes.loop',\n 'ambient.nether_wastes.mood',\n 'ambient.pollinate',\n 'ambient.screamer',\n 'ambient.soulsand_valley.additions',\n 'ambient.soulsand_valley.loop',\n 'ambient.soulsand_valley.mood',\n 'ambient.tame',\n 'ambient.underwater.enter',\n 'ambient.underwater.exit',\n 'ambient.warped_forest.additions',\n 'ambient.warped_forest.loop',\n 'ambient.warped_forest.mood',\n 'ambient.weather.the_end_light_flash',\n 'ambient.worried',\n 'angry',\n 'apply_effect.bad_omen',\n 'apply_effect.raid_omen',\n 'apply_effect.trial_omen',\n 'armor',\n 'armor.break_wolf',\n 'armor.crack_wolf',\n 'armor.equip_chain',\n 'armor.equip_copper',\n 'armor.equip_diamond',\n 'armor.equip_elytra',\n 'armor.equip_generic',\n 'armor.equip_gold',\n 'armor.equip_iron',\n 'armor.equip_leather',\n 'armor.equip_netherite',\n 'armor.equip_wolf',\n 'armor.repair_wolf',\n 'armor.unequip_generic',\n 'armor.unequip_wolf',\n 'attach',\n 'attack',\n 'attack.critical',\n 'attack.nodamage',\n 'attack.strong',\n 'balloonpop',\n 'beacon.activate',\n 'beacon.ambient',\n 'beacon.deactivate',\n 'beacon.power',\n 'blast',\n 'block.bamboo_sapling.place',\n 'block.barrel.close',\n 'block.barrel.open',\n 'block.beehive.drip',\n 'block.beehive.enter',\n 'block.beehive.exit',\n 'block.beehive.shear',\n 'block.beehive.work',\n 'block.bell.hit',\n 'block.blastfurnace.fire_crackle',\n 'block.campfire.crackle',\n 'block.cartography_table.use',\n 'block.click',\n 'block.click.fail',\n 'block.composter.empty',\n 'block.composter.fill',\n 'block.composter.fill_success',\n 'block.composter.ready',\n 'block.copper_bulb.turn_off',\n 'block.copper_bulb.turn_on',\n 'block.creaking_heart.trail',\n 'block.decorated_pot.insert',\n 'block.decorated_pot.insert_fail',\n 'block.enchanting_table.use',\n 'block.end_portal.spawn',\n 'block.end_portal_frame.fill',\n 'block.fletching_table.use',\n 'block.frog_spawn.break',\n 'block.frog_spawn.hatch',\n 'block.furnace.lit',\n 'block.grindstone.use',\n 'block.loom.use',\n 'block.scaffolding.climb',\n 'block.sculk.spread',\n 'block.sculk_catalyst.bloom',\n 'block.sculk_sensor.place',\n 'block.sculk_shrieker.place',\n 'block.sculk_shrieker.shriek',\n 'block.sign.waxed_interact_fail',\n 'block.smithing_table.use',\n 'block.smoker.smoke',\n 'block.sniffer_egg.crack',\n 'block.sniffer_egg.hatch',\n 'block.stonecutter.use',\n 'block.sweet_berry_bush.hurt',\n 'block.sweet_berry_bush.pick',\n 'block.turtle_egg.attack',\n 'block.turtle_egg.break',\n 'block.turtle_egg.crack',\n 'block.turtle_egg.hatch',\n 'boost',\n 'born',\n 'bottle.dragonbreath',\n 'bottle.empty',\n 'bottle.fill',\n 'bow',\n 'bow.hit',\n 'break',\n 'break.block',\n 'break_pot',\n 'breathe',\n 'breeze_wind_charge.burst',\n 'brush',\n 'brush_completed',\n 'bubble.down',\n 'bubble.downinside',\n 'bubble.pop',\n 'bubble.up',\n 'bubble.upinside',\n 'bucket.empty.fish',\n 'bucket.empty.lava',\n 'bucket.empty.powder_snow',\n 'bucket.empty.water',\n 'bucket.fill.fish',\n 'bucket.fill.lava',\n 'bucket.fill.powder_snow',\n 'bucket.fill.water',\n 'bullet.hit',\n 'bundle.drop_contents',\n 'bundle.insert',\n 'bundle.insert_fail',\n 'bundle.remove_one',\n 'burp',\n 'button.click_off',\n 'button.click_on',\n 'cake.add_candle',\n 'camera.take_picture',\n 'cant_breed',\n 'cast.spell',\n 'cauldron_drip.lava.pointed_dripstone',\n 'cauldron_drip.water.pointed_dripstone',\n 'celebrate',\n 'charge',\n 'charge.sculk',\n 'chest.closed',\n 'chest.open',\n 'chime.amethyst_block',\n 'chorusdeath',\n 'chorusgrow',\n 'close',\n 'close_long',\n 'conduit.activate',\n 'conduit.ambient',\n 'conduit.attack',\n 'conduit.deactivate',\n 'conduit.short',\n 'convert_mooshroom',\n 'convert_to_drowned',\n 'convert_to_frog',\n 'convert_to_stray',\n 'converted_to_zombified',\n 'copper.wax.off',\n 'copper.wax.on',\n 'crafter.craft',\n 'crafter.disable_slot',\n 'crafter.fail',\n 'creaking_heart_spawn',\n 'crossbow.loading.end',\n 'crossbow.loading.middle',\n 'crossbow.loading.start',\n 'crossbow.quick_charge.end',\n 'crossbow.quick_charge.middle',\n 'crossbow.quick_charge.start',\n 'crossbow.shoot',\n 'dash_ready',\n 'deactivate',\n 'death',\n 'death.baby',\n 'death.in.water',\n 'death.mid.volume',\n 'death.min.volume',\n 'death.screamer',\n 'death.to.zombie',\n 'default',\n 'deny',\n 'detach',\n 'disappeared',\n 'door.close',\n 'door.open',\n 'drink',\n 'drink.honey',\n 'drink.milk',\n 'drip.lava.pointed_dripstone',\n 'drip.water.pointed_dripstone',\n 'drop.slot',\n 'eat',\n 'elderguardian.curse',\n 'elemconstruct.open',\n 'enderchest.closed',\n 'enderchest.open',\n 'explode',\n 'extinguish.candle',\n 'extinguish.fire',\n 'fall',\n 'fall.big',\n 'fall.small',\n 'fang',\n 'fence_gate.close',\n 'fence_gate.open',\n 'fire',\n 'fizz',\n 'flap',\n 'flop',\n 'fly',\n 'freeze',\n 'fuse',\n 'gallop',\n 'glass',\n 'glow_squid.ink_squirt',\n 'glowstick.use',\n 'growl',\n 'haggle',\n 'haggle.idle',\n 'haggle.no',\n 'haggle.yes',\n 'heartbeat',\n 'heavy.step',\n 'hit',\n 'horn_break',\n 'horn_call0',\n 'horn_call1',\n 'horn_call2',\n 'horn_call3',\n 'horn_call4',\n 'horn_call5',\n 'horn_call6',\n 'horn_call7',\n 'hurt',\n 'hurt.baby',\n 'hurt.in.water',\n 'hurt.reduced',\n 'hurt.screamer',\n 'icebomb.hit',\n 'ignite',\n 'imitate.blaze',\n 'imitate.bogged',\n 'imitate.breeze',\n 'imitate.camel_husk',\n 'imitate.cave_spider',\n 'imitate.creaking',\n 'imitate.creeper',\n 'imitate.drowned',\n 'imitate.elder_guardian',\n 'imitate.ender_dragon',\n 'imitate.enderman',\n 'imitate.endermite',\n 'imitate.evocation_illager',\n 'imitate.ghast',\n 'imitate.guardian',\n 'imitate.happy_ghast',\n 'imitate.husk',\n 'imitate.magma_cube',\n 'imitate.parched',\n 'imitate.phantom',\n 'imitate.pillager',\n 'imitate.polar_bear',\n 'imitate.ravager',\n 'imitate.shulker',\n 'imitate.silverfish',\n 'imitate.skeleton',\n 'imitate.slime',\n 'imitate.spider',\n 'imitate.stray',\n 'imitate.vex',\n 'imitate.vindication_illager',\n 'imitate.warden',\n 'imitate.witch',\n 'imitate.wither',\n 'imitate.wither_skeleton',\n 'imitate.wolf',\n 'imitate.zoglin',\n 'imitate.zombie',\n 'imitate.zombie_pigman',\n 'imitate.zombie_villager',\n 'insert',\n 'insert_enchanted',\n 'irongolem.crack',\n 'irongolem.repair',\n 'item.book.put',\n 'item.copper_spear.attack_hit',\n 'item.copper_spear.attack_miss',\n 'item.copper_spear.use',\n 'item.diamond_spear.attack_hit',\n 'item.diamond_spear.attack_miss',\n 'item.diamond_spear.use',\n 'item.enchant.lunge1',\n 'item.enchant.lunge2',\n 'item.enchant.lunge3',\n 'item.fizz',\n 'item.golden_spear.attack_hit',\n 'item.golden_spear.attack_miss',\n 'item.golden_spear.use',\n 'item.iron_spear.attack_hit',\n 'item.iron_spear.attack_miss',\n 'item.iron_spear.use',\n 'item.netherite_spear.attack_hit',\n 'item.netherite_spear.attack_miss',\n 'item.netherite_spear.use',\n 'item.shield.block',\n 'item.spear.attack_hit',\n 'item.spear.attack_miss',\n 'item.spear.use',\n 'item.spyglass.stop_using',\n 'item.spyglass.use',\n 'item.stone_spear.attack_hit',\n 'item.stone_spear.attack_miss',\n 'item.stone_spear.use',\n 'item.trident.hit',\n 'item.trident.hit_ground',\n 'item.trident.return',\n 'item.trident.riptide_1',\n 'item.trident.riptide_2',\n 'item.trident.riptide_3',\n 'item.trident.throw',\n 'item.trident.thunder',\n 'item.use.on',\n 'item.wooden_spear.attack_hit',\n 'item.wooden_spear.attack_miss',\n 'item.wooden_spear.use',\n 'item_given',\n 'item_taken',\n 'item_thrown',\n 'jump',\n 'jump.prevent',\n 'jump_to_block',\n 'land',\n 'large.blast',\n 'launch',\n 'lava',\n 'lava.pop',\n 'lay_egg',\n 'lay_spawn',\n 'lead.break',\n 'lead.leash',\n 'lead.unleash',\n 'leashknot.break',\n 'leashknot.place',\n 'levelup',\n 'listening',\n 'listening_angry',\n 'lodestone_compass.link_compass_to_lodestone',\n 'lt.reaction.bleach',\n 'lt.reaction.epaste',\n 'lt.reaction.epaste2',\n 'lt.reaction.fertilizer',\n 'lt.reaction.fire',\n 'lt.reaction.fireball',\n 'lt.reaction.icebomb',\n 'lt.reaction.mgsalt',\n 'lt.reaction.miscexplosion',\n 'lt.reaction.miscfire',\n 'lt.reaction.miscmystical',\n 'lt.reaction.miscmystical2',\n 'lt.reaction.product',\n 'mace.heavy_smash_ground',\n 'mace.smash_air',\n 'mace.smash_ground',\n 'mad',\n 'milk',\n 'milk.screamer',\n 'milk_suspiciously',\n 'mob.armadillo.brush',\n 'mob.armadillo.scute_drop',\n 'mob.armor_stand.place',\n 'mob.hoglin.converted_to_zombified',\n 'mob.husk.convert_to_zombie',\n 'mob.pig.death',\n 'mob.player.hurt_drown',\n 'mob.player.hurt_freeze',\n 'mob.player.hurt_on_fire',\n 'mob.warning',\n 'mob.warning.baby',\n 'multi_swap',\n 'nearby_close',\n 'nearby_closer',\n 'nearby_closest',\n 'note',\n 'note.bass',\n 'ominous_bottle.end_use',\n 'ominous_item_spawner.about_to_spawn_item',\n 'ominous_item_spawner.spawn_item',\n 'ominous_item_spawner.spawn_item_begin',\n 'open',\n 'open_long',\n 'panic',\n 'pant',\n 'particle.soul_escape.loud',\n 'particle.soul_escape.quiet',\n 'pause_growth',\n 'pick_berries.cave_vines',\n 'pickup',\n 'pickup_enchanted',\n 'piston.in',\n 'piston.out',\n 'place',\n 'place_in_water',\n 'place_item',\n 'plop',\n 'pop',\n 'portal',\n 'portal.travel',\n 'potion.brewed',\n 'power.off',\n 'power.off.sculk_sensor',\n 'power.on',\n 'power.on.sculk_sensor',\n 'pre_ram',\n 'pre_ram.screamer',\n 'prepare.attack',\n 'prepare.summon',\n 'prepare.wololo',\n 'presneeze',\n 'pressure_plate.click_off',\n 'pressure_plate.click_on',\n 'pumpkin.carve',\n 'purr',\n 'purreow',\n 'raid.horn',\n 'ram_impact',\n 'ram_impact.screamer',\n 'random.anvil_use',\n 'reappeared',\n 'record.11',\n 'record.13',\n 'record.5',\n 'record.blocks',\n 'record.cat',\n 'record.chirp',\n 'record.creator',\n 'record.creator_music_box',\n 'record.far',\n 'record.lava_chicken',\n 'record.mall',\n 'record.mellohi',\n 'record.otherside',\n 'record.pigstep',\n 'record.precipice',\n 'record.relic',\n 'record.stal',\n 'record.strad',\n 'record.tears',\n 'record.wait',\n 'record.ward',\n 'reflect',\n 'remedy',\n 'reset_growth',\n 'respawn_anchor.ambient',\n 'respawn_anchor.charge',\n 'respawn_anchor.deplete',\n 'respawn_anchor.set_spawn',\n 'retreat',\n 'roar',\n 'saddle',\n 'saddle_in_water',\n 'scared',\n 'scrape',\n 'screech',\n 'shake',\n 'shatter_pot',\n 'shear',\n 'shoot',\n 'shulker.close',\n 'shulker.open',\n 'shulkerbox.closed',\n 'shulkerbox.open',\n 'single_swap',\n 'sleep',\n 'smithing_table.use',\n 'sneeze',\n 'sonic_boom',\n 'sonic_charge',\n 'sparkler.active',\n 'sparkler.use',\n 'spawn',\n 'splash',\n 'sponge.absorb',\n 'squid.ink_squirt',\n 'squish.big',\n 'squish.small',\n 'stare',\n 'state_change',\n 'step',\n 'step.baby',\n 'step_lava',\n 'step_sand',\n 'stun',\n 'swim',\n 'swoop',\n 'takeoff',\n 'teleport',\n 'tempt',\n 'thorns',\n 'throw',\n 'thunder',\n 'tilt_down.big_dripleaf',\n 'tilt_up.big_dripleaf',\n 'tongue',\n 'trapdoor.close',\n 'trapdoor.open',\n 'trial_spawner.ambient',\n 'trial_spawner.ambient_ominous',\n 'trial_spawner.charge_activate',\n 'trial_spawner.close_shutter',\n 'trial_spawner.detect_player',\n 'trial_spawner.eject_item',\n 'trial_spawner.open_shutter',\n 'trial_spawner.spawn_mob',\n 'tripod',\n 'twinkle',\n 'ui.cartography_table.take_result',\n 'ui.loom.take_result',\n 'ui.stonecutter.take_result',\n 'undefined',\n 'unfect',\n 'unfreeze',\n 'unsaddle',\n 'vault.activate',\n 'vault.ambient',\n 'vault.close_shutter',\n 'vault.deactivate',\n 'vault.eject_item',\n 'vault.insert_item',\n 'vault.insert_item_fail',\n 'vault.open_shutter',\n 'vault.reject_rewarded_player',\n 'warn',\n 'water',\n 'whine',\n 'wind_charge.burst',\n];\ntype SoundEvent = (typeof SoundEventEnum)[number];\nexport default SoundEvent;\nexport { SoundEventEnum };\n","/**\n * @description Particle Type List\n * @description Update time UTC 2026/4/8\n */\n\nconst ParticleTypeEnum = [\n 'balloongas',\n 'bleach',\n 'blockforcefield',\n 'blueflame',\n 'breezewindexplosion',\n 'bubble',\n 'bubblecolumndown',\n 'bubblecolumnup',\n 'bubblemanual',\n 'campfiresmoke',\n 'campfiresmoketall',\n 'candleflame',\n 'carrotboost',\n 'coloredflame',\n 'conduit',\n 'creakingcrumble',\n 'crit',\n 'dragonbreath',\n 'dragonbreathfire',\n 'dragonbreathtrail',\n 'dragondestroyblock',\n 'driphoney',\n 'driplava',\n 'dripwater',\n 'dustplume',\n 'electricspark',\n 'enchantingtable',\n 'endrod',\n 'evaporation',\n 'explode',\n 'eyeblossomclose',\n 'eyeblossomopen',\n 'fallingborderdust',\n 'fallingdust',\n 'fireworks',\n 'fireworksoverlay',\n 'fireworksstarter',\n 'flame',\n 'food',\n 'greenflame',\n 'heart',\n 'hugeexplosion',\n 'iconcrack',\n 'ink',\n 'largeexplode',\n 'largesmoke',\n 'lava',\n 'mobappearance',\n 'mobflame',\n 'mobspell',\n 'mobspellambient',\n 'mobspellinstantaneous',\n 'myceliumdust',\n 'none',\n 'note',\n 'obsidiantear',\n 'paleoakleaves',\n 'pausemobgrowth',\n 'portal',\n 'portalreverse',\n 'rainsplash',\n 'reddust',\n 'resetmobgrowth',\n 'risingborderdust',\n 'sculksoul',\n 'shriek',\n 'shulkerbullet',\n 'slime',\n 'smoke',\n 'sneeze',\n 'snowballpoof',\n 'snowflake',\n 'sonicexplosion',\n 'soul',\n 'sparkler',\n 'spit',\n 'stalactitedriplava',\n 'stalactitedripwater',\n 'terrain',\n 'totem',\n 'townaura',\n 'trackingemitter',\n 'vaultconnection',\n 'villagerangry',\n 'villagerhappy',\n 'watersplash',\n 'watersplashmanual',\n 'waterwake',\n 'wax',\n 'whitesmoke',\n 'windexplosion',\n 'witchspell',\n 'wolfarmorcrack',\n] as const;\ntype ParticleType = (typeof ParticleTypeEnum)[number];\nexport default ParticleType;\nexport { ParticleTypeEnum };\n","/**\n * Enchantable slot types for minecraft:enchantable component\n * Specifies which types of enchantments can be applied to items\n * @description Update time UTC 2026/4/8\n */\nexport const EnchantableSlotArray = [\n 'none',\n 'all',\n 'g_armor',\n 'armor_head',\n 'armor_torso',\n 'armor_feet',\n 'armor_legs',\n 'sword',\n 'bow',\n 'spear',\n 'crossbow',\n 'melee_spear',\n 'g_tool',\n 'hoe',\n 'shears',\n 'flintsteel',\n 'shield',\n 'g_digging',\n 'axe',\n 'pickaxe',\n 'shovel',\n 'fishing_rod',\n 'carrot_stick',\n 'elytra',\n 'cosmetic_head',\n] as const;\n\nexport type EnchantableSlot = (typeof EnchantableSlotArray)[number];\n\nexport const EnchantableSlotEnum = EnchantableSlotArray;\n\nexport default EnchantableSlot;\n","import ParticleType from './types/ParticleType';\nimport SoundEvent from './types/SoundEvent';\nimport EnchantableSlot from './types/EnchantableSlot';\nimport type { PNGImageComponent } from './lib';\nexport interface FilePoint {\n /**\n * Edit file path base\n */\n base: 'behavior' | 'resources' | 'root';\n /**\n * <BASE>/$file\n */\n file: string;\n}\nexport interface FileBindSource {\n /**\n * Bind some value\n * Mcx can write to file\n */\n bind: 'item_texture';\n /**\n * Set bind value mode\n * @example type = \"append\"; bind value => array (append expression return)\n * @example type = \"all_replace\" bind value => unknown (all replace)\n */\n type: 'append' | 'all_replace';\n}\nexport type DefineEntry =\n | {\n from: 'var';\n data: string;\n }\n | {\n from: 'read_file';\n data: FilePoint;\n default?: string;\n };\nexport type FileEditExpression<\n T extends Record<string, DefineEntry> = Record<string, DefineEntry>,\n> = {\n define: T;\n run: (define: { [K in keyof T]: string }) => Promise<\n string | string[] | [string, string][]\n >;\n};\nexport function createFileEdit<\n T extends Record<string, DefineEntry>,\n>(expression: {\n define: T;\n run: (define: { [K in keyof T]: string }) => Promise<\n string | string[] | [string, string][]\n >;\n}): FileEditExpression<T> {\n return expression;\n}\nexport type FileEditOption =\n | {\n type: 'edit';\n id?: string;\n source: FilePoint | FileBindSource;\n expression: FileEditExpression<any>;\n }\n | {\n type: 'copy_assets';\n id?: string;\n source: FilePoint;\n output: FilePoint;\n };\nexport interface BaseJson {\n format_version: string;\n _meta: {\n type: 'item' | 'entity';\n file_edit?: (\n | FileEditOption\n | {\n type: 'batch';\n options: FileEditOption[];\n id?: string;\n }\n )[];\n };\n}\ninterface ItemComponentOptions {\n id: string;\n name: string;\n format: string;\n components: Partial<{\n offHand: boolean;\n damage: number;\n canDestroyInCreative: boolean;\n icon: string | PNGImageComponent;\n block_placer?: {\n aligned_placement?: boolean;\n block: string;\n replace_block_item?: boolean;\n use_on?: Array<\n | string\n | {\n name: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n }\n >;\n };\n cooldown?: {\n category: string;\n duration: number;\n type?: 'use' | 'attack';\n };\n compostable?: {\n composting_chance: number;\n };\n bundle_interaction?: {\n num_viewable_slots?: number;\n };\n /**\n * Enables an item to store data of the dynamic container associated with it.\n * A dynamic container is a container for storing items that is linked to an item instead of a block or an entity.\n *\n * Tip:While this component can be defined on its own, to be able to interact with the item's storage container\n * the item must have a minecraft:bundle_interaction item component defined.\n *\n * Tip:This item requires a format version of at least 1.21.40.\n *\n * @example {\n * \"max_slots\": 64,\n * \"max_weight_limit\": 64,\n * \"weight_in_storage_item\": 4,\n * \"allow_nested_storage_items\": true,\n * \"banned_items\": [\"minecraft:shulker_box\", \"minecraft:undyed_shulker_box\"]\n * }\n */\n 'minecraft:storage_item'?: {\n /**\n * Determines whether another Storage Item is allowed inside of this item.\n * @default true\n */\n allow_nested_storage_items?: boolean;\n\n /**\n * List of items that are exclusively allowed in this Storage Item.\n * If empty all items are allowed.\n * @default []\n */\n allowed_items?: string[];\n\n /**\n * List of items that are not allowed in this Storage Item.\n * @default []\n * @example [\"minecraft:shulker_box\", \"minecraft:undyed_shulker_box\"]\n */\n banned_items?: string[];\n\n /**\n * The maximum number of slots in the storage container.\n * Maximum is 64. Default is 64. Value must be <= 64.\n * @default 64\n * @type Integer number\n */\n max_slots?: number;\n\n /**\n * The maximum allowed weight of the sum of all contained items.\n * Maximum is 64. Default is 64. Value must be <= 64.\n * @default 64\n * @type Decimal number\n */\n max_weight_limit?: number;\n\n /**\n * The weight of this item when inside another Storage Item.\n * Default is 4. 0 means item is not allowed in another Storage Item.\n * @default 4\n * @type Decimal number\n */\n weight_in_storage_item?: number;\n };\n\n /**\n * Specifies the weight of an item when stored inside another storage item.\n * Controls how much weight this item contributes to storage's total weight.\n *\n * @example {\"weight_in_storage_item\": 4}\n */\n 'minecraft:storage_weight_modifier'?: {\n /**\n * The weight of this item when inside another Storage Item.\n * Default is 4. 0 means item is not allowed in another Storage Item.\n * @default 4\n * @type Integer number\n */\n weight_in_storage_item: number;\n };\n\n /**\n * Specifies the maximum weight limit that a storage item can hold.\n * Controls the total weight capacity of the storage container.\n *\n * @example {\"max_weight_limit\": 64}\n */\n 'minecraft:storage_weight_limit'?: {\n /**\n * The maximum allowed weight of the sum of all contained items.\n * Maximum is 64. Default is 64. Value must be <= 64.\n * @default 64\n * @type Integer number\n */\n max_weight_limit: number;\n };\n\n /**\n * Makes an item throwable by the player, similar to a snowball or ender pearl.\n * Use with minecraft:projectile to specify which entity is spawned when thrown.\n *\n * 注意:Combine with minecraft:projectile to define the projectile entity.\n * For charged throws (like tridents), set scale_power_by_draw_duration to true and configure min/max draw durations.\n */\n 'minecraft:throwable'?: {\n /**\n * Determines whether the item should use the swing animation when thrown.\n * @default false\n */\n do_swing_animation?: boolean;\n\n /**\n * The scale at which the power of the throw increases.\n * @default 1.0\n */\n launch_power_scale?: number;\n\n /**\n * The maximum duration to draw a throwable item.\n * @default 0.0\n */\n max_draw_duration?: number;\n\n /**\n * The maximum power to launch the throwable item.\n * @default 1.0\n */\n max_launch_power?: number;\n\n /**\n * The minimum duration to draw a throwable item.\n * @default 0.0\n */\n min_draw_duration?: number;\n\n /**\n * Whether or not the power of the throw increases with duration charged.\n * @default false\n */\n scale_power_by_draw_duration?: boolean;\n };\n\n // Alias for minecraft:throwable\n throwable?: {\n do_swing_animation?: boolean;\n launch_power_scale?: number;\n max_draw_duration?: number;\n max_launch_power?: number;\n min_draw_duration?: number;\n scale_power_by_draw_duration?: boolean;\n };\n\n /**\n * Determines which tags are included on a given item.\n */\n 'minecraft:tags'?: {\n /**\n * An array that can contain multiple item tags.\n * @default []\n */\n tags?: string[];\n };\n\n // Alias for minecraft:tags\n tags?: {\n tags?: string[];\n };\n\n /**\n * Duration, in seconds, of the item's swing animation played when mining or attacking.\n * Affects visuals only and does not impact attack frequency or other gameplay mechanics.\n */\n 'minecraft:swing_duration'?: {\n /**\n * Duration, in seconds, of the item's swing animation played when mining or attacking.\n * Affects visuals only and does not impact attack frequency or other gameplay mechanics.\n * @default 0.30000001192092896\n */\n value?: number;\n };\n\n // Alias for minecraft:swing_duration\n swing_duration?: {\n value?: number;\n };\n\n /**\n * Use_animation specifies which animation is played when the player uses the item.\n * Supported animations: 'eat', 'drink', 'block', 'bow', 'camera', 'spear', 'crossbow', 'spyglass', 'toot_horn', 'brush'.\n */\n 'minecraft:use_animation'?:\n | string\n | {\n /**\n * The animation type to play when the item is used.\n */\n value?: string;\n };\n\n /**\n * Sets the wearable item component, which allows an item to be worn by a player in a specified equipment slot.\n * Valid slot values: slot.armor.head, slot.armor.chest, slot.armor.legs, slot.armor.feet, slot.armor.body,\n * slot.weapon.mainhand, slot.weapon.offhand, slot.hotbar, slot.inventory, slot.enderchest, slot.saddle, slot.armor, slot.chest\n */\n 'minecraft:wearable'?: {\n /**\n * Defines the equipment slot this item can be equipped to (required).\n */\n slot:\n | 'slot.armor.head'\n | 'slot.armor.chest'\n | 'slot.armor.legs'\n | 'slot.armor.feet'\n | 'slot.armor.body'\n | 'slot.weapon.mainhand'\n | 'slot.weapon.offhand'\n | 'slot.hotbar'\n | 'slot.inventory'\n | 'slot.enderchest'\n | 'slot.saddle'\n | 'slot.armor'\n | 'slot.chest';\n /**\n * Determines how much armor protection this wearable item provides (non-negative integer).\n */\n protection?: number;\n /**\n * Determines whether the player's location relative to the origin is hidden from other entities.\n */\n hides_player_location?: boolean;\n /**\n * Determines whether this wearable item can be dispensed from dispensers.\n */\n dispensable?: boolean;\n };\n\n /**\n * Determines how long an item takes to use and optional use modifiers.\n * Use duration is required, and movement modifier must be ≤ 1.0.\n */\n 'minecraft:use_modifiers'?: {\n /**\n * How long it takes to use the item (required, non-negative).\n */\n use_duration: number;\n /**\n * Optional value that modifiers the entity's movement speed when this item is used (must be ≤ 1.0).\n */\n movement_modifier?: number;\n /**\n * Whether vibrations are emitted when the item starts or stops being used.\n */\n emit_vibrations?: boolean;\n /**\n * Sound played when the item starts being used.\n */\n start_sound?: string;\n };\n\n /**\n * Overrides the swing sounds emitted by the user while the item is being used.\n * Specifies the sound to play when swinging the item.\n */\n 'minecraft:swing_sounds'?: {\n /**\n * Sound played when an attack hits and deals critical damage.\n */\n attack_critical_hit?: string;\n /**\n * Sound played when an attack hits.\n */\n attack_hit?: string;\n /**\n * Sound played when an attack misses or deals no damage due to invulnerability.\n */\n attack_miss?: string;\n };\n\n // Alias for minecraft:use_animation\n use_animation?:\n | string\n | {\n value?: string;\n };\n\n // Alias for minecraft:wearable\n wearable?: {\n slot:\n | 'slot.armor.head'\n | 'slot.armor.chest'\n | 'slot.armor.legs'\n | 'slot.armor.feet'\n | 'slot.armor.body'\n | 'slot.weapon.mainhand'\n | 'slot.weapon.offhand';\n protection?: number;\n hides_player_location?: boolean;\n dispensable?: boolean;\n };\n\n // Alias for minecraft:use_modifiers\n use_modifiers?: {\n use_duration: number;\n movement_modifier?: number;\n emit_vibrations?: boolean;\n start_sound?: string;\n };\n\n // Alias for minecraft:swing_sounds\n swing_sounds?: {\n attack_critical_hit?: string;\n attack_hit?: string;\n attack_miss?: string;\n };\n\n // Alias for minecraft:storage_item\n storage_item?: {\n allow_nested_storage_items?: boolean;\n allowed_items?: string[];\n banned_items?: string[];\n max_slots?: number;\n max_weight_limit?: number;\n weight_in_storage_item?: number;\n };\n\n // Alias for minecraft:storage_weight_modifier\n storage_weight_modifier?: {\n weight_in_storage_item: number;\n };\n\n // Alias for minecraft:storage_weight_limit\n storage_weight_limit?: {\n max_weight_limit: number;\n };\n glint?: boolean;\n hand_equipped?: boolean;\n digger?: {\n use_efficiency?: boolean;\n destroy_speeds?: Array<{\n block:\n | string\n | {\n name?: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n };\n speed: number;\n }>;\n };\n damage_absorption?: {\n absorbable_causes: string[];\n };\n durability?: {\n max_durability: number;\n damage_chance?: {\n min: number;\n max: number;\n };\n };\n durability_sensor?: {\n /**\n * The durability value at which the effects are emitted\n */\n durability?: number;\n\n /**\n * Defines both the durability threshold, and the effects emitted when that threshold is met.\n */\n durability_thresholds?: Array<{\n /**\n * The effects are emitted when the item durability value is less than or equal to this value.\n * @default 0\n * @type Integer number\n */\n durability: number;\n\n /**\n * Particle effect to emit when the threshold is met.\n * @type Particle Type choices\n */\n particle_type?: ParticleType;\n\n /**\n * Sound effect to emit when the threshold is met.\n * @type Sound Event choices\n */\n sound_event?: SoundEvent;\n }>;\n\n /**\n * Particle effect to emit when durability sensor triggers\n * @type Particle Type choices\n */\n particle_type?: ParticleType;\n\n /**\n * Sound effect to emit when durability sensor triggers\n * @type Sound Event choices\n */\n sound_event?: SoundEvent;\n };\n /**\n * Enables custom items to be dyed in cauldrons.\n * Requires format version 1.21.30 or greater.\n */\n dyeable?: {\n /**\n * The default color for the dyed item\n * Can be a hex string (e.g., \"#175882\") or array of RGB numbers [255, 255, 255]\n * @default [255, 255, 255]\n */\n default_color?: string | [number, number, number];\n };\n /**\n * Determines what enchantments can be applied to the item.\n * Not all enchantments will have an effect on all item components.\n */\n enchantable?: {\n /**\n * Specifies which types of enchantments can be applied.\n * For example, \"bow\" would allow this item to be enchanted as if it were a bow.\n * @example \"armor_torso\" for chestplate, \"armor_feet\" for boots\n */\n slot?: EnchantableSlot;\n\n /**\n * Specifies the value of the enchantment (minimum of 0).\n * @default 0\n * @type Integer number\n * @example Chestplate: 10\n */\n value?: number;\n };\n /**\n * Determines whether the item is immune to burning when dropped in fire or lava.\n */\n 'minecraft:fire_resistant'?: {\n value?: boolean;\n };\n\n /**\n * Allows an item to place entities into the world.\n * Additionally, in version 1.19.80 and above, the component allows the item to set the spawn type of a monster spawner.\n */\n 'minecraft:entity_placer'?: {\n /**\n * List of block descriptors of the blocks that this item can be dispensed on.\n * If left empty, all blocks will be allowed.\n */\n dispense_on?: Array<\n | string\n | {\n name: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n }\n >;\n /**\n * The entity to be placed in the world.\n * Value must match a regular expression pattern of \"^(?:\\\\w+(?:.\\\\w+):(?=\\\\w))?(?:\\\\w+(?:.\\\\w+))(?:<((?:\\\\w+(?:.\\\\w+):(?=\\\\w))?\\\\w+(?:.\\\\w+))*>)?$\"\n * @example \"minecraft:turtle\"\n */\n entity: string;\n /**\n * List of block descriptors of the blocks that this item can be used on.\n * If left empty, all blocks will be allowed.\n */\n use_on?: Array<\n | string\n | {\n name: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n }\n >;\n };\n\n /**\n * Allows this item to be used as fuel in a furnace to 'cook' other items.\n * This item can also be represented as a Decimal number.\n */\n 'minecraft:fuel'?: {\n /**\n * How long in seconds will this fuel cook items for.\n * Value must be >= 0.05.\n */\n duration: number;\n };\n\n /**\n * Allows an item to deal kinetic damage and its effects.\n * This happens every tick while in use, in a straight line along the user's view vector.\n */\n 'minecraft:kinetic_weapon'?: {\n /**\n * Defines the reach used when the user is in Creative Mode.\n * Defaults to \"reach\" if unspecified.\n */\n creative_reach?: {\n max?: number;\n min?: number;\n };\n /**\n * Conditions that need to be satisfied for damage to be applied.\n * If not specified, damage is not applied.\n */\n damage_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n /**\n * Value added to the the scaled dot product (after applying \"damage_multiplier\").\n * @default 0\n */\n damage_modifier?: number;\n /**\n * Value multiplied to sum of the dot products of the user and target's velocity vectors projected onto the view vector.\n * @default 1\n */\n damage_multiplier?: number;\n /**\n * Time, in ticks, after which kinetic damage and its effects start being applied.\n * @default 0\n */\n delay?: number;\n /**\n * Conditions that need to be satisfied for riders to be dismounted.\n * If not specified, riders cannot be dismounted.\n */\n dismount_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n /**\n * Added tolerance to the view vector raycast for detecting entity collisions.\n * @default 0\n */\n hitbox_margin?: number;\n /**\n * Conditions that need to be satisfied for knockback to be applied.\n * If not specified, knockback is not applied.\n */\n knockback_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n /**\n * Conditions that need to be satisfied for a specific effect of a kinetic weapon to be applied.\n * If negative, the effect is applied indefinitely.\n */\n kinetic_effect_conditions?: {\n /**\n * Time, in ticks, during which the effect can be applied after \"delay\" elapses.\n * If negative, the effect is applied indefinitely.\n * @default -1\n * @type Integer number\n */\n max_duration?: number;\n /**\n * Minimum relative speed of the user with respect to the target (projected onto the view vector via a dot product) required for the effect to be applied.\n * @default 0\n * @type Decimal number\n */\n min_relative_speed?: number;\n /**\n * Minimum user's speed (projected onto the view vector via a dot product) required for the effect to be applied.\n * @default 0\n * @type Decimal number\n */\n min_speed?: number;\n };\n /**\n * Defines the range (in blocks) along the user's view vector where entities can be hit.\n * @default {\"max\":3,\"min\":0}\n */\n reach?: {\n max?: number;\n min?: number;\n };\n };\n\n /**\n * A boolean or string that determines if the interact button is shown in touch controls,\n * and what text is displayed on the button.\n */\n 'minecraft:interact_button'?: boolean | string;\n\n /**\n * Determines the color of the item name when hovering over it.\n * This item can also be represented as a String.\n */\n 'minecraft:hover_text_color'?: {\n /**\n * The color of the item hover text.\n */\n value?: string;\n };\n\n /**\n * Sets the item as a food component, allowing it to be edible to the player.\n */\n 'minecraft:food'?: {\n /**\n * If true you can always eat this item (even when not hungry).\n * @default false\n * @example AppleEnchanted: true\n */\n can_always_eat?: boolean;\n\n /**\n * Cooldown time in seconds\n * @type Decimal number\n */\n cooldown_time?: number;\n\n /**\n * Cooldown type\n * @example \"chorusfruit\" for chorus fruit cooldown\n */\n cooldown_type?: string;\n\n /**\n * Array of effects applied when consuming the food\n * @example [{\"name\":\"regeneration\",\"chance\":1,\"duration\":30,\"amplifier\":1}]\n */\n effects?: FoodEffect[];\n\n /**\n * Whether the food is a meat item\n */\n is_meat?: boolean;\n\n /**\n * Value that is added to the entity's nutrition when the item is used.\n * @default 0\n * @type Integer number\n * @example Apple: 4, Baked Potato: 5, Beef: 3\n */\n nutrition?: number;\n\n /**\n * Minecraft event trigger for on use action\n * @example \"chorus_teleport\" for chorus fruit\n */\n on_use_action?: string;\n\n /**\n * Minecraft event trigger for on use range\n * @example [8, 8, 8] for chorus fruit\n */\n on_use_range?: [number, number, number];\n\n /**\n * saturation_modifier is used in this formula: (nutrition * saturation_modifier * 2) when applying the saturation buff.\n * Can be a number or string values like \"poor\", \"low\", \"normal\", \"good\", \"supernatural\".\n * @default 0.6000000238418579\n * @type Decimal number | string\n * @example Apple: 0.3, AppleEnchanted: \"supernatural\", Baked Potato: \"normal\"\n */\n saturation_modifier?:\n | number\n | 'poor'\n | 'low'\n | 'normal'\n | 'good'\n | 'supernatural';\n\n /**\n * When used, converts to the item specified by the string in this field.\n * @example \"bowl\" for soup items, \"glass_bottle\" for honey bottle\n */\n using_converts_to?: string;\n\n /**\n * Deprecated - no longer in use.\n * Array of effect names to remove when eating this food.\n * This property was deprecated and is no longer supported in newer versions.\n */\n remove_effects?: string[];\n };\n\n /**\n * Sets the item as a food component, allowing it to be edible to the player.\n */\n food?: {\n /**\n * If true you can always eat this item (even when not hungry).\n * @default false\n * @example AppleEnchanted: true\n */\n can_always_eat?: boolean;\n\n /**\n * Cooldown time in seconds\n * @type Decimal number\n */\n cooldown_time?: number;\n\n /**\n * Cooldown type\n * @example \"chorusfruit\" for chorus fruit cooldown\n */\n cooldown_type?: string;\n\n /**\n * Array of effects applied when consuming the food\n * @example [{\"name\":\"regeneration\",\"chance\":1,\"duration\":30,\"amplifier\":1}]\n */\n effects?: FoodEffect[];\n\n /**\n * Whether the food is a meat item\n */\n is_meat?: boolean;\n\n /**\n * Value that is added to the entity's nutrition when the item is used.\n * @default 0\n * @type Integer number\n * @example Apple: 4, Baked Potato: 5, Beef: 3\n */\n nutrition?: number;\n\n /**\n * Minecraft event trigger for on use action\n * @example \"chorus_teleport\" for chorus fruit\n */\n on_use_action?: string;\n\n /**\n * Minecraft event trigger for on use range\n * @example [8, 8, 8] for chorus fruit\n */\n on_use_range?: [number, number, number];\n\n /**\n * saturation_modifier is used in this formula: (nutrition * saturation_modifier * 2) when applying the saturation buff.\n * Can be a number or string values like \"poor\", \"low\", \"normal\", \"good\", \"supernatural\".\n * @default 0.6000000238418579\n * @type Decimal number | string\n * @example Apple: 0.3, AppleEnchanted: \"supernatural\", Baked Potato: \"normal\"\n */\n saturation_modifier?:\n | number\n | 'poor'\n | 'low'\n | 'normal'\n | 'good'\n | 'supernatural';\n\n /**\n * When used, converts to the item specified by the string in this field.\n * @example \"bowl\" for soup items, \"glass_bottle\" for honey bottle\n */\n using_converts_to?: string;\n\n /**\n * Deprecated - no longer in use.\n * Array of effect names to remove when eating this food.\n * This property was deprecated and is no longer supported in newer versions.\n */\n remove_effects?: string[];\n };\n /**\n * Determines whether the item is immune to burning when dropped in fire or lava.\n */\n fire_resistant?: {\n /**\n * Determines whether the item is immune to burning when dropped in fire or lava.\n * @default true\n */\n value?: boolean;\n };\n\n /**\n * Allows an item to place entities into the world.\n * Additionally, in version 1.19.80 and above, the component allows the item to set the spawn type of a monster spawner.\n */\n entity_placer?: {\n /**\n * List of block descriptors of the blocks that this item can be dispensed on.\n * If left empty, all blocks will be allowed.\n */\n dispense_on?: Array<\n | string\n | {\n name: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n }\n >;\n /**\n * The entity to be placed in the world.\n * Value must match a regular expression pattern of \"^(?:\\\\w+(?:.\\\\w+):(?=\\\\w))?(?:\\\\w+(?:.\\\\w+))(?:<((?:\\\\w+(?:.\\\\w+):(?=\\\\w))?\\\\w+(?:.\\\\w+))*>)?$\"\n * @example \"minecraft:turtle\"\n */\n entity: string;\n /**\n * List of block descriptors of the blocks that this item can be used on.\n * If left empty, all blocks will be allowed.\n */\n use_on?: Array<\n | string\n | {\n name: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n }\n >;\n };\n\n /**\n * Allows this item to be used as fuel in a furnace to 'cook' other items.\n * This item can also be represented as a Decimal number.\n */\n fuel?: {\n duration: number;\n };\n kinetic_weapon?: {\n creative_reach?: { max?: number; min?: number };\n damage_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n damage_modifier?: number;\n damage_multiplier?: number;\n delay?: number;\n dismount_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n hitbox_margin?: number;\n knockback_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n kinetic_effect_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n reach?: { max?: number; min?: number };\n };\n interact_button?: boolean | string;\n hover_text_color?: { value?: string };\n /**\n * Determines whether the item interacts with liquid blocks on use.\n * To allow placement of blocks on liquids, see the 'placement_filter' block component.\n * This item can also be represented as a Boolean true/false.\n */\n 'minecraft:liquid_clipped'?:\n | boolean\n | {\n /**\n * Determines whether the item interacts with liquid blocks on use.\n */\n value?: boolean;\n };\n liquid_clipped?:\n | boolean\n | {\n /**\n * Determines whether the item interacts with liquid blocks on use.\n */\n value?: boolean;\n };\n /**\n * Determines how many of an item can be stacked together.\n * This item can also be represented as a Integer number.\n * @default 64\n */\n 'minecraft:max_stack_size'?:\n | number\n | {\n /**\n * How many of an item that can be stacked together.\n * @default 64\n */\n value?: number;\n };\n max_stack_size?:\n | number\n | {\n /**\n * How many of an item that can be stacked together.\n * @default 64\n */\n value?: number;\n };\n }>;\n}\ntype JSONValue<T> =\n | T\n | {\n value: T;\n };\n\n/**\n * Food effects interface for minecraft:food component\n */\ninterface FoodEffect {\n /**\n * Effect amplifier\n * @example 1 for regeneration amplifier\n */\n amplifier?: number;\n\n /**\n * Chance of the effect being applied (0.0 to 1.0)\n * @example 0.3 for 30% chance\n */\n chance?: number;\n\n /**\n * Duration of the effect in seconds\n * @example 30 for 30 seconds duration\n */\n duration?: number;\n\n /**\n * Name of the effect\n * @example \"regeneration\", \"absorption\", \"hunger\"\n */\n name?: string;\n}\n\ntype ItemGroupEnum =\n | 'minecraft:itemGroup.name.planks'\n | 'minecraft:itemGroup.name.walls'\n | 'minecraft:itemGroup.name.fence'\n | 'minecraft:itemGroup.name.fenceGate'\n | 'minecraft:itemGroup.name.glass'\n | 'minecraft:itemGroup.name.trapdoor'\n | 'minecraft:itemGroup.name.door'\n | 'minecraft:itemGroup.name.stairs'\n | 'minecraft:itemGroup.name.glassPane'\n | 'minecraft:itemGroup.name.slab'\n | 'minecraft:itemGroup.name.stoneBrick'\n | 'minecraft:itemGroup.name.sandstone'\n | 'minecraft:itemGroup.name.copper'\n | 'minecraft:itemGroup.name.wool'\n | 'minecraft:itemGroup.name.woolCarpet'\n | 'minecraft:itemGroup.name.concretePowder'\n | 'minecraft:itemGroup.name.concrete'\n | 'minecraft:itemGroup.name.stainedClay'\n | 'minecraft:itemGroup.name.glazedTerracotta'\n | 'minecraft:itemGroup.name.ore'\n | 'minecraft:itemGroup.name.stone'\n | 'minecraft:itemGroup.name.log'\n | 'minecraft:itemGroup.name.wood'\n | 'minecraft:itemGroup.name.leaves'\n | 'minecraft:itemGroup.name.sapling'\n | 'minecraft:itemGroup.name.seed'\n | 'minecraft:itemGroup.name.crop'\n | 'minecraft:itemGroup.name.grass'\n | 'minecraft:itemGroup.name.coral_decorations'\n | 'minecraft:itemGroup.name.flower'\n | 'minecraft:itemGroup.name.dye'\n | 'minecraft:itemGroup.name.rawFood'\n | 'minecraft:itemGroup.name.mushroom'\n | 'minecraft:itemGroup.name.monsterStoneEgg'\n | 'minecraft:itemGroup.name.mobEgg'\n | 'minecraft:itemGroup.name.coral'\n | 'minecraft:itemGroup.name.sculk'\n | 'minecraft:itemGroup.name.helmet'\n | 'minecraft:itemGroup.name.chestplate'\n | 'minecraft:itemGroup.name.leggings'\n | 'minecraft:itemGroup.name.boots'\n | 'minecraft:itemGroup.name.sword'\n | 'minecraft:itemGroup.name.axe'\n | 'minecraft:itemGroup.name.pickaxe'\n | 'minecraft:itemGroup.name.shovel'\n | 'minecraft:itemGroup.name.hoe'\n | 'minecraft:itemGroup.name.arrow'\n | 'minecraft:itemGroup.name.cookedFood'\n | 'minecraft:itemGroup.name.miscFood'\n | 'minecraft:itemGroup.name.goatHorn'\n | 'minecraft:itemGroup.name.bundles'\n | 'minecraft:itemGroup.name.horseArmor'\n | 'minecraft:itemGroup.name.potion'\n | 'minecraft:itemGroup.name.splashPotion'\n | 'minecraft:itemGroup.name.lingeringPotion'\n | 'minecraft:itemGroup.name.ominousBottle'\n | 'minecraft:itemGroup.name.bed'\n | 'minecraft:itemGroup.name.candles'\n | 'minecraft:itemGroup.name.anvil'\n | 'minecraft:itemGroup.name.chest'\n | 'minecraft:itemGroup.name.shulkerBox'\n | 'minecraft:itemGroup.name.record'\n | 'minecraft:itemGroup.name.sign'\n | 'minecraft:itemGroup.name.hanging_sign'\n | 'minecraft:itemGroup.name.skull'\n | 'minecraft:itemGroup.name.boat'\n | 'minecraft:itemGroup.name.chestboat'\n | 'minecraft:itemGroup.name.rail'\n | 'minecraft:itemGroup.name.minecart'\n | 'minecraft:itemGroup.name.buttons'\n | 'minecraft:itemGroup.name.pressurePlate'\n | 'minecraft:itemGroup.name.banner_pattern'\n | 'minecraft:itemGroup.name.potterySherds'\n | 'minecraft:itemGroup.name.smithing_templates';\n\ninterface ItemJson extends BaseJson {\n 'minecraft:item': {\n description: {\n identifier: string;\n category?: string;\n menu_category?: {\n category: string;\n group: ItemGroupEnum;\n };\n };\n components: {\n 'minecraft:display_name'?: JSONValue<string>;\n 'minecraft:allow_off_hand'?: JSONValue<boolean>;\n 'minecraft:can_destroy_in_creative'?: JSONValue<boolean>;\n 'minecraft:compostable'?: {\n composting_chance: number;\n };\n 'minecraft:cooldown'?: {\n category: string;\n // 正整数 10 进制\n duration: number;\n type: 'use' | 'attack';\n };\n 'minecraft:damage'?: JSONValue<number>;\n 'minecraft:icon'?: {\n textures: string;\n };\n 'minecraft:block_placer'?: {\n aligned_placement?: boolean;\n block: string;\n replace_block_item?: boolean;\n use_on?: Array<\n | string\n | {\n name: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n }\n >;\n };\n 'minecraft:bundle_interaction'?: {\n num_viewable_slots?: number;\n };\n 'minecraft:storage_item'?: {\n max_slots?: number;\n max_weight_limit?: number;\n weight_in_storage_item?: number;\n allow_nested_storage_items?: boolean;\n allowed_items?: string[];\n banned_items?: string[];\n };\n 'minecraft:storage_weight_limit'?: {\n /**\n * 存储物品允许的最大总重量(十进制数)\n * @default undefined\n */\n limit?: number;\n };\n 'minecraft:storage_weight_modifier'?: {\n /**\n * 应用于存储物品的重量乘数\n * 在计算中,物品的基本重量会乘以该值\n * @default undefined\n */\n multiplier?: number;\n };\n 'minecraft:glint'?: JSONValue<boolean>;\n 'minecraft:hand_equipped'?: JSONValue<boolean>;\n 'minecraft:digger'?: {\n use_efficiency?: boolean;\n destroy_speeds?: Array<{\n block:\n | string\n | {\n name?: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n };\n speed: number;\n }>;\n };\n 'minecraft:damage_absorption'?: {\n absorbable_causes: string[];\n };\n 'minecraft:durability'?: {\n max_durability: number;\n damage_chance?: {\n min: number;\n max: number;\n };\n };\n 'minecraft:durability_sensor'?: {\n durability?: number;\n durability_thresholds?: Array<{\n durability: number;\n particle_type?: ParticleType;\n sound_event?: SoundEvent;\n }>;\n particle_type?: ParticleType;\n sound_event?: SoundEvent;\n };\n /**\n * Enables custom items to be dyed in cauldrons.\n * Requires format version 1.21.30 or greater.\n */\n 'minecraft:dyeable'?: {\n /**\n * The default color for the dyed item\n * Can be a hex string (e.g., \"#175882\") or array of RGB numbers [255, 255, 255]\n * @default [255, 255, 255]\n */\n default_color?: string | [number, number, number];\n };\n /**\n * Determines what enchantments can be applied to the item.\n * Not all enchantments will have an effect on all item components.\n */\n 'minecraft:enchantable'?: {\n /**\n * Specifies which types of enchantments can be applied.\n * For example, \"bow\" would allow this item to be enchanted as if it were a bow.\n * @example \"armor_torso\" for chestplate, \"armor_feet\" for boots\n */\n slot?: EnchantableSlot;\n\n /**\n * Specifies the value of the enchantment (minimum of 0).\n * @default 0\n * @type Integer number\n * @example Chestplate: 10\n */\n value?: number;\n };\n\n /**\n * Sets the item as a food component, allowing it to be edible to the player.\n */\n 'minecraft:food'?: {\n can_always_eat?: boolean;\n cooldown_time?: number;\n cooldown_type?: string;\n effects?: FoodEffect[];\n is_meat?: boolean;\n nutrition?: number;\n on_use_action?: string;\n on_use_range?: [number, number, number];\n saturation_modifier?:\n | number\n | 'poor'\n | 'low'\n | 'normal'\n | 'good'\n | 'supernatural';\n using_converts_to?: string;\n remove_effects?: string[];\n };\n\n /**\n * Determines whether the item is immune to burning when dropped in fire or lava.\n */\n 'minecraft:fire_resistant'?: {\n value?: boolean;\n };\n\n /**\n * Allows an item to place entities into the world.\n * Additionally, in version 1.19.80 and above, the component allows the item to set the spawn type of a monster spawner.\n */\n 'minecraft:entity_placer'?: {\n /**\n * List of block descriptors of the blocks that this item can be dispensed on.\n * If left empty, all blocks will be allowed.\n */\n dispense_on?: Array<\n | string\n | {\n name: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n }\n >;\n /**\n * The entity to be placed in the world.\n * Value must match a regular expression pattern of \"^(?:\\w+(?:.\\w+):(?=\\w))?(?:\\w+(?:.\\w+))(?:<((?:\\w+(?:.\\w+):(?=\\w))?\\w+(?:.\\w+))*>)?$\"\n * @example \"minecraft:turtle\"\n */\n entity: string;\n /**\n * List of block descriptors of the blocks that this item can be used on.\n * If left empty, all blocks will be allowed.\n */\n use_on?: Array<\n | string\n | {\n name: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n }\n >;\n };\n\n /**\n * Allows this item to be used as fuel in a furnace to 'cook' other items.\n * This item can also be represented as a Decimal number.\n */\n 'minecraft:fuel'?: {\n /**\n * How long in seconds will this fuel cook items for.\n * Value must be >= 0.05.\n */\n duration: number;\n };\n 'minecraft:kinetic_weapon'?: {\n /**\n * Defines the reach used when the user is in Creative Mode.\n * Defaults to \"reach\" if unspecified.\n */\n creative_reach?: { max?: number; min?: number };\n /**\n * Conditions that need to be satisfied for damage to be applied.\n * If not specified, damage is not applied.\n */\n damage_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n /**\n * Value added to the the scaled dot product (after applying \"damage_multiplier\").\n * @default 0\n */\n damage_modifier?: number;\n /**\n * Value multiplied to sum of the dot products of the user and target's velocity vectors projected onto the view vector.\n * @default 1\n */\n damage_multiplier?: number;\n /**\n * Time, in ticks, after which kinetic damage and its effects start being applied.\n * @default 0\n */\n delay?: number;\n /**\n * Conditions that need to be satisfied for riders to be dismounted.\n * If not specified, riders cannot be dismounted.\n */\n dismount_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n /**\n * Added tolerance to the view vector raycast for detecting entity collisions.\n * @default 0\n */\n hitbox_margin?: number;\n /**\n * Conditions that need to be satisfied for knockback to be applied.\n * If not specified, knockback is not applied.\n */\n knockback_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n /**\n * Conditions that need to be satisfied for a specific effect of a kinetic weapon to be applied.\n */\n kinetic_effect_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n /**\n * Defines the reach used for kinetic weapon effects.\n */\n reach?: { max?: number; min?: number };\n };\n 'minecraft:interact_button'?: boolean | string;\n 'minecraft:hover_text_color'?: {\n /**\n * The color of the item hover text.\n */\n value?: string;\n };\n /**\n * The liquid_clipped component determines whether the item interacts with liquid blocks on use.\n * To allow placement of blocks on liquids, see the 'placement_filter' block component.\n * This item can also be represented as a Boolean true/false.\n */\n 'minecraft:liquid_clipped'?:\n | boolean\n | {\n /**\n * Determines whether the item interacts with liquid blocks on use.\n */\n value?: boolean;\n };\n /**\n * Determines how many of an item can be stacked together.\n * This item can also be represented as a Integer number.\n * @default 64\n */\n 'minecraft:max_stack_size'?:\n | number\n | {\n /**\n * How many of an item that can be stacked together.\n * @default 64\n */\n value?: number;\n };\n /**\n * Allows an item to deal damage to all entities detected in a straight line along the user's view vector.\n * Items with this component cannot destroy blocks, as the attack action always takes priority, regardless of what the user is looking at.\n */\n 'minecraft:piercing_weapon'?: {\n /**\n * Defines the reach used when the user is in Creative Mode. Defaults to \"reach\" if unspecified.\n */\n creative_reach?: {\n max?: number;\n min?: number;\n };\n /**\n * Added tolerance to the view vector raycast for detecting entity collisions.\n * @default 0\n */\n hitbox_margin?: number;\n /**\n * Defines the range (in blocks) along the user's view vector where entities can be hit.\n * @default {\"max\":3,\"min\":0}\n */\n reach?: {\n max?: number;\n min?: number;\n };\n };\n piercing_weapon?: {\n creative_reach?: {\n max?: number;\n min?: number;\n };\n hitbox_margin?: number;\n reach?: {\n max?: number;\n min?: number;\n };\n };\n /**\n * Defines an item as a projectile that can be shot from dispensers or used as ammunition with minecraft:shooter.\n * When combined with minecraft:throwable, this component specifies which entity is spawned when the item is thrown.\n */\n 'minecraft:projectile'?: {\n /**\n * Specifies how long a player must charge a projectile for it to critically hit.\n * @example \"My Sword Chuck\": 1.25\n * @default 0\n */\n minimum_critical_power?: number;\n /**\n * Which entity is to be fired as a projectile.\n * Value must match a regular expression pattern of \"^(?:\\\\w+(?:.\\\\w+):(?=\\\\w))?(?:\\\\w+(?:.\\\\w+))(?:<((?:\\\\w+(?:.\\\\w+):(?=\\\\w))?\\\\w+(?:.\\\\w+))*>)?$\".\n * @example \"Wind Charge\": \"wind_charge_projectile\", \"My Sword Chuck\": \"minecraft:snowball\"\n */\n projectile_entity: string;\n };\n\n /**\n * Used by record items to play music.\n * @example \"My Sword Singing\"\n */\n 'minecraft:record'?: {\n /**\n * Specifies signal strength for comparator blocks to use, from 1 - 13.\n * @example \"My Sword Singing\": 1\n * @default 1\n */\n comparator_signal?: number;\n /**\n * Specifies duration of sound event in seconds, float value.\n * @example \"My Sword Singing\": 5\n * @default 0\n */\n duration?: number;\n /**\n * Sound event type.\n * Values: 13, cat, blocks, chirp, far, mall, mellohi, stal, strad, ward, 11, wait, pigstep, otherside, 5, relic\n * @example \"My Sword Singing\": \"pigstep\"\n */\n sound_event: SoundEvent;\n };\n\n /**\n * Specifies the base rarity and subsequently color of the item name when the player hovers the cursor over the item.\n * This item requires a format version of at least 1.21.30.\n * This item can also be represented as a String.\n */\n 'minecraft:rarity'?: {\n /**\n * Sets the base rarity of the item.\n * The rarity of an item automatically increases when enchanted, either to Rare when the base rarity is Common or Uncommon,\n * or Epic when the base rarity is Rare.\n * @example \"rare\"\n */\n value: Rarity;\n };\n\n /**\n * Defines the items that can be used to repair a defined item, and the amount of durability each item restores upon repair.\n * Each entry needs to define a list of strings for 'items' that can be used for the repair and an optional 'repair_amount' for how much durability is repaired.\n * @example Chestplate: {\"on_repaired\":\"minecraft:celebrate\",\"repair_items\":[\"anvil\"]}\n * @example My Sword Chuck: {\"repair_items\":[{\"items\":[\"minecraft:diamond\"],\"repair_amount\":\"query.max_durability * 0.25\"}]}\n */\n 'minecraft:repairable'?: {\n /**\n * Event triggered when the item is repaired\n * @example \"minecraft:celebrate\"\n */\n on_repaired?: string;\n\n /**\n * List of repair item entries.\n * Each entry needs to define a list of strings for items that can be used for the repair and an optional repair_amount for how much durability is gained.\n */\n repair_items?: Array<\n | string\n | {\n /**\n * Items that can be used to repair an item.\n * @example [\"minecraft:stick\"]\n * @example [\"minecraft:diamond\"]\n */\n items: string[];\n\n /**\n * How much the item is repaired.\n * Can be a string expression or a numeric value.\n * @example \"context.other->query.remaining_durability + 0.05 * context.other->query.max_durability\"\n * @example \"query.max_durability * 0.25\"\n */\n repair_amount?: string | number;\n }\n >;\n };\n\n /**\n * Sets the item as a seed that can be planted to grow crops.\n * When used on valid ground, the seed will place the specified crop block.\n * This item requires a format version of at least 1.10.0.\n * @example Beetroot Seeds: {\"crop_result\":\"beetroot\"}\n * @example Glow Berries: {\"crop_result\":\"cave_vines\",\"plant_at\":[\"cave_vines\",\"cave_vines_head_with_berries\"],\"plant_at_any_solid_surface\":true,\"plant_at_face\":\"DOWN\"}\n */\n 'minecraft:seed'?: {\n /**\n * The block identifier that will be placed when the seed is planted.\n * @example \"beetroot\"\n * @example \"cave_vines\"\n */\n crop_result: string;\n\n /**\n * Array of block identifiers that this seed can be planted on or attached to.\n * If not specified, standard farmland rules apply.\n * @example [\"cave_vines\",\"cave_vines_head_with_berries\"]\n */\n plant_at?: string[];\n\n /**\n * Deprecated - no longer in use.\n * If true, the seed can be planted on any solid surface, not just farmland or specified blocks.\n * This property was deprecated and removed in versions after 1.18.\n * This property no longer works after format versions of at least 1.19.0.\n */\n plant_at_any_solid_surface?: boolean;\n\n /**\n * Deprecated - no longer in use.\n * The face of a block where this seed can be planted.\n * Values: 'UP' for top of blocks (normal crops), 'DOWN' for bottom (hanging plants like glow berries).\n * This property was deprecated and removed in versions after 1.18.\n * This property no longer works after format versions of at least 1.19.0.\n */\n plant_at_face?: 'UP' | 'DOWN';\n };\n projectile?: {\n minimum_critical_power?: number;\n projectile_entity: string;\n };\n\n /**\n * Used by record items to play music.\n * @example \"My Sword Singing\"\n */\n record?: {\n /**\n * Specifies signal strength for comparator blocks to use, from 1 - 13.\n * @example \"My Sword Singing\": 1\n * @default 1\n */\n comparator_signal?: number;\n /**\n * Specifies duration of sound event in seconds, float value.\n * @example \"My Sword Singing\": 5\n * @default 0\n */\n duration?: number;\n /**\n * Sound event type.\n * Values: 13, cat, blocks, chirp, far, mall, mellohi, stal, strad, ward, 11, wait, pigstep, otherside, 5, relic\n * @example \"My Sword Singing\": \"pigstep\"\n */\n sound_event: SoundEvent;\n };\n\n /**\n * Specifies the base rarity and subsequently color of the item name when the player hovers the cursor over the item.\n * This item requires a format version of at least 1.21.30.\n * This item can also be represented as a String.\n */\n rarity?: {\n /**\n * Sets the base rarity of the item.\n * The rarity of an item automatically increases when enchanted, either to Rare when the base rarity is Common or Uncommon,\n * or Epic when the base rarity is Rare.\n * @example \"rare\"\n */\n value: Rarity;\n };\n\n /**\n * Alias for minecraft:repairable\n * Defines the items that can be used to repair a defined item, and the amount of durability each item restores upon repair.\n * @example Chestplate: {\"on_repaired\":\"minecraft:celebrate\",\"repair_items\":[\"anvil\"]}\n */\n repairable?: {\n on_repaired?: string;\n repair_items?: Array<\n | string\n | {\n items: string[];\n repair_amount?: string | number;\n }\n >;\n };\n\n /**\n * Alias for minecraft:seed\n * Sets the item as a seed that can be planted to grow crops.\n * This item requires a format version of at least 1.10.0.\n * @example Beetroot Seeds: {\"crop_result\":\"beetroot\"}\n */\n seed?: {\n crop_result: string;\n plant_at?: string[];\n plant_at_any_solid_surface?: boolean;\n plant_at_face?: 'UP' | 'DOWN';\n };\n\n /**\n * Controls whether items with different aux values can be stacked together.\n * If true (default), items with different damage, custom data, or other aux values cannot stack.\n * If false, all items of this type stack regardless of aux values.\n * This is primarily used for items like armor with different durability values.\n * @default true\n */\n 'minecraft:stacked_by_data'?: {\n value?: boolean;\n };\n\n /**\n * Controls whether dropped items should despawn while floating on water.\n * If true, items will despawn when floating (default for most items).\n * If false, items will not despawn while floating on water.\n * @default true\n */\n 'minecraft:should_despawn'?: {\n value?: boolean;\n };\n\n /**\n * Allows an item to be used for shooting projectiles like bows, crossbows, or thrown items.\n * Requires the entity to have the minecraft:projectile component.\n * @example Bow: {\"ammunition\":[\"arrow\"],\"charge_on_draw\":true,\"max_draw_duration\":1.0}\n */\n 'minecraft:shooter'?: {\n /**\n * Array of ammunition item identifiers that can be used with this shooter.\n * Each item can have specific launch power and other properties.\n * @example [\"arrow\", {\"item\":\"spectral_arrow\",\"launch_power_scale\":1.2}]\n */\n ammunition: Array<\n | string\n | {\n /** Specific item identifier */\n item: string;\n /** Scale factor for launch power (default 1.0) */\n launch_power_scale?: number;\n /** Maximum draw duration in seconds (optional override) */\n max_draw_duration?: number;\n /** Whether to apply charge effects (optional override) */\n charge_on_draw?: boolean;\n }\n >;\n\n /**\n * Whether power/strength increases while drawing (like bows).\n * If true, power scales with draw duration up to max_draw_duration.\n * @default false\n */\n charge_on_draw?: boolean;\n\n /**\n * Maximum time in seconds that the item can be drawn/charged.\n * @default 0.0\n */\n max_draw_duration?: number;\n\n /**\n * Whether the shooter automatically charges when held.\n * @default false\n */\n auto_charge?: boolean;\n\n /**\n * Base power/velocity multiplier for projectiles.\n * @default 1.0\n */\n launch_power?: number;\n\n /**\n * Whether to scale power based on draw duration.\n * @default true\n */\n scale_power_by_draw_duration?: boolean;\n };\n\n /**\n * Alias for minecraft:stacked_by_data\n * Controls whether items with different aux values can be stacked together.\n * @default true\n */\n stacked_by_data?: {\n value?: boolean;\n };\n\n /**\n * Alias for minecraft:should_despawn\n * Controls whether dropped items should despawn while floating on water.\n * @default true\n */\n should_despawn?: {\n value?: boolean;\n };\n\n /**\n * Makes an item throwable by the player, similar to a snowball or ender pearl.\n * Use with minecraft:projectile to specify which entity is spawned when thrown.\n *\n * 注意:Combine with minecraft:projectile to define the projectile entity.\n * For charged throws (like tridents), set scale_power_by_draw_duration to true and configure min/max draw durations.\n */\n 'minecraft:throwable'?: {\n /**\n * Determines whether the item should use the swing animation when thrown.\n * @default false\n */\n do_swing_animation?: boolean;\n\n /**\n * The scale at which the power of the throw increases.\n * @default 1.0\n */\n launch_power_scale?: number;\n\n /**\n * The maximum duration to draw a throwable item.\n * @default 0.0\n */\n max_draw_duration?: number;\n\n /**\n * The maximum power to launch the throwable item.\n * @default 1.0\n */\n max_launch_power?: number;\n\n /**\n * The minimum duration to draw a throwable item.\n * @default 0.0\n */\n min_draw_duration?: number;\n\n /**\n * Whether or not the power of the throw increases with duration charged.\n * @default false\n */\n scale_power_by_draw_duration?: boolean;\n };\n\n /**\n * Determines which tags are included on a given item.\n */\n 'minecraft:tags'?: {\n /**\n * An array that can contain multiple item tags.\n * @default []\n */\n tags?: string[];\n };\n\n /**\n * Duration, in seconds, of the item's swing animation played when mining or attacking.\n * Affects visuals only and does not impact attack frequency or other gameplay mechanics.\n */\n 'minecraft:swing_duration'?: {\n /**\n * Duration, in seconds, of the item's swing animation played when mining or attacking.\n * Affects visuals only and does not impact attack frequency or other gameplay mechanics.\n * @default 0.30000001192092896\n */\n value?: number;\n };\n\n /**\n * Use_animation specifies which animation is played when the player uses the item.\n * This item can also be represented as a String.\n * Supported animations: 'eat', 'drink', 'block', 'bow', 'camera', 'spear', 'crossbow', 'spyglass', 'toot_horn', 'brush'.\n */\n 'minecraft:use_animation'?:\n | string\n | {\n /**\n * The animation type to play when the item is used.\n */\n value?: string;\n };\n\n // Alias for minecraft:use_animation\n use_animation?:\n | string\n | {\n value?: string;\n };\n\n /**\n * Sets the wearable item component, which allows an item to be worn by a player in a specified equipment slot.\n * Valid equipment slots: slot.armor.head, slot.armor.chest, slot.armor.legs, slot.armor.feet, slot.armor.body, slot.weapon.mainhand, slot.weapon.offhand.\n * When a non-hand armor slot is used, the max stack size is automatically set to 1.\n */\n 'minecraft:wearable'?: {\n /**\n * Specifies where the item can be worn.\n * If any non-hand slot is chosen, the max stack size is set to 1.\n * @example \"slot.armor.chest\", \"slot.armor.head\", \"slot.armor.feet\"\n */\n slot:\n | 'slot.armor.head'\n | 'slot.armor.chest'\n | 'slot.armor.legs'\n | 'slot.armor.feet'\n | 'slot.armor.body'\n | 'slot.weapon.mainhand'\n | 'slot.weapon.offhand';\n\n /**\n * How much protection the wearable item provides.\n * @default 0\n * @type Integer number\n */\n protection?: number;\n\n /**\n * Determines whether the Player's location is hidden on Locator Maps and the Locator Bar when the wearable item is worn.\n * @default false\n */\n hides_player_location?: boolean;\n\n /**\n * Whether the item can be used by dispensers.\n * @example true\n */\n dispensable?: boolean;\n };\n\n // Alias for minecraft:wearable\n wearable?: {\n slot:\n | 'slot.armor.head'\n | 'slot.armor.chest'\n | 'slot.armor.legs'\n | 'slot.armor.feet'\n | 'slot.armor.body'\n | 'slot.weapon.mainhand'\n | 'slot.weapon.offhand';\n protection?: number;\n hides_player_location?: boolean;\n dispensable?: boolean;\n };\n\n /**\n * Determines how long an item takes to use in combination with components such as Shooter, Throwable, or Food.\n */\n 'minecraft:use_modifiers'?: {\n /**\n * Time, in seconds, that the item takes to use.\n * @example 1.6\n * @type Decimal number\n */\n use_duration: number;\n\n /**\n * Multiplier applied to the player's movement speed while the item is in use.\n * Value must be <= 1.\n * @example 0.35\n * @type Decimal number\n */\n movement_modifier?: number;\n\n /**\n * Whether vibrations are emitted when the item starts or stops being used.\n * @default true\n */\n emit_vibrations?: boolean;\n\n /**\n * Sound played when the item starts being used.\n * @see StartSoundChoices\n */\n start_sound?: string;\n };\n\n // Alias for minecraft:use_modifiers\n use_modifiers?: {\n use_duration: number;\n movement_modifier?: number;\n emit_vibrations?: boolean;\n start_sound?: string;\n };\n\n /**\n * Overrides the swing sounds emitted by the user.\n */\n 'minecraft:swing_sounds'?: {\n /**\n * Sound played when an attack hits and deals critical damage.\n * @see AttackCriticalHitChoices\n */\n attack_critical_hit?: string;\n\n /**\n * Sound played when an attack hits.\n * @see AttackHitChoices\n */\n attack_hit?: string;\n\n /**\n * Sound played when an attack misses or deals no damage due to invulnerability.\n * @see AttackMissChoices\n */\n attack_miss?: string;\n };\n\n // Alias for minecraft:swing_sounds\n swing_sounds?: {\n attack_critical_hit?: string;\n attack_hit?: string;\n attack_miss?: string;\n };\n\n /**\n * Alias for minecraft:shooter\n * Allows an item to be used for shooting projectiles like bows, crossbows, or thrown items.\n * Requires the entity to have the minecraft:projectile component.\n */\n shooter?: {\n ammunition: Array<\n | string\n | {\n item: string;\n launch_power_scale?: number;\n max_draw_duration?: number;\n charge_on_draw?: boolean;\n }\n >;\n charge_on_draw?: boolean;\n max_draw_duration?: number;\n auto_charge?: boolean;\n launch_power?: number;\n scale_power_by_draw_duration?: boolean;\n };\n };\n };\n}\nexport type {\n ItemComponentOptions,\n ItemGroupEnum,\n ItemJson,\n ParticleType,\n SoundEvent,\n EnchantableSlot,\n RepairItem,\n RepairAmountExpression,\n SeedProperties,\n};\n/** @deprecated Use ItemComponentOptions instead */\nexport type { ItemComponentOptions as ItemComponentOpt };\n/** @deprecated Use ItemJson instead */\nexport type { ItemJson as ItemJSON };\n/** @deprecated Use FileEditOption instead */\nexport type { FileEditOption as EditFileOption };\n/** @deprecated Use FileEditExpression instead */\nexport type { FileEditExpression as EditFileEditExpression };\n/** @deprecated Use FileBindSource instead */\nexport type { FileBindSource as EditFileBindSourceExpression };\n// Rarity type constants\ntype Rarity = 'common' | 'uncommon' | 'rare' | 'epic';\n\nconst RarityEnum = ['common', 'uncommon', 'rare', 'epic'] as const;\n\nexport { SoundEventEnum } from './types/SoundEvent';\nexport { ParticleTypeEnum } from './types/ParticleType';\nexport { EnchantableSlotEnum } from './types/EnchantableSlot';\nexport { RarityEnum };\nexport type { Rarity };\n\n// Plant face enum for seed component\ntype PlantFace = 'UP' | 'DOWN';\nconst PlantFaceEnum = ['UP', 'DOWN'] as const;\n\n// Block pattern for validation\nconst BlockPattern = /^\\w+(?::\\w+)*$/;\n\n// Export all new types and enums\nexport type { PlantFace };\nexport { PlantFaceEnum, BlockPattern };\n\n// Repairable types\ntype RepairItem = {\n /**\n * Items that may be used to repair an item.\n * @example [\"minecraft:diamond\"]\n */\n items: string[];\n\n /**\n * How much the item is repaired. Can be a string expression or a numeric value.\n * @example \"query.max_durability * 0.25\"\n * @example \"context.other->query.remaining_durability + 0.05 * context.other->query.max_durability\"\n */\n repair_amount?: string | number;\n};\n\ntype RepairAmountExpression = {\n /**\n * The expression for repair amount calculation\n */\n expression: string;\n\n /**\n * Version identifier\n */\n version: number;\n};\n\nconst RepairItemSchema = {\n items: 'string[]',\n repair_amount: 'string | number',\n} as const;\n\n// Seed types\ntype SeedProperties = {\n /**\n * The block identifier that will be placed when the seed is planted\n * @example \"beetroot\"\n * @example \"cave_vines\"\n */\n crop_result: string;\n\n /**\n * Array of block identifiers that this seed can be planted on or attached to.\n * If not specified, standard farmland rules apply.\n * @example [\"cave_vines\",\"cave_vines_head_with_berries\"]\n */\n plant_at?: string[];\n\n /**\n * Deprecated - no longer in use.\n * This property was available in versions 1.16.0 through 1.18.x for items like glow berries.\n * This property no longer works after format versions of at least 1.19.0.\n */\n plant_at_any_solid_surface?: boolean;\n\n /**\n * Deprecated - no longer in use.\n * The face of a block where this seed can be planted.\n * Values: 'UP' for top of blocks (normal crops), 'DOWN' for bottom (hanging plants like glow berries).\n * This property no longer works after format versions of at least 1.19.0.\n */\n plant_at_face?: 'UP' | 'DOWN';\n};\n\nconst SeedPropertiesSchema = {\n crop_result: 'string',\n plant_at: 'string[]',\n plant_at_any_solid_surface: 'boolean',\n plant_at_face: '\"UP\" | \"DOWN\"',\n} as const;\n\n// Entity Component Interfaces\ninterface EntityComponentOptions {\n id: string;\n format: string;\n is_spawnable?: boolean;\n is_summonable?: boolean;\n components?: {\n physics?: boolean;\n /**\n * Adds a rider to the entity.\n * Requires the following component in order to work properly: Rideable (minecraft:rideable)\n */\n addrider?: {\n /** Type of entity to acquire as a rider */\n entity_type?: string;\n /**\n * List of riders to be added to the entity. Can only spawn as many riders as\n * \"minecraft:rideable\" has \"seat_count\".\n */\n riders?: Array<{\n entity_type: string;\n spawn_event?: string;\n }>;\n /** Trigger event when a rider is acquired */\n spawn_event?: string;\n };\n\n /**\n * Allows an entity to ignore attackable targets for a given duration.\n */\n 'minecraft:admire_item'?: {\n /** Duration, in seconds, for which mob won't admire items if it was hurt */\n cooldown_after_being_attacked?: number;\n /** Duration, in seconds, that the mob is pacified */\n duration?: number;\n };\n /**\n * Adds a timer for the entity to grow up. It can be accelerated by giving the entity\n * the items it likes as defined by feed_items.\n */\n 'minecraft:ageable'?: {\n /** List of items that are dropped when an entity grows up */\n drop_items?: string[];\n /** Length of time before an entity grows up (-1 to always stay a baby) */\n duration?: number;\n /**\n * List of items that can be fed to an entity to age them up. Can be a single item string,\n * an array of strings, or an array of objects with item and growth properties.\n */\n feed_items?:\n | string\n | string[]\n | Array<{\n growth?: number;\n item: string;\n }>;\n /** Event to fire when an entity grows up. Can be an object with event and target properties, or a simple event string. */\n grow_up?:\n | string\n | {\n event: string;\n target: string;\n };\n /** List of conditions to meet so that the entity can be fed. */\n interact_filters?: any;\n /** List of items that can be fed to the entity to pause growth for baby entities. */\n pause_growth_items?: string[];\n /** List of items that can be used to reset growth for baby entities. */\n reset_growth_items?: string[];\n };\n /**\n * Delay for an entity playing its sound.\n */\n 'minecraft:ambient_sound_interval'?: {\n /** Level sound event to be played as the ambient sound. */\n event_name?: string;\n /**\n * List of dynamic level sound events, with conditions for choosing between them.\n * Evaluated in order, first one wins. If none evaluate to true, 'event_name' will take precedence.\n */\n event_names?: Array<{\n /** The condition that must be satisfied to select the given ambient sound */\n condition?: string;\n /** Level sound event to be played as the ambient sound */\n event_name?: string;\n }>;\n /** Maximum time in seconds to randomly add to the ambient sound delay time. */\n range?: number;\n /** Minimum time in seconds before the entity plays its ambient sound again. */\n value?: number;\n };\n 'minecraft:attack_damage'?: {\n value?: number | { min: number; max: number };\n };\n /**\n * Compels the entity to track anger towards a set of nuisances.\n */\n 'minecraft:anger_level'?: {\n /** Anger level will decay over time. Defines how often anger towards all nuisances will decrease by one. */\n anger_decrement_interval?: number;\n /** Anger boost applied to angry threshold when mob gets angry Value must be >= 0. */\n angry_boost?: number;\n /** Threshold that define when the mob is considered angry at a nuisance Value must be >= 0. */\n angry_threshold?: number;\n /** If set, other entities of the same entity definition within the broadcastRange will also become angry */\n broadcast_anger?: boolean;\n /** If set, other entities of the same entity definition within the broadcastRange will also become angry whenever this mob attacks */\n broadcast_anger_on_attack?: boolean;\n /** Conditions that make this entry in the list valid */\n broadcast_filters?: any;\n /** Distance in blocks within which other entities of the same entity type will become angry */\n broadcast_range?: number;\n /** A list of entity families to broadcast anger to */\n broadcast_targets?: string[];\n /** Event to fire when this entity is calmed down */\n calm_event?: string;\n /** The default amount of annoyingness for any given nuisance. Specifies how much to raise anger level on each provocation. */\n default_annoyingness?: number;\n /** Default projectile annoyingness value */\n default_projectile_annoyingness?: number;\n /** The amount of time in seconds that the entity will be angry. */\n duration?: number;\n /** Variance in seconds added to the duration [-delta, delta]. */\n duration_delta?: number;\n /** Filter out mob types that it should not attack while angry (other Piglins) */\n filters?: any;\n /** The maximum anger level that can be reached. Applies to any nuisance Value must be >= 0. */\n max_anger?: number;\n /** Filter that is applied to determine if a mob can be a nuisance */\n nuisance_filter?: any;\n /**\n * Sounds to play when the entity is getting provoked. Evaluated in order.\n * First matching condition wins\n */\n on_increase_sounds?: Array<{\n /** A Molang expression describing under which conditions to play this sound, given that the entity was provoked */\n condition?: string;\n /** The sound to play */\n sound?: string;\n }>;\n /** Defines if the mob should remove target if it falls below 'angry' threshold */\n remove_targets_below_angry_threshold?: boolean;\n /** The range of time in seconds to randomly wait before playing the sound again. */\n sound_interval?: { min: number; max: number };\n };\n /**\n * Defines an entity's 'angry' state using a timer.\n */\n 'minecraft:angry'?: {\n /** The sound event to play when the mob is angry */\n angry_sound?: string;\n /** If set, other entities of the same entity definition within the broadcastRange will also become angry */\n broadcast_anger?: boolean;\n /** If set, other entities of the same entity definition within the broadcastRange will also become angry whenever this mob attacks */\n broadcast_anger_on_attack?: boolean;\n /** If true, other entities of the same entity definition within the broadcastRange will also become angry whenever this mob is attacked */\n broadcast_anger_on_being_attacked?: boolean;\n /** If false, when this mob is killed it does not spread its anger to other entities of the same entity definition within the broadcastRange */\n broadcast_anger_when_dying?: boolean;\n /** Conditions that make this entry in the list valid */\n broadcast_filters?: any;\n /** Distance in blocks within which other entities of the same entity type will become angry */\n broadcast_range?: number;\n /** A list of entity families to broadcast anger to */\n broadcast_targets?: string[];\n /** Event to fire when this entity is calmed down. Can be a simple event name string or an object with event and target properties. */\n calm_event?: string | { event: string; target: string };\n /** The amount of time in seconds that the entity will be angry. */\n duration?: number;\n /** Variance in seconds added to the duration [-delta, delta]. */\n duration_delta?: number;\n /** Filter out mob types that it should not attack while angry (other Piglins) */\n filters?: any;\n /** The range of time in seconds to randomly wait before playing the sound again. */\n sound_interval?: { min: number; max: number };\n };\n /**\n * Allows an entity to break doors, assuming that that flags set up for the component to use in navigation.\n * Tip: Requires the entity's navigation component to have the parameter can_break_doors set to true.\n */\n 'minecraft:annotation.break_door'?: {\n /** The time in seconds required to break through doors. */\n break_time?: number;\n /** The minimum difficulty that the world must be on for this entity to break doors. */\n min_difficulty?: 'hard' | 'normal' | 'easy' | 'peaceful';\n };\n 'minecraft:annotation.open_door'?: {};\n 'minecraft:attack'?: {\n damage?:\n | number\n | [number, number]\n | { range_min: number; range_max: number };\n effect_duration?: number;\n effect_name?: string;\n };\n 'minecraft:area_attack'?: {\n cause?: string;\n damage_cooldown?: number;\n damage_per_tick?: number;\n damage_range?: number;\n entity_filter?: any;\n play_attack_sound?: boolean;\n };\n 'minecraft:attack_cooldown'?: {\n attack_cooldown_complete_event?:\n | string\n | { event: string; target?: string };\n attack_cooldown_time?: number | { min: number; max: number };\n };\n 'minecraft:balloonable'?: {\n mass?: number;\n max_distance?: number;\n on_balloon?: any;\n on_unballoon?: any;\n soft_distance?: number;\n };\n 'minecraft:barter'?: {\n barter_table?: string;\n cooldown_after_being_attacked?: { min: number; max: number };\n };\n 'minecraft:block_climber'?: {};\n 'minecraft:block_sensor'?: {\n on_break?: Array<{\n block_list?: string[];\n on_block_broken?: string;\n }>;\n sensor_radius?: number;\n sources?: any;\n };\n 'minecraft:body_rotation_axis_aligned'?: {};\n 'minecraft:body_rotation_always_follows_head'?: {};\n 'minecraft:body_rotation_blocked'?: {};\n 'minecraft:body_rotation_locked_to_vehicle'?: {};\n 'minecraft:boostable'?: {\n boost_items?: Array<{\n damage?: number;\n item: string;\n replace_item?: string;\n }>;\n duration?: number;\n speed_multiplier?: number;\n };\n 'minecraft:boss'?: {\n hud_range?: number;\n name?: string;\n should_darken_sky?: boolean;\n };\n 'minecraft:break_blocks'?: {\n breakable_blocks?: string[];\n };\n 'minecraft:breathable'?: {\n breathe_blocks?: string[];\n breathes_air?: boolean;\n breathes_lava?: boolean;\n breathes_solids?: boolean;\n breathes_water?: boolean;\n generates_bubbles?: boolean;\n inhale_time?: number;\n non_breathe_blocks?: string[];\n suffocate_time?: number;\n suffocateTime?: number;\n total_supply?: number;\n totalSupply?: number;\n };\n 'minecraft:bribeable'?: {\n bribe_cooldown?: number;\n bribe_items?: string[] | string;\n };\n 'minecraft:breedable'?: {\n allow_sitting?: boolean;\n blend_attributes?: boolean;\n breed_cooldown?: number;\n breed_items?: string[] | string;\n breeds_with?:\n | Array<{\n baby_type?: string;\n breed_event?: string | { event: string; filters?: any };\n mate_type?: string;\n }>\n | {\n baby_type?: string;\n breed_event?: string | { event: string; filters?: any };\n mate_type?: string;\n };\n causes_pregnancy?: boolean;\n deny_parents_variant?: {\n chance?: number;\n max_variant?: string;\n min_variant?: string;\n };\n environment_requirements?: Array<{\n block_types?: string[];\n count?: number;\n radius?: number;\n }>;\n extra_baby_chance?: { min: number; max: number };\n inherit_tamed?: boolean;\n love_filters?: any;\n mutation_factor?: {\n color?: { min: number; max: number } | number;\n extra_variant?: { min: number; max: number } | number;\n variant?: { min: number; max: number } | number;\n };\n require_full_health?: boolean;\n require_tame?: boolean;\n };\n 'minecraft:buoyant'?: {\n apply_gravity?: boolean;\n base_buoyancy?: number;\n big_wave_probability?: number;\n big_wave_speed?: number;\n can_auto_step_from_liquid?: boolean;\n drag_down_on_buoyancy_removed?: number;\n liquid_blocks?: string[];\n movement_type?: 'waves' | 'bobbing' | 'none';\n };\n 'minecraft:burns_in_daylight'?: {\n protection_slot?:\n | 'slot.armor.body'\n | 'slot.armor.chest'\n | 'slot.armor.feet'\n | 'slot.armor.head'\n | 'slot.armor.legs'\n | 'slot.weapon.mainhand'\n | 'slot.weapon.offhand';\n };\n 'minecraft:cannot_be_attacked'?: {};\n 'minecraft:can_climb'?: {};\n 'minecraft:can_fly'?: {};\n 'minecraft:can_join_raid'?: {};\n 'minecraft:can_power_jump'?: {};\n 'minecraft:celebrate_hunt'?: {\n broadcast?: boolean;\n celeberation_targets?: any;\n celebrate_sound?: string;\n duration?: number;\n radius?: number;\n sound_interval?: { min: number; max: number };\n };\n 'minecraft:collision_box'?: {\n height?: number;\n width?: number;\n };\n 'minecraft:color'?: {\n value?: number;\n };\n 'minecraft:color2'?: {\n value?: number;\n };\n 'minecraft:combat_regeneration'?: {\n apply_to_family?: boolean;\n apply_to_self?: boolean;\n regeneration_duration?: number | 'infinite';\n };\n 'minecraft:conditional_bandwidth_optimization'?: {\n conditional_values?: Array<{\n conditional_values?: any;\n max_dropped_ticks?: number;\n max_optimized_distance?: number;\n use_motion_prediction_hints?: boolean;\n }>;\n default_values?: {\n max_dropped_ticks?: number;\n max_optimized_distance?: number;\n use_motion_prediction_hints?: boolean;\n };\n };\n 'minecraft:custom_hit_test'?: {\n hitboxes?: Array<{\n height?: number;\n pivot?: [number, number, number];\n width?: number;\n }>;\n };\n 'minecraft:damage_over_time'?: {\n damage_per_hurt?: number;\n time_between_hurt?: number;\n };\n 'minecraft:damage_sensor'?: {\n deals_damage?: boolean | 'yes' | 'no' | 'no_but_side_effects_apply';\n triggers?:\n | Array<{\n cause?: string;\n damage_modifier?: number;\n damage_multiplier?: number;\n deals_damage?: boolean | string;\n event?: string;\n filters?: any;\n on_damage?: {\n filters?: any;\n };\n on_damage_sound_event?: string;\n }>\n | {\n cause?: string;\n damage_modifier?: number;\n damage_multiplier?: number;\n deals_damage?: boolean | string;\n event?: string;\n filters?: any;\n on_damage?: {\n filters?: any;\n };\n on_damage_sound_event?: string;\n };\n };\n 'minecraft:dash'?: {\n cooldown_time?: number;\n horizontal_momentum?: number;\n vertical_momentum?: number;\n };\n 'minecraft:dash_action'?: {\n can_dash_underwater?: boolean;\n cooldown_time?: number;\n direction?: 'entity' | 'passenger';\n horizontal_momentum?: number;\n vertical_momentum?: number;\n };\n 'minecraft:default_look_angle'?: {\n value?: number;\n };\n 'minecraft:despawn'?: {\n despawn_from_chance?: boolean;\n despawn_from_distance?: {\n max_distance?: number;\n min_distance?: number;\n };\n despawn_from_inactivity?: boolean;\n despawn_from_simulation_edge?: boolean;\n filters?: any;\n min_range_inactivity_timer?: number;\n min_range_random_chance?: number;\n remove_child_entities?: boolean;\n };\n 'minecraft:dimension_bound'?: {};\n 'minecraft:drying_out_timer'?: {\n dried_out_event?: string | { event: string; target?: string };\n recover_after_dried_out_event?:\n | string\n | { event: string; target?: string };\n stopped_drying_out_event?: string | { event: string; target?: string };\n total_time?: number;\n water_bottle_refill_time?: number;\n };\n 'minecraft:dweller'?: {\n can_find_poi?: boolean;\n can_migrate?: boolean;\n dweller_role?: string;\n dwelling_bounds_tolerance?: number;\n dwelling_role?: string;\n dwelling_type?: string;\n first_founding_reward?: number;\n preferred_profession?: string;\n update_interval_base?: number;\n update_interval_variant?: number;\n };\n 'minecraft:economy_trade_table'?: {\n convert_trades_economy?: boolean;\n cured_discount?: number | [number, number];\n display_name?: string;\n hero_demand_discount?: number;\n max_cured_discount?: number | [number, number];\n max_nearby_cured_discount?: number;\n nearby_cured_discount?: number;\n new_screen?: boolean;\n persist_trades?: boolean;\n show_trade_screen?: boolean;\n table?: string;\n use_legacy_price_formula?: boolean;\n };\n 'minecraft:entity_armor_equipment_slot_mapping'?: {\n armor_slot?: string;\n };\n 'minecraft:entity_sensor'?: {\n find_players_only?: boolean;\n relative_range?: boolean;\n subsensors?: Array<{\n cooldown?: number;\n event?: string | { event: string; target?: string };\n event_filters?: any; // Minecraft filter can be complex\n maximum_count?: number;\n minimum_count?: number;\n range?: [number, number] | [number, number, number]; // [x,z] or [x,y,z]\n require_all?: boolean;\n y_offset?: number;\n }>;\n };\n 'minecraft:equipment'?: {\n slot_drop_chance?: Array<\n | string // Slot name string\n | {\n drop_chance?: number; // Decimal number (0.0 to 1.0)\n slot?: string; // Equipment slot name\n }\n >;\n table?: string; // File path to equipment table\n };\n 'minecraft:equippable'?: {\n slots?: Array<{\n accepted_items?: string[]; // List of items that can go in this slot\n interact_text?: string; // Text for touch-screen controls\n item?: string; // Identifier of the item\n on_equip?: any; // Minecraft Event Trigger\n on_unequip?: any; // Minecraft Event Trigger\n slot?: number; // Slot number\n [key: string]: any; // Allow additional slot properties\n }>;\n };\n 'minecraft:equip_item'?: {\n can_wear_armor?: boolean; // If true, entity can pick up armor\n excluded_items?: Array<{\n item?: string; // Excluded item identifier\n [key: string]: any; // Allow additional excluded item properties\n }>;\n };\n 'minecraft:environment_sensor'?: {\n triggers?:\n | {\n event?: string | { event: string; target?: string };\n filters?: any; // Can be complex filter objects\n [key: string]: any; // Allow additional trigger properties\n }\n | Array<{\n event?: string | { event: string; target?: string };\n filters?: any; // Can be complex filter objects\n [key: string]: any; // Allow additional trigger properties\n }>;\n };\n 'minecraft:exhaustion_values'?: {\n attack?: number; // Amount of exhaustion when attacking\n damage?: number; // Amount of exhaustion when taking damage\n heal?: number; // Amount of exhaustion when healed\n jump?: number; // Amount of exhaustion when jumping\n lunge?: number; // Amount of exhaustion when lunge enchantment triggers\n mine?: number; // Amount of exhaustion when mining\n sprint?: number; // Amount of exhaustion when sprinting\n sprint_jump?: number; // Amount of exhaustion when sprint jumping\n swim?: number; // Amount of exhaustion when swimming\n walk?: number; // Amount of exhaustion when walking\n [key: string]: any; // Allow additional exhaustion properties\n };\n 'minecraft:experience_reward'?: {\n on_bred?:\n | string\n | number\n | {\n // Molang expression or decimal number\n expression?: string;\n version?: number;\n };\n on_death?:\n | string\n | number\n | {\n // Molang expression or decimal number\n expression?: string;\n version?: number;\n };\n [key: string]: any; // Allow additional experience reward properties\n };\n 'minecraft:explode'?: {\n add?: {\n // Add component groups\n component_groups?: string[];\n [key: string]: any; // Allow additional add properties\n };\n allow_underwater?: boolean; // If true, affects underwater blocks/entities\n breaks_blocks?: boolean; // If true, destroys blocks in explosion radius\n causes_fire?: boolean; // If true, sets blocks on fire\n damage_scaling?: number; // Scale factor for explosion damage\n destroy_affected_by_griefing?: boolean; // Affected by mob griefing game rule\n fire_affected_by_griefing?: boolean; // Fire affected by mob griefing game rule\n fuse_length?: number | [number, number]; // Range for random fuse length\n fuse_lit?: boolean; // If true, fuse already lit\n knockback_scaling?: number; // Scale factor for knockback force\n max_resistance?: number; // Cap for block explosion resistance\n negates_fall_damage?: boolean; // Apply fall damage negation to players\n particle_effect?: string; // Particle effect name (explosion, wind_burst, breeze_wind_burst)\n power?: number; // Explosion radius and damage amount\n sound_effect?: string; // Sound effect when explosion triggers\n toggles_blocks?: boolean; // If true, toggles blocks in explosion radius\n [key: string]: any; // Allow additional explosion properties\n };\n 'minecraft:fire_immune'?: {\n // Empty object indicates entity is immune to fire damage\n };\n 'minecraft:floats_in_liquid'?: {\n // Empty object indicates entity can float in liquid blocks\n };\n 'minecraft:flocking'?: {\n block_distance?: number; // The amount of blocks away the entity will look at to push away from\n block_weight?: number; // The weight of the push back away from blocks\n breach_influence?: number; // The amount of push back given to a flocker that breaches out of the water\n cohesion_threshold?: number; // The threshold in which to start applying cohesion\n cohesion_weight?: number; // The weight applied for the cohesion steering of the flock\n goal_weight?: number; // The weight on which to apply on the goal output\n high_flock_limit?: number; // Determines the high bound amount of entities that can be allowed in the flock\n in_water?: boolean; // Tells the Flocking Component if the entity exists in water\n influence_radius?: number; // The area around the entity that allows others to be added to the flock\n innner_cohesion_threshold?: number; // The distance in which the flocker will stop applying cohesion\n loner_chance?: number; // The percentage chance between 0-1 that a fish will spawn and not want to join flocks\n low_flock_limit?: number; // Determines the low bound amount of entities that can be allowed in the flock\n match_variants?: boolean; // Tells the flockers that they can only match similar entities\n max_height?: number; // The max height allowable in the air or water\n min_height?: number; // The min height allowable in the air or water\n separation_threshold?: number; // The distance that is determined to be to close to another flocking and to start applying separation\n separation_weight?: number; // The weight applied to the separation of the flock\n use_center_of_mass?: boolean; // Tells the flockers that they will follow flocks based on the center of mass\n [key: string]: any;\n };\n 'minecraft:flying_speed'?: {\n value?: number; // Flying speed in blocks per tick\n };\n 'minecraft:follow_range'?: {\n max?: number; // Maximum follow distance in blocks\n value?: number; // The default follow range in blocks\n };\n 'minecraft:free_camera_controlled'?: {\n backwards_movement_modifier?: number; // Modifies speed going backwards\n strafe_speed_modifier?: number; // Modifies the strafe speed\n };\n 'minecraft:friction_modifier'?: {\n value?: number; // The higher the number, the more friction affects this entity\n };\n 'minecraft:game_event_movement_tracking'?: {\n emit_flap?: boolean; // If true, the flap game event will be emitted when the entity moves through air\n emit_move?: boolean; // If true, the entityMove game event will be emitted when the entity moves on ground or through a solid\n emit_swim?: boolean; // If true, the swim game event will be emitted when the entity moves through a liquid\n };\n 'minecraft:genetics'?: {\n mutation_rate?: number; // Chance that an allele will be replaced with a random one instead of the parent's allele during birth\n genes?: Array<{\n name: string; // The name of the gene\n use_simplified_breeding?: boolean; // If true, mobs will inherit main alleles from parents' main alleles\n mutation_rate?: number; // Override for this gene's mutation rate\n allele_range?:\n | number\n | {\n // The range of positive integer allele values\n range_min: number; // Minimum allele value\n range_max: number; // Maximum allele value\n };\n genetic_variants?: Array<{\n birth_event?:\n | string\n | {\n // Event to run when this mob is created and matches the allele conditions\n event: string;\n target?: string;\n };\n main_allele?:\n | number\n | {\n // Compare the mob's main allele with this value\n range_min: number;\n range_max: number;\n };\n hidden_allele?:\n | number\n | {\n // Compare the mob's hidden allele with this value\n range_min: number;\n range_max: number;\n };\n both_allele?:\n | number\n | {\n // Compare both main and hidden alleles with this value\n range_min: number;\n range_max: number;\n };\n either_allele?:\n | number\n | {\n // Compare either main or hidden allele with this value\n range_min: number;\n range_max: number;\n };\n }>;\n }>;\n };\n 'minecraft:giveable'?: {\n cooldown?: number; // An optional cool down in seconds to prevent spamming interactions\n items?: string | string[]; // The list of items that can be given to the entity\n on_give?:\n | string\n | {\n // Event to fire when the correct item is given\n event: string;\n target?: string;\n };\n };\n 'minecraft:ground_offset'?: {\n value?: number; // The value of the entity's offset from the terrain, in blocks\n };\n 'minecraft:group_size'?: {\n radius?: number; // Radius from center of entity\n filters?: any; // The list of conditions that must be satisfied for other entities to be counted\n };\n 'minecraft:grows_crop'?: {\n chance?: number; // Value between 0-1. Chance of success per tick\n charges?: number; // Number of charges\n };\n 'minecraft:health'?: {\n max?: number; // Maximum health this entity can have\n value?:\n | number\n | {\n range_min?: number; // Minimum health value\n range_max?: number; // Maximum health value\n };\n };\n 'minecraft:heartbeat'?: {\n interval?: string; // A Molang expression defining the inter-beat interval in seconds\n sound_event?: string; // Level sound event to be played as the heartbeat sound\n };\n 'minecraft:hide'?: {}; // Moves to and hides at their owned POI or the closest nearby\n 'minecraft:home'?: {\n home_block_list?: string[]; // Optional list of blocks that can be considered a valid home\n restriction_radius?: number; // Optional radius that the entity will be restricted to\n restriction_type?: 'none' | 'random_movement' | 'all_movement'; // How the entity will be restricted to its home\n };\n 'minecraft:horse.jump_strength'?: {\n value?:\n | number\n | {\n range_min?: number; // Minimum jump strength value\n range_max?: number; // Maximum jump strength value\n };\n };\n 'minecraft:hurt_on_condition'?: {\n damage_conditions?: Array<{\n cause?: string; // The kind of damage that is caused to the entity\n damage_per_tick?: number; // The amount of damage done each tick that the conditions are met\n filters?: {\n subject?: string; // The subject of the filter test\n test?: string; // The test to perform\n value?: any; // The value to compare against\n operator?: string; // The operator to use for comparison\n [key: string]: any; // Allow for other filter properties\n };\n }>;\n };\n 'minecraft:ignore_cannot_be_attacked'?: {\n filters?: {\n subject?: string; // The subject of the filter test\n test?: string; // The test to perform\n value?: any; // The value to compare against\n operator?: string; // The operator to use for comparison\n [key: string]: any; // Allow for other filter properties\n };\n };\n 'minecraft:input_air_controlled'?: {\n [key: string]: any; // Flexible structure for movement modifiers\n };\n 'minecraft:input_ground_controlled'?: {\n // Empty object as specified\n };\n 'minecraft:inside_block_notifier'?: {\n block_list?: Array<{\n block?: {\n name?: string; // The name of the block to listen for\n states?: {\n [key: string]: string | number | boolean; // The specific block states to match\n };\n };\n entered_block_event?: {\n event?: string; // The event to run when the block is entered\n target?: string; // The target of the event\n };\n exited_block_event?: {\n event?: string; // The event to run when the block is exited\n target?: string; // The target of the event\n };\n }>;\n };\n 'minecraft:insomnia'?: {\n days_until_insomnia?: number; // Number of days the mob has to stay up until the insomnia effect begins\n };\n 'minecraft:instant_despawn'?: {\n remove_child_entities?: boolean; // If true, all entities linked to this entity in a child relationship will also be despawned\n };\n 'minecraft:interact'?: {\n cooldown?: number; // Time in seconds before this entity can be interacted with again\n cooldown_after_being_attacked?: number; // Time in seconds before this entity can be interacted with after being attacked\n drop_item_slot?: string | number; // The entity's slot to remove and drop the item from\n drop_item_y_offset?: number; // Will offset the item drop position this amount in the y direction\n equip_item_slot?: string | number; // The entity's slot to equip the item to\n health_amount?: number; // The amount of health this entity will recover or lose when interacting\n hurt_item?: number; // The amount of damage the item will take when used to interact\n interact_text?: string; // Text to show when the player is able to interact\n interactions?: Array<{\n give_item?: boolean; // If true, the player can give items to the entity\n hurt_item?: number; // Amount of damage the item will take\n interact_text?: string; // Interaction text\n on_interact?:\n | string\n | {\n // Event to fire when the interaction occurs\n filters?: {\n subject?: string;\n test?: string;\n value?: any;\n operator?: string;\n [key: string]: any;\n };\n };\n particle_on_start?: Array<{\n particle_offset_towards_interactor?: boolean; // Whether particle appears closer to interactor\n particle_type?: string; // The type of particle to spawn\n particle_y_offset?: number; // Y direction offset for particles\n }>;\n play_sounds?: string; // List of sounds to play\n repair_entity_item?: Array<{\n amount?: number; // How much durability to restore\n slot?: string | number; // The entity's slot containing the item to be repaired\n }>;\n spawn_entities?: string; // List of entities to spawn\n spawn_items?: Array<{\n table?: string; // File path to the loot table file\n y_offset?: number; // Y direction offset for item spawn\n }>;\n swing?: boolean; // If true, player will do 'swing' animation\n take_item?: boolean; // If true, player can take items from the entity\n transform_to_item?: string; // Item used will transform to this item\n use_item?: boolean; // If true, interaction will use an item\n vibration?:\n | 'none'\n | 'shear'\n | 'entity_die'\n | 'entity_act'\n | 'entity_interact'; // Vibration to emit\n }>;\n };\n 'minecraft:inventory'?: {\n additional_slots_per_strength?: number; // Number of slots that this entity can gain per extra strength\n can_be_siphoned_from?: boolean; // If true, the contents of this inventory can be removed by a hopper\n container_type?: string; // Type of container this entity has\n inventory_size?: number; // Number of slots the container has\n private?: boolean; // If true, the entity will not drop its inventory on death\n restrict_to_owner?: boolean; // If true, the entity's inventory can only be accessed by its owner\n };\n 'minecraft:is_baby'?: {\n // Empty object as specified\n };\n 'minecraft:is_charged'?: {\n // Empty object as specified\n };\n 'minecraft:is_chested'?: {\n // Empty object as specified\n };\n 'minecraft:is_dyeable'?: {\n interact_text?: string; // The text that will display when interacting with this entity with a dye\n };\n 'minecraft:is_ignited'?: {\n // Empty object as specified\n };\n 'minecraft:is_pregnant'?: {\n // Empty object as specified\n };\n 'minecraft:item_controllable'?: {\n control_items?: string | string[]; // List of items that can be used to control this entity while ridden\n };\n 'minecraft:item_hopper'?: {\n // Empty object as specified\n };\n 'minecraft:jump.dynamic'?: {\n fast_skip_data?: {\n animation_duration?: number; // Duration of the jump animation\n distance_scale?: number; // The multiplier applied to horizontal velocity when jumping\n height?: number; // The force applied vertically when jumping\n jump_delay?: number; // Amount of ticks between sequential jumps\n };\n regular_skip_data?: {\n animation_duration?: number; // Duration of the jump animation\n distance_scale?: number; // The multiplier applied to horizontal velocity when jumping\n height?: number; // The force applied vertically when jumping\n jump_delay?: number; // Amount of ticks between sequential jumps\n };\n };\n 'minecraft:jump.static'?: {\n jump_power?: number; // The initial vertical velocity for the jump (default 0.42)\n };\n 'minecraft:knockback_resistance'?:\n | number\n | {\n max?: number; // Maximum potential knockback resistance\n value?: number; // The amount of knockback resistance from 0.0 to 1.0\n };\n 'minecraft:lava_movement'?: {\n value?: number; // The speed the mob moves over a lava block\n };\n 'minecraft:leashable'?: {\n can_be_cut?: boolean; // If true, players can cut both incoming and outgoing leashes\n can_be_stolen?: boolean; // If true, players can leash this entity even if already leashed\n hard_distance?: number; // Distance in blocks at which the leash stiffens\n max_distance?: number; // Distance in blocks at which the leash breaks\n on_leash?: string | { event: string; target?: string }; // Event to call when leashed\n on_unleash?: string | { event: string; target?: string }; // Event to call when unleashed\n on_unleash_interact_only?: boolean; // Triggers only for player interactions\n presets?: Array<{\n filter?: {\n subject?: string;\n test?: string;\n value?: any;\n operator?: string;\n [key: string]: any;\n }; // Conditions for preset application\n hard_distance?: number; // Distance for spring-like force\n max_distance?: number; // Distance at which leash breaks\n rotation_adjustment?: number; // Rotation adjustment for equilibrium\n soft_distance?: number; // Distance for pathfinding\n spring_type?: 'bouncy' | 'dampened' | 'quad_dampened'; // Type of spring force\n }>; // Behavior presets for different leashed scenarios\n soft_distance?: number; // Distance for spring effect start\n };\n 'minecraft:leashable_to'?: {\n can_retrieve_from?: boolean; // Allows retrieving entities leashed to this entity\n };\n 'minecraft:looked_at'?: {\n field_of_view?: number; // Width of field of view in degrees\n filters?: {\n subject?: string;\n test?: string;\n value?: any;\n operator?: string;\n [key: string]: any;\n }; // Which entities are considered\n find_players_only?: boolean; // Limit search to nearest Player only\n line_of_sight_obstruction_type?:\n | 'outline'\n | 'collision'\n | 'collision_for_camera'; // Block shape for obstruction\n look_at_locations?: string[]; // Locations on entity for line of sight checks\n looked_at_cooldown?: { min: number; max: number }; // Range for cooldown\n looked_at_event?: string | { event: string; target?: string }; // Event when looked at\n min_looked_at_duration?: number; // Minimum continuous look time\n not_looked_at_event?: string | { event: string; target?: string }; // Event when not looked at\n scale_fov_by_distance?: boolean; // Narrow FOV with distance\n search_radius?: number; // Maximum search distance\n set_target?:\n | boolean\n | 'never'\n | 'once_and_stop_scanning'\n | 'once_and_keep_scanning'; // Combat targeting behavior\n };\n 'minecraft:loot'?: {\n table?: string; // Path to loot table JSON file\n };\n 'minecraft:managed_wandering_trader'?: {\n // Component that manages the wandering trader's ability to trade\n // Can only be used on wandering_trader entities\n };\n 'minecraft:mark_variant'?: {\n value: number; // The ID of the mark_variant (0 for base entity)\n };\n 'minecraft:mob_effect'?: {\n ambient?: boolean; // If the effect is considered an ambient effect\n cooldown_time?: number; // Time in seconds between effect applications\n effect_range?: number; // How close an entity must be to have effect applied\n effect_time?: number | 'infinite'; // Duration in seconds or infinite\n entity_filter?: {\n subject?: string;\n test?: string;\n value?: any;\n operator?: string;\n [key: string]: any;\n }; // Set of entities valid for the effect\n mob_effect: string; // The mob effect that is applied\n };\n 'minecraft:mob_effect_immunity'?: {\n mob_effects: string[]; // List of effect names the entity is immune to\n };\n 'minecraft:movement'?: {\n max?: number; // Maximum movement speed this entity can have\n value?: number | { range_min: number; range_max: number }; // Base movement speed value or range\n };\n 'minecraft:movement.amphibious'?: {\n max_turn?: number; // The maximum number in degrees the mob can turn per tick\n };\n 'minecraft:movement.basic'?: {\n max_turn?: number; // The maximum number in degrees the mob can turn per tick\n };\n 'minecraft:movement.dolphin'?: {\n // This movement is not currently being used in game\n // 组件占位符,用于海豚式移动控制\n };\n 'minecraft:movement.fly'?: {\n max_turn?: number; // The maximum number in degrees the mob can turn per tick\n speed_when_turning?: number; // Speed that the mob adjusts to when it has to turn quickly\n start_speed?: number; // Initial speed of the mob when it starts gliding\n };\n 'minecraft:movement.generic'?: {\n max_turn?: number; // The maximum number in degrees the mob can turn per tick\n };\n 'minecraft:movement.glide'?: {\n max_turn?: number; // The maximum number in degrees the mob can turn per tick\n speed_when_turning?: number; // Speed that the mob adjusts to when it has to turn quickly\n };\n 'minecraft:movement.hover'?: {\n max_turn?: number; // The maximum number in degrees the mob can turn per tick\n };\n 'minecraft:movement.jump'?: {\n jump_delay?:\n | number\n | [number, number]\n | { range_min: number; range_max: number }; // Delay in seconds after landing\n max_turn?: number; // The maximum number in degrees the mob can turn per tick\n };\n 'minecraft:movement.skip'?: {\n max_turn?: number; // The maximum number in degrees the mob can turn per tick\n };\n 'minecraft:movement.sound_distance_offset'?: {\n value?: number; // The higher the number, the less often the movement sound will be played\n };\n 'minecraft:movement.sway'?: {\n max_turn?: number; // The maximum number in degrees the mob can turn per tick\n sway_amplitude?: number; // Strength of the sway movement\n sway_frequency?: number; // Multiplier for the frequency of the sway movement\n };\n 'minecraft:nameable'?: {\n allow_name_tag_renaming?: boolean; // If true, this entity can be renamed with name tags\n always_show?: boolean; // If true, the name will always be shown\n default_trigger?: string; // Trigger to run when the entity gets named\n name_actions?: Array<{\n name_filter?: string[]; // List of special names that will cause the events to fire\n on_named?: string | { event: string; target?: string }; // Event to be called when this entity acquires the name\n }>; // Describes special names and corresponding events\n };\n 'minecraft:navigation.climb'?: {\n avoid_damage_blocks?: boolean; // Tells the pathfinder to avoid blocks that cause damage\n avoid_portals?: boolean; // Tells the pathfinder to avoid portals (like nether portals)\n avoid_sun?: boolean; // Whether or not the pathfinder should avoid tiles exposed to the sun\n avoid_water?: boolean; // Tells the pathfinder to avoid water when creating a path\n blocks_to_avoid?: string[]; // Tells the pathfinder which blocks to avoid\n can_breach?: boolean; // Tells the pathfinder whether or not it can jump out of water\n can_break_doors?: boolean; // Tells the pathfinder that it can path through a closed door and break it\n can_jump?: boolean; // Tells the pathfinder whether or not it can jump up blocks\n can_open_doors?: boolean; // Tells the pathfinder that it can path through a closed door\n can_open_iron_doors?: boolean; // Tells the pathfinder that it can path through a closed iron door\n can_pass_doors?: boolean; // Whether a path can be created through a door\n can_path_from_air?: boolean; // Tells the pathfinder that it can start pathing when in the air\n can_path_over_lava?: boolean; // Tells the pathfinder whether or not it can travel on lava surface\n can_path_over_water?: boolean; // Tells the pathfinder whether or not it can travel on water surface\n can_sink?: boolean; // Tells the pathfinder whether or not it will be pulled down by gravity in water\n can_swim?: boolean; // Tells the pathfinder whether or not it can path through water\n can_walk?: boolean; // Tells the pathfinder whether or not it can walk on the ground outside water\n can_walk_in_lava?: boolean; // Tells the pathfinder whether or not it can travel in lava\n is_amphibious?: boolean; // Tells the pathfinder whether or not it can walk underwater\n using_door_annotation?: boolean; // Tells the pathfinder whether to use door annotations\n };\n 'minecraft:navigation.float'?: {\n avoid_damage_blocks?: boolean; // Tells the pathfinder to avoid blocks that cause damage\n avoid_portals?: boolean; // Tells the pathfinder to avoid portals (like nether portals)\n avoid_sun?: boolean; // Whether or not the pathfinder should avoid tiles exposed to the sun\n avoid_water?: boolean; // Tells the pathfinder to avoid water when creating a path\n blocks_to_avoid?: string[]; // Tells the pathfinder which blocks to avoid\n can_breach?: boolean; // Tells the pathfinder whether or not it can jump out of water\n can_break_doors?: boolean; // Tells the pathfinder that it can path through a closed door and break it\n can_jump?: boolean; // Tells the pathfinder whether or not it can jump up blocks\n can_open_doors?: boolean; // Tells the pathfinder that it can path through a closed door\n can_open_iron_doors?: boolean; // Tells the pathfinder that it can path through a closed iron door\n can_pass_doors?: boolean; // Whether a path can be created through a door\n can_path_from_air?: boolean; // Tells the pathfinder that it can start pathing when in the air\n can_path_over_lava?: boolean; // Tells the pathfinder whether or not it can travel on lava surface\n can_path_over_water?: boolean; // Tells the pathfinder whether or not it can travel on water surface\n can_sink?: boolean; // Tells the pathfinder whether or not it will be pulled down by gravity in water\n can_swim?: boolean; // Tells the pathfinder whether or not it can path through water\n can_walk?: boolean; // Tells the pathfinder whether or not it can walk on the ground outside water\n can_walk_in_lava?: boolean; // Tells the pathfinder whether or not it can travel in lava\n is_amphibious?: boolean; // Tells the pathfinder whether or not it can walk underwater\n using_door_annotation?: boolean; // Tells the pathfinder whether to use door annotations\n };\n 'minecraft:navigation.fly'?: {\n avoid_damage_blocks?: boolean; // Tells the pathfinder to avoid blocks that cause damage\n avoid_portals?: boolean; // Tells the pathfinder to avoid portals (like nether portals)\n avoid_sun?: boolean; // Whether or not the pathfinder should avoid tiles exposed to the sun\n avoid_water?: boolean; // Tells the pathfinder to avoid water when creating a path\n blocks_to_avoid?: string[]; // Tells the pathfinder which blocks to avoid\n can_breach?: boolean; // Tells the pathfinder whether or not it can jump out of water\n can_break_doors?: boolean; // Tells the pathfinder that it can path through a closed door and break it\n can_jump?: boolean; // Tells the pathfinder whether or not it can jump up blocks\n can_open_doors?: boolean; // Tells the pathfinder that it can path through a closed door\n can_open_iron_doors?: boolean; // Tells the pathfinder that it can path through a closed iron door\n can_pass_doors?: boolean; // Whether a path can be created through a door\n can_path_from_air?: boolean; // Tells the pathfinder that it can start pathing when in the air\n can_path_over_lava?: boolean; // Tells the pathfinder whether or not it can travel on lava surface\n can_path_over_water?: boolean; // Tells the pathfinder whether or not it can travel on water surface\n can_sink?: boolean; // Tells the pathfinder whether or not it will be pulled down by gravity in water\n can_swim?: boolean; // Tells the pathfinder whether or not it can path through water\n can_walk?: boolean; // Tells the pathfinder whether or not it can walk on the ground outside water\n can_walk_in_lava?: boolean; // Tells the pathfinder whether or not it can travel in lava\n is_amphibious?: boolean; // Tells the pathfinder whether or not it can walk underwater\n using_door_annotation?: boolean; // Tells the pathfinder whether to use door annotations\n };\n 'minecraft:navigation.generic'?: {\n avoid_damage_blocks?: boolean; // Tells the pathfinder to avoid blocks that cause damage\n avoid_portals?: boolean; // Tells the pathfinder to avoid portals (like nether portals)\n avoid_sun?: boolean; // Whether or not the pathfinder should avoid tiles exposed to the sun\n avoid_water?: boolean; // Tells the pathfinder to avoid water when creating a path\n blocks_to_avoid?: string[]; // Tells the pathfinder which blocks to avoid\n can_breach?: boolean; // Tells the pathfinder whether or not it can jump out of water\n can_break_doors?: boolean; // Tells the pathfinder that it can path through a closed door and break it\n can_jump?: boolean; // Tells the pathfinder whether or not it can jump up blocks\n can_open_doors?: boolean; // Tells the pathfinder that it can path through a closed door\n can_open_iron_doors?: boolean; // Tells the pathfinder that it can path through a closed iron door\n can_pass_doors?: boolean; // Whether a path can be created through a door\n can_path_from_air?: boolean; // Tells the pathfinder that it can start pathing when in the air\n can_path_over_lava?: boolean; // Tells the pathfinder whether or not it can travel on lava surface\n can_path_over_water?: boolean; // Tells the pathfinder whether or not it can travel on water surface\n can_sink?: boolean; // Tells the pathfinder whether or not it will be pulled down by gravity in water\n can_swim?: boolean; // Tells the pathfinder whether or not it can path through water\n can_walk?: boolean; // Tells the pathfinder whether or not it can walk on the ground outside water\n can_walk_in_lava?: boolean; // Tells the pathfinder whether or not it can travel in lava\n is_amphibious?: boolean; // Tells the pathfinder whether or not it can walk underwater\n using_door_annotation?: boolean; // Tells the pathfinder whether to use door annotations\n };\n 'minecraft:navigation.hover'?: {\n avoid_damage_blocks?: boolean; // Tells the pathfinder to avoid blocks that cause damage\n avoid_portals?: boolean; // Tells the pathfinder to avoid portals (like nether portals)\n avoid_sun?: boolean; // Whether or not the pathfinder should avoid tiles exposed to the sun\n avoid_water?: boolean; // Tells the pathfinder to avoid water when creating a path\n blocks_to_avoid?: string[]; // Tells the pathfinder which blocks to avoid\n can_breach?: boolean; // Tells the pathfinder whether or not it can jump out of water\n can_break_doors?: boolean; // Tells the pathfinder that it can path through a closed door and break it\n can_jump?: boolean; // Tells the pathfinder whether or not it can jump up blocks\n can_open_doors?: boolean; // Tells the pathfinder that it can path through a closed door\n can_open_iron_doors?: boolean; // Tells the pathfinder that it can path through a closed iron door\n can_pass_doors?: boolean; // Whether a path can be created through a door\n can_path_from_air?: boolean; // Tells the pathfinder that it can start pathing when in the air\n can_path_over_lava?: boolean; // Tells the pathfinder whether or not it can travel on lava surface\n can_path_over_water?: boolean; // Tells the pathfinder whether or not it can travel on water surface\n can_sink?: boolean; // Tells the pathfinder whether or not it will be pulled down by gravity in water\n can_swim?: boolean; // Tells the pathfinder whether or not it can path through water\n can_walk?: boolean; // Tells the pathfinder whether or not it can walk on the ground outside water\n can_walk_in_lava?: boolean; // Tells the pathfinder whether or not it can travel in lava\n is_amphibious?: boolean; // Tells the pathfinder whether or not it can walk underwater\n using_door_annotation?: boolean; // Tells the pathfinder whether to use door annotations\n };\n 'minecraft:navigation.swim'?: {\n avoid_damage_blocks?: boolean; // Tells the pathfinder to avoid blocks that cause damage\n avoid_portals?: boolean; // Tells the pathfinder to avoid portals (like nether portals)\n avoid_sun?: boolean; // Whether or not the pathfinder should avoid tiles exposed to the sun\n avoid_water?: boolean; // Tells the pathfinder to avoid water when creating a path\n blocks_to_avoid?:\n | string[]\n | Array<{\n name?: string; // Block identifier to avoid\n tags?: string; // Molang expression to match block tags, e.g. query.any_tag('trapdoors')\n }>; // Tells the pathfinder which blocks to avoid\n can_breach?: boolean; // Tells the pathfinder whether or not it can jump out of water (like a dolphin)\n can_break_doors?: boolean; // Tells the pathfinder that it can path through a closed door and break it\n can_jump?: boolean; // Tells the pathfinder whether or not it can jump up blocks\n can_open_doors?: boolean; // Tells the pathfinder that it can path through a closed door assuming the AI will open the door\n can_open_iron_doors?: boolean; // Tells the pathfinder that it can path through a closed iron door assuming the AI will open the door\n can_pass_doors?: boolean; // Whether a path can be created through a door\n can_path_from_air?: boolean; // Tells the pathfinder that it can start pathing when in the air\n can_path_over_lava?: boolean; // Tells the pathfinder whether or not it can travel on the surface of the lava\n can_path_over_water?: boolean; // Tells the pathfinder whether or not it can travel on the surface of the water\n can_sink?: boolean; // Tells the pathfinder whether or not it will be pulled down by gravity while in water\n can_swim?: boolean; // Tells the pathfinder whether or not it can path anywhere through water and plays swimming animation along that path\n can_walk?: boolean; // Tells the pathfinder whether or not it can walk on the ground outside water\n can_walk_in_lava?: boolean; // Tells the pathfinder whether or not it can travel in lava like walking on ground\n is_amphibious?: boolean; // Tells the pathfinder whether or not it can walk on the ground underwater\n using_door_annotation?: boolean; // Tells the pathfinder whether to use door annotations\n };\n 'minecraft:navigation.walk'?: {\n avoid_damage_blocks?: boolean; // Tells the pathfinder to avoid blocks that cause damage when finding a path\n avoid_portals?: boolean; // Tells the pathfinder to avoid portals (like nether portals) when finding a path\n avoid_sun?: boolean; // Whether or not the pathfinder should avoid tiles that are exposed to the sun when creating paths\n avoid_water?: boolean; // Tells the pathfinder to avoid water when creating a path\n blocks_to_avoid?:\n | string[]\n | Array<{\n name?: string; // Block identifier to avoid\n tags?: string; // Molang expression to match block tags, e.g. query.any_tag('trapdoors')\n }>; // Tells the pathfinder which blocks to avoid\n can_breach?: boolean; // Tells the pathfinder whether or not it can jump out of water (like a dolphin)\n can_break_doors?: boolean; // Tells the pathfinder that it can path through a closed door and break it\n can_float?: boolean; // Tells the pathfinder whether or not it can float\n can_jump?: boolean; // Tells the pathfinder whether or not it can jump up blocks\n can_open_doors?: boolean; // Tells the pathfinder that it can path through a closed door assuming the AI will open the door\n can_open_iron_doors?: boolean; // Tells the pathfinder that it can path through a closed iron door assuming the AI will open the door\n can_pass_doors?: boolean; // Whether a path can be created through a door\n can_path_from_air?: boolean; // Tells the pathfinder that it can start pathing when in the air\n can_path_over_lava?: boolean; // Tells the pathfinder whether or not it can travel on the surface of the lava\n can_path_over_water?: boolean; // Tells the pathfinder whether or not it can travel on the surface of the water\n can_sink?: boolean; // Tells the pathfinder whether or not it will be pulled down by gravity while in water\n can_swim?: boolean; // Tells the pathfinder whether or not it can path anywhere through water and plays swimming animation along that path\n can_walk?: boolean; // Tells the pathfinder whether or not it can walk on the ground outside water\n can_walk_in_lava?: boolean; // Tells the pathfinder whether or not it can travel in lava like walking on ground\n is_amphibious?: boolean; // Tells the pathfinder whether or not it can walk on the ground underwater\n using_door_annotation?: boolean; // Tells the pathfinder whether to use door annotations\n };\n 'minecraft:preferred_path'?: {\n /** Cost for non-preferred blocks */\n default_block_cost?: number;\n /** Added cost for jumping up a node */\n jump_cost?: number;\n /** Distance mob can fall without taking damage */\n max_fall_blocks?: number;\n /** A list of block types with their associated pathfinding costs */\n preferred_path_blocks?: Array<{\n /** Array of block identifiers that share this cost value */\n blocks: string[];\n /** The cost value for these blocks during pathfinding. Lower costs make paths more preferred */\n cost: number;\n }>;\n };\n 'minecraft:out_of_control'?: {}; // Defines the entity's 'out of control' state\n 'minecraft:peek'?: {\n on_close?: {\n event?: string; // Event to call when the entity is done peeking\n };\n on_open?: {\n event?: string; // Event to call when the entity starts peeking\n };\n on_target_open?: {\n event?: string; // Event to call when the entity's target entity starts peeking\n };\n }; // Defines the entity's 'peek' behavior\n 'minecraft:persistent'?: {}; // Defines whether an entity should be persistent in the game world\n 'minecraft:physics'?: {\n has_collision?: boolean; // Whether or not the entity collides with things\n has_gravity?: boolean; // Whether or not the entity is affected by gravity\n push_towards_closest_space?: boolean; // Whether or not the entity should be pushed towards the nearest open area when stuck inside a block\n }; // Defines physics properties of an actor\n 'minecraft:player.exhaustion'?: {\n max?: number; // A maximum value for a player's exhaustion\n value?: number; // The initial value of a player's exhaustion level\n }; // Defines the player's exhaustion level\n 'minecraft:offspring'?: {\n born_event?: {\n event?: string;\n target?: string;\n };\n breed_event?: {\n event?: string;\n target?: string;\n };\n breed_items?: string[];\n blend_attributes?: boolean; // If true, the entities will blend their attributes in the offspring after they breed\n cooldown?: number;\n delayed_growth?: boolean;\n deny_parents_baby_variant?: boolean;\n deny_parents_variant?: Array<{\n chance?: number; // The percentage chance of denying the parents' variant\n max_variant?: number; // The inclusive maximum of the variant range\n min_variant?: number; // The inclusive minimum of the variant range\n }>; // Determines how likely the baby of parents with the same variant will deny that variant\n grow_up_duration?: number;\n inherit_tamed?: boolean; // If true, the babies will be automatically tamed if its parents are\n initial_variant?: number;\n inheritance_chance?: {\n angry?: number;\n attacker?: number;\n color?: number;\n gene?: number;\n variant?: number;\n };\n mutation_factor?: {\n color?: number; // The percentage chance of the offspring getting its color as if spawned\n gene?: number; // The percentage chance of a mutation on the entity's gene\n extra?: number; // The percentage chance of a mutation on the entity's extra attribute\n health?: number; // The percentage chance of a mutation on the entity's health attribute\n speed?: number; // The percentage chance of a mutation on the entity's speed attribute\n extra_variant?: number; // The percentage chance of a mutation on the entity's extra variant type\n variant?: number; // The percentage chance of a mutation on the entity's variant type\n }; // Determines how likely the babies are to NOT inherit one of their parent's variances\n num_variants?: number;\n offspring_pairs?: Record<string, string>; // The map of entity to offspring definitions that this entity can make offspring with\n parent_centric_attribute_blending?: {\n attribute?: string;\n dampening?: number;\n };\n property_inheritance?: Record<string, any>; // List of Entity Properties that should be inherited from the parent entities and potentially mutated\n random_extra_variant_mutation_interval?: {\n range_max?: number;\n range_min?: number;\n }; // Range used to determine random extra variant\n random_variant_mutation_interval?: {\n range_max?: number;\n range_min?: number;\n }; // Range used to determine random variant\n should_baby_face_parent?: boolean;\n variants?: Record<string | number, number>;\n };\n };\n}\n\ninterface EntityJson extends BaseJson {\n 'minecraft:entity': {\n description: {\n identifier: string;\n is_spawnable?: boolean;\n is_summonable?: boolean;\n };\n components?: EntityComponentOptions['components'];\n component_groups?: Record<string, {}>;\n };\n}\nexport type { EntityComponentOptions, EntityJson };\nexport type { EntityComponentOptions as EntityComponentOpt };\nexport type { EntityJson as EntityJSON };\nexport type { BaseJson as BaseJSON };\nexport { RepairItemSchema, SeedPropertiesSchema };\n","import { randomUUID } from 'node:crypto';\nimport { PNGImageComponent } from '../lib';\nimport * as t from './../types';\nclass ItemComponent {\n #opt: t.ItemComponentOptions;\n #edit: t.BaseJson['_meta']['file_edit'] = [];\n constructor(opt: t.ItemComponentOptions) {\n this.#opt = opt;\n }\n public toJSON(): t.ItemJson {\n if (!this.#opt) throw new Error('[mcx component]: cannot read component');\n const result: t.ItemJson = {\n format_version: '',\n _meta: {\n type: 'item',\n file_edit: this.#edit || [],\n },\n 'minecraft:item': {\n components: {},\n description: {\n identifier: '',\n },\n },\n };\n if (\n typeof this.#opt.format == 'string' &&\n /\\d.\\d.\\d/.test(this.#opt.format)\n ) {\n result['format_version'] = this.#opt.format;\n } else {\n throw new Error('[compile component]: no format');\n }\n if (\n typeof this.#opt.id == 'string' &&\n /[a-zA-Z0-9_]:[a-zA-Z0-9_]/.test(this.#opt.id)\n ) {\n result['minecraft:item'].description.identifier = this.#opt.id;\n } else {\n throw new Error('[compile component]:cno id');\n }\n const ApplyComponents = result['minecraft:item'].components;\n if (typeof this.#opt.name == 'string') {\n ApplyComponents['minecraft:display_name'] = {\n value: this.#opt.name,\n };\n }\n if (this.#opt.components) {\n const components = this.#opt.components;\n if (typeof components.damage == 'number') {\n ApplyComponents['minecraft:damage'] = {\n value: components.damage,\n };\n }\n if (typeof components.offHand == 'boolean') {\n ApplyComponents['minecraft:allow_off_hand'] = {\n value: components.offHand,\n };\n }\n if (typeof components.canDestroyInCreative == 'boolean') {\n ApplyComponents['minecraft:can_destroy_in_creative'] = {\n value: components.canDestroyInCreative,\n };\n }\n if (typeof components.icon == 'string' && components.icon.trim()) {\n ApplyComponents['minecraft:icon'] = {\n textures: components.icon.trim(),\n };\n } else if (\n typeof components.icon == 'object' &&\n components.icon &&\n 'classId' in components.icon &&\n components.icon.classId == 'mcx_png_2340192'\n ) {\n ApplyComponents['minecraft:icon'] = {\n textures: components.icon.filePath,\n };\n }\n\n if (components.block_placer) {\n // Validate format version for block_placer (requires 1.21.50+)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(formatParts[1] + '.' + formatParts[2]);\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.21 ||\n (formatVersion === 1.21 && patchVersion < 50)\n ) {\n throw new Error(\n '[compile component]: block_placer component requires format version 1.21.50 or higher',\n );\n }\n\n const blockPlacerConfig: any = {};\n\n if (typeof components.block_placer.aligned_placement === 'boolean') {\n blockPlacerConfig.aligned_placement =\n components.block_placer.aligned_placement;\n }\n\n if (typeof components.block_placer.block === 'string') {\n blockPlacerConfig.block = components.block_placer.block;\n }\n\n if (typeof components.block_placer.replace_block_item === 'boolean') {\n blockPlacerConfig.replace_block_item =\n components.block_placer.replace_block_item;\n }\n\n if (Array.isArray(components.block_placer.use_on)) {\n blockPlacerConfig.use_on = [...components.block_placer.use_on];\n }\n\n ApplyComponents['minecraft:block_placer'] = blockPlacerConfig;\n }\n\n if (components.cooldown) {\n const cooldownConfig: any = {};\n\n if (typeof components.cooldown.category === 'string') {\n cooldownConfig.category = components.cooldown.category;\n } else {\n throw new Error(\n '[compile component]: cooldown: category must be a string',\n );\n }\n\n if (typeof components.cooldown.duration === 'number') {\n cooldownConfig.duration = components.cooldown.duration;\n } else {\n throw new Error(\n '[compile component]: cooldown: duration must be a number',\n );\n }\n\n if (\n components.cooldown.type &&\n (components.cooldown.type === 'use' ||\n components.cooldown.type === 'attack')\n ) {\n cooldownConfig.type = components.cooldown.type;\n }\n\n ApplyComponents['minecraft:cooldown'] = cooldownConfig;\n }\n\n if (components.compostable) {\n // Validate format version for compostable (requires 1.21.60+)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(formatParts[1] + '.' + formatParts[2]);\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.21 ||\n (formatVersion === 1.21 && patchVersion < 60)\n ) {\n throw new Error(\n '[compile component]: compostable component requires format version 1.21.60 or higher',\n );\n }\n\n const compostableConfig: any = {};\n\n if (typeof components.compostable.composting_chance === 'number') {\n if (\n components.compostable.composting_chance < 1 ||\n components.compostable.composting_chance > 100\n ) {\n throw new Error(\n '[compile component]: compostable: composting_chance must be between 1 and 100',\n );\n }\n compostableConfig.composting_chance =\n components.compostable.composting_chance;\n } else {\n throw new Error(\n '[compile component]: compostable: composting_chance must be a number',\n );\n }\n\n ApplyComponents['minecraft:compostable'] = compostableConfig;\n }\n\n if (components.bundle_interaction) {\n // Validate format version for bundle_interaction (requires 1.21.40+)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(formatParts[1] + '.' + formatParts[2]);\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.21 ||\n (formatVersion === 1.21 && patchVersion < 40)\n ) {\n throw new Error(\n '[compile component]: bundle_interaction component requires format version 1.21.40 or higher',\n );\n }\n\n // Validate that storage_item is defined\n if (!components.storage_item) {\n throw new Error(\n '[compile component]: bundle_interaction requires minecraft:storage_item component to be defined',\n );\n }\n\n const bundleInteractionConfig: any = {};\n\n if (\n typeof components.bundle_interaction.num_viewable_slots === 'number'\n ) {\n if (\n components.bundle_interaction.num_viewable_slots < 1 ||\n components.bundle_interaction.num_viewable_slots > 64\n ) {\n throw new Error(\n '[compile component]: bundle_interaction: num_viewable_slots must be between 1 and 64',\n );\n }\n bundleInteractionConfig.num_viewable_slots =\n components.bundle_interaction.num_viewable_slots;\n }\n\n ApplyComponents['minecraft:bundle_interaction'] =\n bundleInteractionConfig;\n }\n\n if (components.storage_item) {\n // Validate format version for storage_item (requires 1.21.40+)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(formatParts[1] + '.' + formatParts[2]);\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.21 ||\n (formatVersion === 1.21 && patchVersion < 40)\n ) {\n throw new Error(\n '[compile component]: storage_item component requires format version 1.21.40 or higher',\n );\n }\n\n const storageItemConfig: any = {};\n\n if (typeof components.storage_item.max_slots === 'number') {\n if (components.storage_item.max_slots > 64) {\n throw new Error(\n '[compile component]: storage_item: max_slots cannot exceed 64',\n );\n }\n storageItemConfig.max_slots = components.storage_item.max_slots;\n }\n\n if (typeof components.storage_item.max_weight_limit === 'number') {\n storageItemConfig.max_weight_limit =\n components.storage_item.max_weight_limit;\n }\n\n if (\n typeof components.storage_item.weight_in_storage_item === 'number'\n ) {\n storageItemConfig.weight_in_storage_item =\n components.storage_item.weight_in_storage_item;\n }\n\n if (\n typeof components.storage_item.allow_nested_storage_items ===\n 'boolean'\n ) {\n storageItemConfig.allow_nested_storage_items =\n components.storage_item.allow_nested_storage_items;\n }\n\n if (Array.isArray(components.storage_item.allowed_items)) {\n storageItemConfig.allowed_items = [\n ...components.storage_item.allowed_items,\n ];\n }\n\n if (Array.isArray(components.storage_item.banned_items)) {\n storageItemConfig.banned_items = [\n ...components.storage_item.banned_items,\n ];\n }\n\n ApplyComponents['minecraft:storage_item'] = storageItemConfig;\n }\n\n if (typeof components.glint === 'boolean') {\n ApplyComponents['minecraft:glint'] = {\n value: components.glint,\n };\n }\n\n if (typeof components.hand_equipped === 'boolean') {\n ApplyComponents['minecraft:hand_equipped'] = {\n value: components.hand_equipped,\n };\n }\n\n if (components.digger) {\n const diggerConfig: any = {};\n\n if (typeof components.digger.use_efficiency === 'boolean') {\n diggerConfig.use_efficiency = components.digger.use_efficiency;\n }\n\n if (Array.isArray(components.digger.destroy_speeds)) {\n diggerConfig.destroy_speeds = [];\n for (const speedEntry of components.digger.destroy_speeds) {\n const entry: any = {};\n\n if (speedEntry.block) {\n entry.block = speedEntry.block;\n } else {\n throw new Error(\n '[compile component]: digger: destroy_speeds entry must have a block',\n );\n }\n\n if (typeof speedEntry.speed === 'number') {\n entry.speed = speedEntry.speed;\n } else {\n throw new Error(\n '[compile component]: digger: destroy_speeds entry speed must be a number',\n );\n }\n\n diggerConfig.destroy_speeds.push(entry);\n }\n }\n\n ApplyComponents['minecraft:digger'] = diggerConfig;\n }\n\n if (components.damage_absorption) {\n const damageAbsorptionConfig: any = {};\n\n if (Array.isArray(components.damage_absorption.absorbable_causes)) {\n if (components.damage_absorption.absorbable_causes.length === 0) {\n throw new Error(\n '[compile component]: damage_absorption: absorbable_causes must have at least 1 item',\n );\n }\n damageAbsorptionConfig.absorbable_causes = [\n ...components.damage_absorption.absorbable_causes,\n ];\n } else {\n throw new Error(\n '[compile component]: damage_absorption: absorbable_causes must be an array',\n );\n }\n\n ApplyComponents['minecraft:damage_absorption'] = damageAbsorptionConfig;\n }\n\n if (components.durability) {\n const durabilityConfig: any = {};\n\n if (typeof components.durability.max_durability === 'number') {\n if (components.durability.max_durability < 0) {\n throw new Error(\n '[compile component]: durability: max_durability must be at least 0',\n );\n }\n durabilityConfig.max_durability =\n components.durability.max_durability;\n } else {\n throw new Error(\n '[compile component]: durability: max_durability must be a number',\n );\n }\n\n if (components.durability.damage_chance) {\n const damageChance = components.durability.damage_chance;\n\n if (\n typeof damageChance.min === 'number' &&\n typeof damageChance.max === 'number'\n ) {\n if (damageChance.min < 0 || damageChance.max < 0) {\n throw new Error(\n '[compile component]: durability: damage_chance min and max must be at least 0',\n );\n }\n if (damageChance.min > damageChance.max) {\n throw new Error(\n '[compile component]: durability: damage_chance min cannot be greater than max',\n );\n }\n durabilityConfig.damage_chance = {\n min: damageChance.min,\n max: damageChance.max,\n };\n } else {\n throw new Error(\n '[compile component]: durability: damage_chance must have both min and max values',\n );\n }\n }\n\n ApplyComponents['minecraft:durability'] = durabilityConfig;\n }\n\n if (components.durability_sensor) {\n // Validate format version for durability_sensor (requires 1.21.50+)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(formatParts[1] + '.' + formatParts[2]);\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.21 ||\n (formatVersion === 1.21 && patchVersion < 50)\n ) {\n throw new Error(\n '[compile component]: durability_sensor component requires format version 1.21.50 or higher',\n );\n }\n\n // Validate that durability component is defined\n if (!components.durability) {\n throw new Error(\n '[compile component]: durability_sensor requires minecraft:durability component to be defined',\n );\n }\n\n const durabilitySensorConfig: any = {};\n\n if (typeof components.durability_sensor.durability === 'number') {\n durabilitySensorConfig.durability =\n components.durability_sensor.durability;\n }\n\n if (Array.isArray(components.durability_sensor.durability_thresholds)) {\n if (components.durability_sensor.durability_thresholds.length === 0) {\n throw new Error(\n '[compile component]: durability_sensor: durability_thresholds must have at least 1 item',\n );\n }\n\n durabilitySensorConfig.durability_thresholds = [];\n for (const threshold of components.durability_sensor\n .durability_thresholds) {\n const thresholdConfig: any = {};\n\n if (typeof threshold.durability === 'number') {\n thresholdConfig.durability = threshold.durability;\n } else {\n throw new Error(\n '[compile component]: durability_sensor: durability_thresholds entry durability must be a number',\n );\n }\n\n if (typeof threshold.particle_type === 'string') {\n if (\n !t.ParticleTypeEnum.includes(\n threshold.particle_type as t.ParticleType,\n )\n ) {\n throw new Error(\n `[compile component]: durability_sensor: durability_thresholds entry particle_type must be a valid particle type. Got: ${threshold.particle_type}`,\n );\n }\n thresholdConfig.particle_type = threshold.particle_type;\n }\n\n if (typeof threshold.sound_event === 'string') {\n if (\n !t.SoundEventEnum.includes(\n threshold.sound_event as t.SoundEvent,\n )\n ) {\n throw new Error(\n `[compile component]: durability_sensor: durability_thresholds entry sound_event must be a valid sound event. Got: ${threshold.sound_event}`,\n );\n }\n thresholdConfig.sound_event = threshold.sound_event;\n }\n\n durabilitySensorConfig.durability_thresholds.push(thresholdConfig);\n }\n }\n\n if (typeof components.durability_sensor.particle_type === 'string') {\n if (\n !t.ParticleTypeEnum.includes(\n components.durability_sensor.particle_type as t.ParticleType,\n )\n ) {\n throw new Error(\n `[compile component]: durability_sensor: particle_type must be a valid particle type. Got: ${components.durability_sensor.particle_type}`,\n );\n }\n durabilitySensorConfig.particle_type =\n components.durability_sensor.particle_type;\n }\n\n if (typeof components.durability_sensor.sound_event === 'string') {\n if (\n !t.SoundEventEnum.includes(\n components.durability_sensor.sound_event as t.SoundEvent,\n )\n ) {\n throw new Error(\n `[compile component]: durability_sensor: sound_event must be a valid sound event. Got: ${components.durability_sensor.sound_event}`,\n );\n }\n durabilitySensorConfig.sound_event =\n components.durability_sensor.sound_event;\n }\n\n ApplyComponents['minecraft:durability_sensor'] = durabilitySensorConfig;\n }\n\n if (components.dyeable) {\n // Validate format version for dyeable (requires 1.21.30+)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(formatParts[1] + '.' + formatParts[2]);\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.21 ||\n (formatVersion === 1.21 && patchVersion < 30)\n ) {\n throw new Error(\n '[compile component]: dyeable component requires format version 1.21.30 or higher',\n );\n }\n\n const dyeableConfig: any = {};\n\n if (components.dyeable.default_color !== undefined) {\n if (typeof components.dyeable.default_color === 'string') {\n // Validate hex color format\n if (!/^#[0-9A-Fa-f]{6}$/.test(components.dyeable.default_color)) {\n throw new Error(\n \"[compile component]: dyeable: default_color string must be a valid hex color (e.g., '#175882')\",\n );\n }\n dyeableConfig.default_color = components.dyeable.default_color;\n } else if (\n Array.isArray(components.dyeable.default_color) &&\n components.dyeable.default_color.length === 3\n ) {\n // Validate RGB array\n const [r, g, b] = components.dyeable.default_color;\n if (\n typeof r !== 'number' ||\n typeof g !== 'number' ||\n typeof b !== 'number' ||\n r < 0 ||\n r > 255 ||\n g < 0 ||\n g > 255 ||\n b < 0 ||\n b > 255\n ) {\n throw new Error(\n '[compile component]: dyeable: default_color array must contain 3 numbers between 0 and 255',\n );\n }\n dyeableConfig.default_color = components.dyeable.default_color;\n } else {\n throw new Error(\n '[compile component]: dyeable: default_color must be a hex string or array of 3 numbers',\n );\n }\n }\n\n ApplyComponents['minecraft:dyeable'] = dyeableConfig;\n }\n\n if (components.enchantable) {\n const enchantableConfig: any = {};\n\n if (typeof components.enchantable.slot === 'string') {\n // Validate slot enum\n if (\n !t.EnchantableSlotEnum.includes(\n components.enchantable.slot as t.EnchantableSlot,\n )\n ) {\n throw new Error(\n `[compile component]: enchantable: slot must be a valid enchantment slot. Got: ${components.enchantable.slot}`,\n );\n }\n enchantableConfig.slot = components.enchantable.slot;\n } else if (components.enchantable.slot !== undefined) {\n throw new Error(\n '[compile component]: enchantable: slot must be a string',\n );\n }\n\n if (typeof components.enchantable.value === 'number') {\n // Validate value minimum (must be at least 0)\n if (components.enchantable.value < 0) {\n throw new Error(\n '[compile component]: enchantable: value must be at least 0',\n );\n }\n enchantableConfig.value = components.enchantable.value;\n } else if (components.enchantable.value !== undefined) {\n throw new Error(\n '[compile component]: enchantable: value must be a number',\n );\n }\n\n ApplyComponents['minecraft:enchantable'] = enchantableConfig;\n }\n\n // Helper function to validate food effects array\n const validateFoodEffects = (effects?: any[]) => {\n if (effects && Array.isArray(effects)) {\n const validEffects = [\n 'regeneration',\n 'absorption',\n 'blindness',\n 'conduit_power',\n 'darkness',\n 'fatal_poison',\n 'fire_resistance',\n 'haste',\n 'health_boost',\n 'hunger',\n 'instant_damage',\n 'instant_health',\n 'invisibility',\n 'jump_boost',\n 'levitation',\n 'mining_fatigue',\n 'nausea',\n 'night_vision',\n 'poison',\n 'resistance',\n 'saturation',\n 'slow_falling',\n 'slowness',\n 'speed',\n 'strength',\n 'water_breathing',\n 'weakness',\n 'wither',\n ];\n\n for (const effect of effects) {\n if (effect.name && !validEffects.includes(effect.name)) {\n throw new Error(\n `[compile component]: food: effect name must be a valid status effect. Got: ${effect.name}`,\n );\n }\n\n if (typeof effect.amplifier === 'number' && effect.amplifier < 0) {\n throw new Error(\n '[compile component]: food: effect amplifier must be at least 0',\n );\n }\n\n if (\n typeof effect.chance === 'number' &&\n (effect.chance < 0 || effect.chance > 1)\n ) {\n throw new Error(\n '[compile component]: food: effect chance must be between 0 and 1',\n );\n }\n\n if (typeof effect.duration === 'number' && effect.duration < 0) {\n throw new Error(\n '[compile component]: food: effect duration must be at least 0',\n );\n }\n }\n return effects;\n }\n return effects;\n };\n\n // Handle food component (both 'minecraft:food' and 'food' aliases)\n const foodConfig = components['minecraft:food'] || components.food;\n if (foodConfig) {\n const foodConfigFinal: any = {};\n\n if (typeof foodConfig.can_always_eat === 'boolean') {\n foodConfigFinal.can_always_eat = foodConfig.can_always_eat;\n }\n\n if (typeof foodConfig.cooldown_time === 'number') {\n if (foodConfig.cooldown_time < 0) {\n throw new Error(\n '[compile component]: food: cooldown_time must be at least 0',\n );\n }\n foodConfigFinal.cooldown_time = foodConfig.cooldown_time;\n }\n\n if (typeof foodConfig.cooldown_type === 'string') {\n foodConfigFinal.cooldown_type = foodConfig.cooldown_type;\n }\n\n if (foodConfig.effects) {\n foodConfigFinal.effects = validateFoodEffects(foodConfig.effects);\n }\n\n if (typeof foodConfig.is_meat === 'boolean') {\n foodConfigFinal.is_meat = foodConfig.is_meat;\n }\n\n if (typeof foodConfig.nutrition === 'number') {\n if (foodConfig.nutrition < 0) {\n throw new Error(\n '[compile component]: food: nutrition must be at least 0',\n );\n }\n foodConfigFinal.nutrition = foodConfig.nutrition;\n }\n\n if (typeof foodConfig.on_use_action === 'string') {\n foodConfigFinal.on_use_action = foodConfig.on_use_action;\n }\n\n if (\n Array.isArray(foodConfig.on_use_range) &&\n foodConfig.on_use_range.length === 3\n ) {\n const [x, y, z] = foodConfig.on_use_range;\n if (\n typeof x === 'number' &&\n typeof y === 'number' &&\n typeof z === 'number'\n ) {\n foodConfigFinal.on_use_range = [x, y, z];\n } else {\n throw new Error(\n '[compile component]: food: on_use_range must be an array of 3 numbers',\n );\n }\n }\n\n if (foodConfig.saturation_modifier !== undefined) {\n const validSaturationModifiers = [\n 'poor',\n 'low',\n 'normal',\n 'good',\n 'supernatural',\n ];\n\n if (typeof foodConfig.saturation_modifier === 'number') {\n foodConfigFinal.saturation_modifier =\n foodConfig.saturation_modifier;\n } else if (typeof foodConfig.saturation_modifier === 'string') {\n if (\n !validSaturationModifiers.includes(foodConfig.saturation_modifier)\n ) {\n throw new Error(\n `[compile component]: food: saturation_modifier string must be one of: ${validSaturationModifiers.join(', ')}. Got: ${foodConfig.saturation_modifier}`,\n );\n }\n foodConfigFinal.saturation_modifier =\n foodConfig.saturation_modifier;\n } else {\n throw new Error(\n '[compile component]: food: saturation_modifier must be a number or string',\n );\n }\n }\n\n if (typeof foodConfig.using_converts_to === 'string') {\n foodConfigFinal.using_converts_to = foodConfig.using_converts_to;\n }\n\n // Deprecated: remove_effects (only include if defined)\n if (\n foodConfig.remove_effects &&\n Array.isArray(foodConfig.remove_effects)\n ) {\n console.warn(\n '[compile component]: food: remove_effects is deprecated and no longer supported in newer versions',\n );\n foodConfigFinal.remove_effects = [...foodConfig.remove_effects];\n }\n\n ApplyComponents['minecraft:food'] = foodConfigFinal;\n }\n\n // Handle fire_resistant component (both 'minecraft:fire_resistant' and 'fire_resistant' aliases)\n const fireResistantConfig =\n components['minecraft:fire_resistant'] || components.fire_resistant;\n if (fireResistantConfig !== undefined) {\n if (typeof fireResistantConfig.value === 'boolean') {\n ApplyComponents['minecraft:fire_resistant'] = fireResistantConfig;\n } else if (fireResistantConfig.value !== undefined) {\n throw new Error(\n '[compile component]: fire_resistant: value must be a boolean',\n );\n } else {\n // If no explicit value, use default (true)\n ApplyComponents['minecraft:fire_resistant'] = { value: true };\n }\n }\n\n // Handle entity_placer component (both 'minecraft:entity_placer' and 'entity_placer' aliases)\n const entityPlacerConfig =\n components['minecraft:entity_placer'] || components.entity_placer;\n if (entityPlacerConfig) {\n // Check if durability component is defined (if needed for format version validation)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(formatParts[1] + '.' + formatParts[2]);\n\n if (\n formatVersion < 1.19 ||\n (formatVersion === 1.19 && parseInt(formatParts[2] || '0') < 80)\n ) {\n console.warn(\n '[compile component]: entity_placer: monster spawner functionality requires format version 1.19.80 or higher',\n );\n }\n\n const entityPlacerFinal: any = {};\n\n // Validate entity regex pattern\n if (typeof entityPlacerConfig.entity === 'string') {\n const entityRegex =\n /^(?:\\w+(?:\\.\\w+):(?=\\w))?(?:\\w+(?:\\.\\w+))?(?:<((?:\\w+(?:\\.\\w+):(?=\\w))?\\w+(?:\\.\\w+))*>)?$/;\n if (!entityRegex.test(entityPlacerConfig.entity)) {\n throw new Error(\n `[compile component]: entity_placer: entity must match the pattern \"^(?:\\\\w+(?:.\\\\w+):(?=\\\\w))?(?:\\\\w+(?:.\\\\w+))(?:<((?:\\\\w+(?:.\\\\w+):(?=\\\\w))?\\\\w+(?:.\\\\w+))*>)?$\". Got: ${entityPlacerConfig.entity}`,\n );\n }\n entityPlacerFinal.entity = entityPlacerConfig.entity;\n } else {\n throw new Error(\n '[compile component]: entity_placer: entity is required and must be a string',\n );\n }\n\n if (entityPlacerConfig.dispense_on !== undefined) {\n if (\n Array.isArray(entityPlacerConfig.dispense_on) &&\n entityPlacerConfig.dispense_on.length > 0\n ) {\n entityPlacerFinal.dispense_on = [];\n for (const dispenseOnItem of entityPlacerConfig.dispense_on) {\n if (typeof dispenseOnItem === 'string') {\n entityPlacerFinal.dispense_on.push(dispenseOnItem);\n } else if (\n typeof dispenseOnItem === 'object' &&\n dispenseOnItem !== null\n ) {\n const dispenseOnObj: any = {};\n\n if (typeof dispenseOnItem.name === 'string') {\n dispenseOnObj.name = dispenseOnItem.name;\n } else {\n throw new Error(\n '[compile component]: entity_placer: dispense_on object must have a name property',\n );\n }\n\n if (\n dispenseOnItem.states &&\n typeof dispenseOnItem.states === 'object'\n ) {\n dispenseOnObj.states = { ...dispenseOnItem.states };\n }\n\n if (typeof dispenseOnItem.tags === 'string') {\n dispenseOnObj.tags = dispenseOnItem.tags;\n }\n\n entityPlacerFinal.dispense_on.push(dispenseOnObj);\n } else {\n throw new Error(\n '[compile component]: entity_placer: dispense_on items must be strings or objects',\n );\n }\n }\n } else if (!Array.isArray(entityPlacerConfig.dispense_on)) {\n throw new Error(\n '[compile component]: entity_placer: dispense_on must be an array',\n );\n } else {\n // Use empty array (default behavior)\n entityPlacerFinal.dispense_on = [];\n }\n }\n\n if (entityPlacerConfig.use_on !== undefined) {\n if (\n Array.isArray(entityPlacerConfig.use_on) &&\n entityPlacerConfig.use_on.length > 0\n ) {\n entityPlacerFinal.use_on = [];\n for (const useOnItem of entityPlacerConfig.use_on) {\n if (typeof useOnItem === 'string') {\n entityPlacerFinal.use_on.push(useOnItem);\n } else if (typeof useOnItem === 'object' && useOnItem !== null) {\n const useOnObj: any = {};\n\n if (typeof useOnItem.name === 'string') {\n useOnObj.name = useOnItem.name;\n } else {\n throw new Error(\n '[compile component]: entity_placer: use_on object must have a name property',\n );\n }\n\n if (useOnItem.states && typeof useOnItem.states === 'object') {\n useOnObj.states = { ...useOnItem.states };\n }\n\n if (typeof useOnItem.tags === 'string') {\n useOnObj.tags = useOnItem.tags;\n }\n\n entityPlacerFinal.use_on.push(useOnObj);\n } else {\n throw new Error(\n '[compile component]: entity_placer: use_on items must be strings or objects',\n );\n }\n }\n } else if (!Array.isArray(entityPlacerConfig.use_on)) {\n throw new Error(\n '[compile component]: entity_placer: use_on must be an array',\n );\n } else {\n // Use empty array (default behavior)\n entityPlacerFinal.use_on = [];\n }\n }\n\n ApplyComponents['minecraft:entity_placer'] = entityPlacerFinal;\n }\n\n // Handle fuel component (both 'minecraft:fuel' and 'fuel' aliases)\n const fuelConfig = components['minecraft:fuel'] || components.fuel;\n if (fuelConfig) {\n const fuelFinal: any = {};\n\n if (typeof fuelConfig.duration === 'number') {\n if (fuelConfig.duration >= 0.05) {\n fuelFinal.duration = fuelConfig.duration;\n } else {\n throw new Error(\n '[compile component]: fuel: duration must be >= 0.05',\n );\n }\n } else {\n throw new Error(\n '[compile component]: fuel: duration is required and must be a number',\n );\n }\n\n // Check if fuel is represented as a simple number (alternative representation)\n if (typeof components.fuel === 'number' && components.fuel >= 0.05) {\n ApplyComponents['minecraft:fuel'] = { duration: components.fuel };\n } else {\n ApplyComponents['minecraft:fuel'] = fuelFinal;\n }\n } else if (typeof components.fuel === 'number') {\n // Handle simple number representation\n if (components.fuel >= 0.05) {\n ApplyComponents['minecraft:fuel'] = { duration: components.fuel };\n } else {\n throw new Error(\n '[compile component]: fuel: duration must be >= 0.05',\n );\n }\n }\n\n // Handle kinetic_weapon component (both 'minecraft:kinetic_weapon' and 'kinetic_weapon' aliases)\n const kineticWeaponConfig =\n components['minecraft:kinetic_weapon'] || components.kinetic_weapon;\n if (kineticWeaponConfig) {\n const kineticWeaponFinal: any = {};\n\n // Validate creative_reach if present\n if (kineticWeaponConfig.creative_reach !== undefined) {\n if (typeof kineticWeaponConfig.creative_reach === 'object') {\n kineticWeaponFinal.creative_reach = {\n ...kineticWeaponConfig.creative_reach,\n };\n if (\n kineticWeaponConfig.creative_reach.min !== undefined &&\n typeof kineticWeaponConfig.creative_reach.min !== 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: creative_reach.min must be a number',\n );\n }\n if (\n kineticWeaponConfig.creative_reach.max !== undefined &&\n typeof kineticWeaponConfig.creative_reach.max !== 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: creative_reach.max must be a number',\n );\n }\n } else {\n throw new Error(\n '[compile component]: kinetic_weapon: creative_reach must be an object',\n );\n }\n }\n\n // Validate damage_conditions if present\n if (kineticWeaponConfig.damage_conditions !== undefined) {\n if (typeof kineticWeaponConfig.damage_conditions === 'object') {\n kineticWeaponFinal.damage_conditions = {\n ...kineticWeaponConfig.damage_conditions,\n };\n if (\n kineticWeaponConfig.damage_conditions.max_duration !==\n undefined &&\n typeof kineticWeaponConfig.damage_conditions.max_duration !==\n 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: damage_conditions.max_duration must be a number',\n );\n }\n if (\n kineticWeaponConfig.damage_conditions.min_relative_speed !==\n undefined &&\n typeof kineticWeaponConfig.damage_conditions\n .min_relative_speed !== 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: damage_conditions.min_relative_speed must be a number',\n );\n }\n if (\n kineticWeaponConfig.damage_conditions.min_speed !== undefined &&\n typeof kineticWeaponConfig.damage_conditions.min_speed !==\n 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: damage_conditions.min_speed must be a number',\n );\n }\n } else {\n throw new Error(\n '[compile component]: kinetic_weapon: damage_conditions must be an object',\n );\n }\n }\n\n // Validate numeric properties\n if (kineticWeaponConfig.damage_modifier !== undefined) {\n if (typeof kineticWeaponConfig.damage_modifier === 'number') {\n kineticWeaponFinal.damage_modifier =\n kineticWeaponConfig.damage_modifier;\n } else {\n throw new Error(\n '[compile component]: kinetic_weapon: damage_modifier must be a number',\n );\n }\n }\n\n if (kineticWeaponConfig.damage_multiplier !== undefined) {\n if (typeof kineticWeaponConfig.damage_multiplier === 'number') {\n kineticWeaponFinal.damage_multiplier =\n kineticWeaponConfig.damage_multiplier;\n } else {\n throw new Error(\n '[compile component]: kinetic_weapon: damage_multiplier must be a number',\n );\n }\n }\n\n if (kineticWeaponConfig.delay !== undefined) {\n if (typeof kineticWeaponConfig.delay === 'number') {\n kineticWeaponFinal.delay = kineticWeaponConfig.delay;\n } else {\n throw new Error(\n '[compile component]: kinetic_weapon: delay must be a number',\n );\n }\n }\n\n if (kineticWeaponConfig.hitbox_margin !== undefined) {\n if (typeof kineticWeaponConfig.hitbox_margin === 'number') {\n kineticWeaponFinal.hitbox_margin =\n kineticWeaponConfig.hitbox_margin;\n } else {\n throw new Error(\n '[compile component]: kinetic_weapon: hitbox_margin must be a number',\n );\n }\n }\n\n // Validate dismount_conditions if present\n if (kineticWeaponConfig.dismount_conditions !== undefined) {\n if (typeof kineticWeaponConfig.dismount_conditions === 'object') {\n kineticWeaponFinal.dismount_conditions = {\n ...kineticWeaponConfig.dismount_conditions,\n };\n if (\n kineticWeaponConfig.dismount_conditions.max_duration !==\n undefined &&\n typeof kineticWeaponConfig.dismount_conditions.max_duration !==\n 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: dismount_conditions.max_duration must be a number',\n );\n }\n if (\n kineticWeaponConfig.dismount_conditions.min_relative_speed !==\n undefined &&\n typeof kineticWeaponConfig.dismount_conditions\n .min_relative_speed !== 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: dismount_conditions.min_relative_speed must be a number',\n );\n }\n if (\n kineticWeaponConfig.dismount_conditions.min_speed !== undefined &&\n typeof kineticWeaponConfig.dismount_conditions.min_speed !==\n 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: dismount_conditions.min_speed must be a number',\n );\n }\n } else {\n throw new Error(\n '[compile component]: kinetic_weapon: dismount_conditions must be an object',\n );\n }\n }\n\n // Validate knockback_conditions if present\n if (kineticWeaponConfig.knockback_conditions !== undefined) {\n if (typeof kineticWeaponConfig.knockback_conditions === 'object') {\n kineticWeaponFinal.knockback_conditions = {\n ...kineticWeaponConfig.knockback_conditions,\n };\n if (\n kineticWeaponConfig.knockback_conditions.max_duration !==\n undefined &&\n typeof kineticWeaponConfig.knockback_conditions.max_duration !==\n 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: knockback_conditions.max_duration must be a number',\n );\n }\n if (\n kineticWeaponConfig.knockback_conditions.min_relative_speed !==\n undefined &&\n typeof kineticWeaponConfig.knockback_conditions\n .min_relative_speed !== 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: knockback_conditions.min_relative_speed must be a number',\n );\n }\n if (\n kineticWeaponConfig.knockback_conditions.min_speed !==\n undefined &&\n typeof kineticWeaponConfig.knockback_conditions.min_speed !==\n 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: knockback_conditions.min_speed must be a number',\n );\n }\n } else {\n throw new Error(\n '[compile component]: kinetic_weapon: knockback_conditions must be an object',\n );\n }\n }\n\n // Validate kinetic_effect_conditions if present\n if (kineticWeaponConfig.kinetic_effect_conditions !== undefined) {\n if (\n typeof kineticWeaponConfig.kinetic_effect_conditions === 'object'\n ) {\n kineticWeaponFinal.kinetic_effect_conditions = {\n ...kineticWeaponConfig.kinetic_effect_conditions,\n };\n if (\n kineticWeaponConfig.kinetic_effect_conditions.max_duration !==\n undefined &&\n typeof kineticWeaponConfig.kinetic_effect_conditions\n .max_duration !== 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: kinetic_effect_conditions.max_duration must be a number',\n );\n }\n if (\n kineticWeaponConfig.kinetic_effect_conditions\n .min_relative_speed !== undefined &&\n typeof kineticWeaponConfig.kinetic_effect_conditions\n .min_relative_speed !== 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: kinetic_effect_conditions.min_relative_speed must be a number',\n );\n }\n if (\n kineticWeaponConfig.kinetic_effect_conditions.min_speed !==\n undefined &&\n typeof kineticWeaponConfig.kinetic_effect_conditions.min_speed !==\n 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: kinetic_effect_conditions.min_speed must be a number',\n );\n }\n } else {\n throw new Error(\n '[compile component]: kinetic_weapon: kinetic_effect_conditions must be an object',\n );\n }\n }\n\n // Validate reach if present\n if (kineticWeaponConfig.reach !== undefined) {\n if (typeof kineticWeaponConfig.reach === 'object') {\n kineticWeaponFinal.reach = { ...kineticWeaponConfig.reach };\n if (\n kineticWeaponConfig.reach.min !== undefined &&\n typeof kineticWeaponConfig.reach.min !== 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: reach.min must be a number',\n );\n }\n if (\n kineticWeaponConfig.reach.max !== undefined &&\n typeof kineticWeaponConfig.reach.max !== 'number'\n ) {\n throw new Error(\n '[compile component]: kinetic_weapon: reach.max must be a number',\n );\n }\n } else {\n throw new Error(\n '[compile component]: kinetic_weapon: reach must be an object',\n );\n }\n }\n\n ApplyComponents['minecraft:kinetic_weapon'] = kineticWeaponFinal;\n }\n\n // Handle interact_button component (both 'minecraft:interact_button' and 'interact_button' aliases)\n const interactButtonConfig =\n components['minecraft:interact_button'] || components.interact_button;\n if (interactButtonConfig !== undefined) {\n if (\n typeof interactButtonConfig === 'boolean' ||\n typeof interactButtonConfig === 'string'\n ) {\n ApplyComponents['minecraft:interact_button'] = interactButtonConfig;\n } else {\n throw new Error(\n '[compile component]: interact_button: must be a boolean or string',\n );\n }\n }\n\n // Handle hover_text_color component (both 'minecraft:hover_text_color' and 'hover_text_color' aliases)\n const hoverTextColorConfig =\n components['minecraft:hover_text_color'] || components.hover_text_color;\n if (hoverTextColorConfig) {\n const hoverTextColorFinal: any = {};\n\n if (typeof hoverTextColorConfig === 'string') {\n // Alternative string representation\n hoverTextColorFinal.value = hoverTextColorConfig;\n } else if (typeof hoverTextColorConfig === 'object') {\n // Object representation\n if (hoverTextColorConfig.value !== undefined) {\n if (typeof hoverTextColorConfig.value === 'string') {\n hoverTextColorFinal.value = hoverTextColorConfig.value;\n } else {\n throw new Error(\n '[compile component]: hover_text_color: value must be a string',\n );\n }\n } else {\n throw new Error(\n '[compile component]: hover_text_color: value is required',\n );\n }\n } else {\n throw new Error(\n '[compile component]: hover_text_color: must be a string or object',\n );\n }\n\n ApplyComponents['minecraft:hover_text_color'] = hoverTextColorFinal;\n }\n\n // Handle liquid_clipped component (both 'minecraft:liquid_clipped' and 'liquid_clipped' aliases)\n const liquidClippedConfig =\n components['minecraft:liquid_clipped'] || components.liquid_clipped;\n if (liquidClippedConfig !== undefined) {\n if (typeof liquidClippedConfig === 'boolean') {\n // Alternative boolean representation\n ApplyComponents['minecraft:liquid_clipped'] = liquidClippedConfig;\n } else if (typeof liquidClippedConfig === 'object') {\n // Object representation\n const liquidClippedFinal: any = {};\n\n if (liquidClippedConfig.value !== undefined) {\n if (typeof liquidClippedConfig.value === 'boolean') {\n liquidClippedFinal.value = liquidClippedConfig.value;\n } else {\n throw new Error(\n '[compile component]: liquid_clipped: value must be a boolean',\n );\n }\n } else {\n throw new Error(\n '[compile component]: liquid_clipped: value is required',\n );\n }\n\n ApplyComponents['minecraft:liquid_clipped'] = liquidClippedFinal;\n } else {\n throw new Error(\n '[compile component]: liquid_clipped: must be a boolean or object',\n );\n }\n }\n\n // Handle max_stack_size component (both 'minecraft:max_stack_size' and 'max_stack_size' aliases)\n const maxStackSizeConfig =\n components['minecraft:max_stack_size'] || components.max_stack_size;\n if (maxStackSizeConfig !== undefined) {\n if (typeof maxStackSizeConfig === 'number') {\n // Alternative number representation\n ApplyComponents['minecraft:max_stack_size'] = maxStackSizeConfig;\n } else if (typeof maxStackSizeConfig === 'object') {\n // Object representation\n const maxStackSizeFinal: any = {};\n\n if (maxStackSizeConfig.value !== undefined) {\n if (typeof maxStackSizeConfig.value === 'number') {\n maxStackSizeFinal.value = maxStackSizeConfig.value;\n } else {\n throw new Error(\n '[compile component]: max_stack_size: value must be a number',\n );\n }\n } else {\n throw new Error(\n '[compile component]: max_stack_size: value is required',\n );\n }\n\n ApplyComponents['minecraft:max_stack_size'] = maxStackSizeFinal;\n } else {\n throw new Error(\n '[compile component]: max_stack_size: must be a number or object',\n );\n }\n }\n\n // Handle piercing_weapon component (both 'minecraft:piercing_weapon' and 'piercing_weapon' aliases)\n const piercingWeaponConfig =\n (components as any)['minecraft:piercing_weapon'] ||\n (components as any).piercing_weapon;\n if (piercingWeaponConfig !== undefined) {\n if (typeof piercingWeaponConfig === 'object') {\n const piercingWeaponFinal: any = {};\n\n if (piercingWeaponConfig.creative_reach !== undefined) {\n const creativeReachFinal: any = {};\n if (typeof piercingWeaponConfig.creative_reach?.max === 'number') {\n creativeReachFinal.max = piercingWeaponConfig.creative_reach.max;\n }\n if (typeof piercingWeaponConfig.creative_reach?.min === 'number') {\n creativeReachFinal.min = piercingWeaponConfig.creative_reach.min;\n }\n piercingWeaponFinal.creative_reach = creativeReachFinal;\n }\n\n if (typeof piercingWeaponConfig.hitbox_margin === 'number') {\n piercingWeaponFinal.hitbox_margin =\n piercingWeaponConfig.hitbox_margin;\n }\n\n if (piercingWeaponConfig.reach !== undefined) {\n const reachFinal: any = {};\n if (typeof piercingWeaponConfig.reach?.max === 'number') {\n reachFinal.max = piercingWeaponConfig.reach.max;\n }\n if (typeof piercingWeaponConfig.reach?.min === 'number') {\n reachFinal.min = piercingWeaponConfig.reach.min;\n }\n piercingWeaponFinal.reach = reachFinal;\n }\n\n ApplyComponents['minecraft:piercing_weapon'] = piercingWeaponFinal;\n } else {\n throw new Error(\n '[compile component]: piercing_weapon: must be an object',\n );\n }\n }\n\n // Handle projectile component (both 'minecraft:projectile' and 'projectile' aliases)\n const projectileConfig =\n (components as any)['minecraft:projectile'] ||\n (components as any).projectile;\n if (projectileConfig !== undefined) {\n if (typeof projectileConfig === 'object') {\n const projectileFinal: any = {};\n\n if (typeof projectileConfig.minimum_critical_power === 'number') {\n if (projectileConfig.minimum_critical_power < 0) {\n throw new Error(\n '[compile component]: projectile: minimum_critical_power must be >= 0',\n );\n }\n projectileFinal.minimum_critical_power =\n projectileConfig.minimum_critical_power;\n }\n\n if (typeof projectileConfig.projectile_entity === 'string') {\n const entityPattern =\n /^(?:\\w+(?:\\.\\w+):(?=\\w))?(?:\\w+(?:\\.\\w+))(?:<((?:\\w+(?:\\.\\w+):(?=\\w))?\\w+(?:\\.\\w+))*>)?$/;\n if (!entityPattern.test(projectileConfig.projectile_entity)) {\n throw new Error(\n '[compile component]: projectile: projectile_entity must match pattern ^(?:\\\\w+(?:\\\\.\\\\w+):(?=\\\\w))?(?:\\\\w+(?:\\\\.\\\\w+))(?:<((?:\\\\w+(?:\\\\.\\\\w+):(?=\\\\w))?\\\\w+(?:\\\\.\\\\w+))*>)?$',\n );\n }\n projectileFinal.projectile_entity =\n projectileConfig.projectile_entity;\n } else {\n throw new Error(\n '[compile component]: projectile: projectile_entity is required and must be a string',\n );\n }\n\n ApplyComponents['minecraft:projectile'] = projectileFinal;\n } else {\n throw new Error('[compile component]: projectile: must be an object');\n }\n }\n\n // Handle record component (both 'minecraft:record' and 'record' aliases)\n const recordConfig =\n (components as any)['minecraft:record'] || (components as any).record;\n if (recordConfig !== undefined) {\n if (typeof recordConfig === 'object') {\n const recordFinal: any = {};\n\n if (typeof recordConfig.comparator_signal === 'number') {\n if (recordConfig.comparator_signal < 0) {\n throw new Error(\n '[compile component]: record: comparator_signal must be >= 0',\n );\n }\n recordFinal.comparator_signal = recordConfig.comparator_signal;\n }\n\n if (typeof recordConfig.duration === 'number') {\n if (recordConfig.duration <= 0) {\n throw new Error(\n '[compile component]: record: duration must be > 0',\n );\n }\n recordFinal.duration = recordConfig.duration;\n }\n\n if (typeof recordConfig.sound_event === 'string') {\n // SoundEvent should already be validated through the type system\n recordFinal.sound_event = recordConfig.sound_event;\n } else {\n throw new Error(\n '[compile component]: record: sound_event is required and must be a string',\n );\n }\n\n ApplyComponents['minecraft:record'] = recordFinal;\n } else {\n throw new Error('[compile component]: record: must be an object');\n }\n }\n\n // Handle rarity component (both 'minecraft:rarity' and 'rarity' aliases)\n const rarityConfig =\n (components as any)['minecraft:rarity'] || (components as any).rarity;\n if (rarityConfig !== undefined) {\n if (typeof rarityConfig === 'object') {\n const rarityFinal: any = {};\n\n if (typeof rarityConfig.value === 'string') {\n const validRarities = [\n 'common',\n 'uncommon',\n 'rare',\n 'epic',\n ] as const;\n if (!validRarities.includes(rarityConfig.value as any)) {\n throw new Error(\n '[compile component]: rarity: value must be one of: common, uncommon, rare, epic',\n );\n }\n rarityFinal.value = rarityConfig.value;\n } else {\n throw new Error(\n '[compile component]: rarity: value is required and must be a string',\n );\n }\n\n // Validate format version for rarity component (requires 1.21.30+)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(\n formatParts[1] + '.' + formatParts[2],\n );\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.21 ||\n (formatVersion === 1.21 && patchVersion < 30)\n ) {\n throw new Error(\n '[compile component]: rarity component requires format version 1.21.30 or higher',\n );\n }\n\n ApplyComponents['minecraft:rarity'] = rarityFinal;\n } else {\n throw new Error('[compile component]: rarity: must be an object');\n }\n }\n\n // Handle repairable component (both 'minecraft:repairable' and 'repairable' aliases)\n const repairableConfig =\n (components as any)['minecraft:repairable'] ||\n (components as any).repairable;\n if (repairableConfig !== undefined) {\n if (typeof repairableConfig === 'object') {\n const repairableFinal: any = {};\n\n // Handle on_repaired event\n if (repairableConfig.on_repaired !== undefined) {\n if (typeof repairableConfig.on_repaired === 'string') {\n const eventRegex = /^[a-zA-Z_]\\w*(?::[a-zA-Z_]\\w*)?$/;\n if (!eventRegex.test(repairableConfig.on_repaired)) {\n throw new Error(\n '[compile component]: repairable: on_repaired must be a valid event identifier pattern',\n );\n }\n repairableFinal.on_repaired = repairableConfig.on_repaired;\n } else {\n throw new Error(\n '[compile component]: repairable: on_repaired must be a string',\n );\n }\n }\n\n // Handle repair_items array\n if (repairableConfig.repair_items !== undefined) {\n if (Array.isArray(repairableConfig.repair_items)) {\n const repairItemsFinal: any[] = [];\n\n for (const repairItem of repairableConfig.repair_items) {\n if (typeof repairItem === 'string') {\n // Simple string format - just add as is\n repairItemsFinal.push(repairItem);\n } else if (\n typeof repairItem === 'object' &&\n repairItem !== null\n ) {\n // Complex object format with items and repair_amount\n const repairItemFinal: any = {};\n\n // Validate items array\n if (Array.isArray(repairItem.items)) {\n const itemsValid = repairItem.items.every(\n (item: string) => {\n if (typeof item !== 'string') return false;\n const itemRegex = /^[a-zA-Z_]\\w*(?::[a-zA-Z_]\\w*)?$/;\n return itemRegex.test(item);\n },\n );\n\n if (!itemsValid) {\n throw new Error(\n '[compile component]: repairable: repair_items items must be valid Minecraft item identifiers',\n );\n }\n\n repairItemFinal.items = [...repairItem.items];\n } else {\n throw new Error(\n '[compile component]: repairable: repair_items items must be an array of strings',\n );\n }\n\n // Validate repair_amount (optional)\n if (repairItem.repair_amount !== undefined) {\n if (\n typeof repairItem.repair_amount === 'string' ||\n typeof repairItem.repair_amount === 'number'\n ) {\n repairItemFinal.repair_amount = repairItem.repair_amount;\n } else {\n throw new Error(\n '[compile component]: repairable: repair_amount must be a string or number',\n );\n }\n }\n\n repairItemsFinal.push(repairItemFinal);\n } else {\n throw new Error(\n '[compile component]: repairable: each repair_items entry must be a string or object',\n );\n }\n }\n\n repairableFinal.repair_items = repairItemsFinal;\n } else {\n throw new Error(\n '[compile component]: repairable: repair_items must be an array',\n );\n }\n }\n\n ApplyComponents['minecraft:repairable'] = repairableFinal;\n } else {\n throw new Error('[compile component]: repairable: must be an object');\n }\n }\n\n // Handle seed component (both 'minecraft:seed' and 'seed' aliases)\n const seedConfig =\n (components as any)['minecraft:seed'] || (components as any).seed;\n if (seedConfig !== undefined) {\n if (typeof seedConfig === 'object') {\n const seedFinal: any = {};\n\n // Validate format version for seed component (requires 1.10.0+)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(\n formatParts[1] + '.' + formatParts[2],\n );\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.1 ||\n (formatVersion === 1.1 && patchVersion < 0)\n ) {\n throw new Error(\n '[compile component]: seed component requires format version 1.10.0 or higher',\n );\n }\n\n // Handle crop_result (required)\n if (seedConfig.crop_result !== undefined) {\n if (typeof seedConfig.crop_result === 'string') {\n const blockRegex = /^\\w+(?::\\w+)*$/;\n if (!blockRegex.test(seedConfig.crop_result)) {\n throw new Error(\n '[compile component]: seed: crop_result must be a valid block identifier',\n );\n }\n seedFinal.crop_result = seedConfig.crop_result;\n } else {\n throw new Error(\n '[compile component]: seed: crop_result is required and must be a string',\n );\n }\n } else {\n throw new Error(\n '[compile component]: seed: crop_result is required',\n );\n }\n\n // Handle plant_at array\n if (seedConfig.plant_at !== undefined) {\n if (Array.isArray(seedConfig.plant_at)) {\n const plantAtValid = seedConfig.plant_at.every(\n (block: string) => {\n if (typeof block !== 'string') return false;\n const blockRegex = /^\\w+(?::\\w+)*$/;\n return blockRegex.test(block);\n },\n );\n\n if (!plantAtValid) {\n throw new Error(\n '[compile component]: seed: plant_at entries must be valid block identifiers',\n );\n }\n\n seedFinal.plant_at = [...seedConfig.plant_at];\n } else {\n throw new Error(\n '[compile component]: seed: plant_at must be an array of strings',\n );\n }\n }\n\n // Handle deprecated properties (with warnings based on format version)\n if (seedConfig.plant_at_any_solid_surface !== undefined) {\n if (typeof seedConfig.plant_at_any_solid_surface === 'boolean') {\n // Check if format version supports this deprecated property\n if (formatVersion >= 1.19) {\n throw new Error(\n '[compile component]: seed: plant_at_any_solid_surface is deprecated and no longer works after format versions of at least 1.19.0',\n );\n }\n seedFinal.plant_at_any_solid_surface =\n seedConfig.plant_at_any_solid_surface;\n } else {\n throw new Error(\n '[compile component]: seed: plant_at_any_solid_surface must be a boolean',\n );\n }\n }\n\n if (seedConfig.plant_at_face !== undefined) {\n if (typeof seedConfig.plant_at_face === 'string') {\n const validFaces = ['UP', 'DOWN'] as const;\n if (!validFaces.includes(seedConfig.plant_at_face as any)) {\n throw new Error(\n \"[compile component]: seed: plant_at_face must be either 'UP' or 'DOWN'\",\n );\n }\n // Check if format version supports this deprecated property\n if (formatVersion >= 1.19) {\n throw new Error(\n '[compile component]: seed: plant_at_face is deprecated and no longer works after format versions of at least 1.19.0',\n );\n }\n seedFinal.plant_at_face = seedConfig.plant_at_face;\n } else {\n throw new Error(\n '[compile component]: seed: plant_at_face must be a string',\n );\n }\n }\n\n ApplyComponents['minecraft:seed'] = seedFinal;\n } else {\n throw new Error('[compile component]: seed: must be an object');\n }\n }\n\n // Handle stacked_by_data component (both 'minecraft:stacked_by_data' and 'stacked_by_data' aliases)\n const stackedByDataConfig =\n (components as any)['minecraft:stacked_by_data'] ||\n (components as any).stacked_by_data;\n if (stackedByDataConfig !== undefined) {\n if (typeof stackedByDataConfig === 'object') {\n const stackedByDataFinal: any = {};\n\n // Handle value (optional, defaults to true)\n if (stackedByDataConfig.value === undefined) {\n stackedByDataFinal.value = true;\n } else if (typeof stackedByDataConfig.value === 'boolean') {\n stackedByDataFinal.value = stackedByDataConfig.value;\n } else {\n throw new Error(\n '[compile component]: stacked_by_data: value must be a boolean if provided',\n );\n }\n\n ApplyComponents['minecraft:stacked_by_data'] = stackedByDataFinal;\n } else {\n throw new Error(\n '[compile component]: stacked_by_data: must be an object',\n );\n }\n }\n\n // Handle should_despawn component (both 'minecraft:should_despawn' and 'should_despawn' aliases)\n const shouldDespawnConfig =\n (components as any)['minecraft:should_despawn'] ||\n (components as any).should_despawn;\n if (shouldDespawnConfig !== undefined) {\n if (typeof shouldDespawnConfig === 'object') {\n const shouldDespawnFinal: any = {};\n\n // Handle value (optional, defaults to true)\n if (shouldDespawnConfig.value === undefined) {\n shouldDespawnFinal.value = true;\n } else if (typeof shouldDespawnConfig.value === 'boolean') {\n shouldDespawnFinal.value = shouldDespawnConfig.value;\n } else {\n throw new Error(\n '[compile component]: should_despawn: value must be a boolean if provided',\n );\n }\n\n ApplyComponents['minecraft:should_despawn'] = shouldDespawnFinal;\n } else {\n throw new Error(\n '[compile component]: should_despawn: must be an object',\n );\n }\n }\n\n // Handle shooter component (both 'minecraft:shooter' and 'shooter' aliases)\n const shooterConfig =\n (components as any)['minecraft:shooter'] || (components as any).shooter;\n if (shooterConfig !== undefined) {\n if (typeof shooterConfig === 'object') {\n const shooterFinal: any = {};\n\n // Validate format version for shooter component\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(\n formatParts[1] + '.' + formatParts[2],\n );\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.16 ||\n (formatVersion === 1.16 && patchVersion < 100)\n ) {\n throw new Error(\n '[compile component]: shooter component requires format version 1.16.100 or higher',\n );\n }\n\n // Handle ammunition (required)\n if (shooterConfig.ammunition === undefined) {\n throw new Error(\n '[compile component]: shooter: ammunition is required',\n );\n }\n\n if (Array.isArray(shooterConfig.ammunition)) {\n const ammunitionFinal: any[] = [];\n\n for (const ammunitionItem of shooterConfig.ammunition) {\n if (typeof ammunitionItem === 'string') {\n // Simple string format - just add as is\n const itemRegex = /^[a-zA-Z_]\\w*(?::[a-zA-Z_]\\w*)?$/;\n if (!itemRegex.test(ammunitionItem)) {\n throw new Error(\n '[compile component]: shooter: ammunition entries must be valid item identifiers when using string format',\n );\n }\n ammunitionFinal.push(ammunitionItem);\n } else if (\n typeof ammunitionItem === 'object' &&\n ammunitionItem !== null\n ) {\n // Complex object format with detailed properties\n const ammunitionObject: any = {};\n\n // Validate item (required)\n if (typeof ammunitionItem.item === 'string') {\n const itemRegex = /^[a-zA-Z_]\\w*(?::[a-zA-Z_]\\w*)?$/;\n if (!itemRegex.test(ammunitionItem.item)) {\n throw new Error(\n '[compile component]: shooter: ammunition item property must be a valid item identifier',\n );\n }\n ammunitionObject.item = ammunitionItem.item;\n } else {\n throw new Error(\n '[compile component]: shooter: ammunition item property is required and must be a string',\n );\n }\n\n // Handle launch_power_scale (optional)\n if (ammunitionItem.launch_power_scale !== undefined) {\n if (\n typeof ammunitionItem.launch_power_scale === 'number' &&\n ammunitionItem.launch_power_scale > 0\n ) {\n ammunitionObject.launch_power_scale =\n ammunitionItem.launch_power_scale;\n } else {\n throw new Error(\n '[compile component]: shooter: ammunition launch_power_scale must be a positive number',\n );\n }\n }\n\n // Handle max_draw_duration (optional)\n if (ammunitionItem.max_draw_duration !== undefined) {\n if (\n typeof ammunitionItem.max_draw_duration === 'number' &&\n ammunitionItem.max_draw_duration >= 0\n ) {\n ammunitionObject.max_draw_duration =\n ammunitionItem.max_draw_duration;\n } else {\n throw new Error(\n '[compile component]: shooter: ammunition max_draw_duration must be a non-negative number',\n );\n }\n }\n\n // Handle charge_on_draw (optional)\n if (ammunitionItem.charge_on_draw !== undefined) {\n if (typeof ammunitionItem.charge_on_draw === 'boolean') {\n ammunitionObject.charge_on_draw =\n ammunitionItem.charge_on_draw;\n } else {\n throw new Error(\n '[compile component]: shooter: ammunition charge_on_draw must be a boolean',\n );\n }\n }\n\n ammunitionFinal.push(ammunitionObject);\n } else {\n throw new Error(\n '[compile component]: shooter: ammunition entries must be strings or objects',\n );\n }\n }\n\n shooterFinal.ammunition = ammunitionFinal;\n } else {\n throw new Error(\n '[compile component]: shooter: ammunition must be an array',\n );\n }\n\n // Handle charge_on_draw (optional)\n if (shooterConfig.charge_on_draw !== undefined) {\n if (typeof shooterConfig.charge_on_draw === 'boolean') {\n shooterFinal.charge_on_draw = shooterConfig.charge_on_draw;\n } else {\n throw new Error(\n '[compile component]: shooter: charge_on_draw must be a boolean',\n );\n }\n }\n\n // Handle max_draw_duration (optional)\n if (shooterConfig.max_draw_duration !== undefined) {\n if (\n typeof shooterConfig.max_draw_duration === 'number' &&\n shooterConfig.max_draw_duration >= 0\n ) {\n shooterFinal.max_draw_duration = shooterConfig.max_draw_duration;\n } else {\n throw new Error(\n '[compile component]: shooter: max_draw_duration must be a non-negative number',\n );\n }\n }\n\n // Handle auto_charge (optional)\n if (shooterConfig.auto_charge !== undefined) {\n if (typeof shooterConfig.auto_charge === 'boolean') {\n shooterFinal.auto_charge = shooterConfig.auto_charge;\n } else {\n throw new Error(\n '[compile component]: shooter: auto_charge must be a boolean',\n );\n }\n }\n\n // Handle launch_power (optional)\n if (shooterConfig.launch_power !== undefined) {\n if (\n typeof shooterConfig.launch_power === 'number' &&\n shooterConfig.launch_power >= 0\n ) {\n shooterFinal.launch_power = shooterConfig.launch_power;\n } else {\n throw new Error(\n '[compile component]: shooter: launch_power must be a non-negative number',\n );\n }\n }\n\n // Handle scale_power_by_draw_duration (optional)\n if (shooterConfig.scale_power_by_draw_duration !== undefined) {\n if (\n typeof shooterConfig.scale_power_by_draw_duration === 'boolean'\n ) {\n shooterFinal.scale_power_by_draw_duration =\n shooterConfig.scale_power_by_draw_duration;\n } else {\n throw new Error(\n '[compile component]: shooter: scale_power_by_draw_duration must be a boolean',\n );\n }\n }\n\n ApplyComponents['minecraft:shooter'] = shooterFinal;\n } else {\n throw new Error('[compile component]: shooter: must be an object');\n }\n }\n\n // Handle storage_weight_modifier component\n const storageWeightModifierConfig =\n (components as any)['minecraft:storage_weight_modifier'] ||\n (components as any).storage_weight_modifier;\n if (storageWeightModifierConfig !== undefined) {\n if (typeof storageWeightModifierConfig === 'object') {\n const storageWeightModifierFinal: any = {};\n\n // Validate format version (requires 1.21.40+)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(\n formatParts[1] + '.' + formatParts[2],\n );\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.21 ||\n (formatVersion === 1.21 && patchVersion < 40)\n ) {\n throw new Error(\n '[compile component]: storage_weight_modifier component requires format version 1.21.40 or higher',\n );\n }\n\n // Handle weight_in_storage_item (required)\n if (\n storageWeightModifierConfig.weight_in_storage_item === undefined\n ) {\n throw new Error(\n '[compile component]: storage_weight_modifier: weight_in_storage_item is required',\n );\n }\n\n if (\n typeof storageWeightModifierConfig.weight_in_storage_item !==\n 'number'\n ) {\n throw new Error(\n '[compile component]: storage_weight_modifier: weight_in_storage_item must be a number',\n );\n }\n\n if (\n storageWeightModifierConfig.weight_in_storage_item < 0 ||\n storageWeightModifierConfig.weight_in_storage_item > 64\n ) {\n throw new Error(\n '[compile component]: storage_weight_modifier: weight_in_storage_item must be between 0 and 64',\n );\n }\n\n storageWeightModifierFinal.weight_in_storage_item =\n storageWeightModifierConfig.weight_in_storage_item;\n\n ApplyComponents['minecraft:storage_weight_modifier'] =\n storageWeightModifierFinal;\n } else {\n throw new Error(\n '[compile component]: storage_weight_modifier: must be an object',\n );\n }\n }\n\n // Handle storage_weight_limit component\n const storageWeightLimitConfig =\n (components as any)['minecraft:storage_weight_limit'] ||\n (components as any).storage_weight_limit;\n if (storageWeightLimitConfig !== undefined) {\n if (typeof storageWeightLimitConfig === 'object') {\n const storageWeightLimitFinal: any = {};\n\n // Validate format version (requires 1.21.40+)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(\n formatParts[1] + '.' + formatParts[2],\n );\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.21 ||\n (formatVersion === 1.21 && patchVersion < 40)\n ) {\n throw new Error(\n '[compile component]: storage_weight_limit component requires format version 1.21.40 or higher',\n );\n }\n\n // Handle max_weight_limit (required)\n if (storageWeightLimitConfig.max_weight_limit === undefined) {\n throw new Error(\n '[compile component]: storage_weight_limit: max_weight_limit is required',\n );\n }\n\n if (typeof storageWeightLimitConfig.max_weight_limit !== 'number') {\n throw new Error(\n '[compile component]: storage_weight_limit: max_weight_limit must be a number',\n );\n }\n\n if (\n storageWeightLimitConfig.max_weight_limit <= 0 ||\n storageWeightLimitConfig.max_weight_limit > 64\n ) {\n throw new Error(\n '[compile component]: storage_weight_limit: max_weight_limit must be between 0 and 64',\n );\n }\n\n storageWeightLimitFinal.max_weight_limit =\n storageWeightLimitConfig.max_weight_limit;\n\n ApplyComponents['minecraft:storage_weight_limit'] =\n storageWeightLimitFinal;\n } else {\n throw new Error(\n '[compile component]: storage_weight_limit: must be an object',\n );\n }\n }\n\n // Handle storage_item component\n const storageItemConfig =\n (components as any)['minecraft:storage_item'] ||\n (components as any).storage_item;\n if (storageItemConfig !== undefined) {\n if (typeof storageItemConfig === 'object') {\n const storageItemFinal: any = {};\n\n // Validate format version (requires 1.21.40+)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(\n formatParts[1] + '.' + formatParts[2],\n );\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.21 ||\n (formatVersion === 1.21 && patchVersion < 40)\n ) {\n throw new Error(\n '[compile component]: storage_item component requires format version 1.21.40 or higher',\n );\n }\n\n // Handle allow_nested_storage_items (optional, defaults to true)\n if (storageItemConfig.allow_nested_storage_items === undefined) {\n storageItemFinal.allow_nested_storage_items = true;\n } else if (\n typeof storageItemConfig.allow_nested_storage_items === 'boolean'\n ) {\n storageItemFinal.allow_nested_storage_items =\n storageItemConfig.allow_nested_storage_items;\n } else {\n throw new Error(\n '[compile component]: storage_item: allow_nested_storage_items must be a boolean',\n );\n }\n\n // Handle allowed_items (optional, defaults to empty array)\n if (storageItemConfig.allowed_items !== undefined) {\n if (Array.isArray(storageItemConfig.allowed_items)) {\n const allowedItemsValid = storageItemConfig.allowed_items.every(\n (item: string) => {\n if (typeof item !== 'string') return false;\n const itemRegex = /^[a-zA-Z_]\\w*(?::[a-zA-Z_]\\w*)?$/;\n return itemRegex.test(item);\n },\n );\n\n if (!allowedItemsValid) {\n throw new Error(\n '[compile component]: storage_item: allowed_items entries must be valid Minecraft item identifiers',\n );\n }\n\n storageItemFinal.allowed_items = [\n ...storageItemConfig.allowed_items,\n ];\n } else {\n throw new Error(\n '[compile component]: storage_item: allowed_items must be an array of strings',\n );\n }\n }\n\n // Handle banned_items (optional, defaults to empty array)\n if (storageItemConfig.banned_items !== undefined) {\n if (Array.isArray(storageItemConfig.banned_items)) {\n const bannedItemsValid = storageItemConfig.banned_items.every(\n (item: string) => {\n if (typeof item !== 'string') return false;\n const itemRegex = /^[a-zA-Z_]\\w*(?::[a-zA-Z_]\\w*)?$/;\n return itemRegex.test(item);\n },\n );\n\n if (!bannedItemsValid) {\n throw new Error(\n '[compile component]: storage_item: banned_items entries must be valid Minecraft item identifiers',\n );\n }\n\n storageItemFinal.banned_items = [\n ...storageItemConfig.banned_items,\n ];\n } else {\n throw new Error(\n '[compile component]: storage_item: banned_items must be an array of strings',\n );\n }\n }\n\n // Handle max_slots (optional, defaults to 64)\n if (storageItemConfig.max_slots === undefined) {\n storageItemFinal.max_slots = 64;\n } else if (typeof storageItemConfig.max_slots === 'number') {\n if (\n storageItemConfig.max_slots > 0 &&\n storageItemConfig.max_slots <= 64\n ) {\n storageItemFinal.max_slots = storageItemConfig.max_slots;\n } else {\n throw new Error(\n '[compile component]: storage_item: max_slots must be between 1 and 64',\n );\n }\n } else {\n throw new Error(\n '[compile component]: storage_item: max_slots must be a number',\n );\n }\n\n // Handle max_weight_limit (optional, defaults to 64)\n if (storageItemConfig.max_weight_limit === undefined) {\n storageItemFinal.max_weight_limit = 64;\n } else if (typeof storageItemConfig.max_weight_limit === 'number') {\n if (\n storageItemConfig.max_weight_limit > 0 &&\n storageItemConfig.max_weight_limit <= 64\n ) {\n storageItemFinal.max_weight_limit =\n storageItemConfig.max_weight_limit;\n } else {\n throw new Error(\n '[compile component]: storage_item: max_weight_limit must be between 1 and 64',\n );\n }\n } else {\n throw new Error(\n '[compile component]: storage_item: max_weight_limit must be a number',\n );\n }\n\n // Handle weight_in_storage_item (optional, defaults to 4)\n if (storageItemConfig.weight_in_storage_item === undefined) {\n storageItemFinal.weight_in_storage_item = 4;\n } else if (\n typeof storageItemConfig.weight_in_storage_item === 'number'\n ) {\n if (\n storageItemConfig.weight_in_storage_item >= 0 &&\n storageItemConfig.weight_in_storage_item <= 64\n ) {\n storageItemFinal.weight_in_storage_item =\n storageItemConfig.weight_in_storage_item;\n } else {\n throw new Error(\n '[compile component]: storage_item: weight_in_storage_item must be between 0 and 64',\n );\n }\n } else {\n throw new Error(\n '[compile component]: storage_item: weight_in_storage_item must be a number',\n );\n }\n\n ApplyComponents['minecraft:storage_item'] = storageItemFinal;\n } else {\n throw new Error(\n '[compile component]: storage_item: must be an object',\n );\n }\n }\n\n // Handle minecraft:throwable component\n const throwableConfig =\n (components as any)['minecraft:throwable'] ||\n (components as any).throwable;\n if (throwableConfig !== undefined) {\n if (typeof throwableConfig === 'object') {\n const throwableFinal: any = {};\n\n // Handle do_swing_animation (optional, defaults to false)\n if (throwableConfig.do_swing_animation !== undefined) {\n if (typeof throwableConfig.do_swing_animation === 'boolean') {\n throwableFinal.do_swing_animation =\n throwableConfig.do_swing_animation;\n } else {\n throw new Error(\n '[compile component]: throwable: do_swing_animation must be a boolean',\n );\n }\n }\n\n // Handle launch_power_scale (optional, defaults to 1)\n if (throwableConfig.launch_power_scale !== undefined) {\n if (\n typeof throwableConfig.launch_power_scale === 'number' &&\n throwableConfig.launch_power_scale >= 0\n ) {\n throwableFinal.launch_power_scale =\n throwableConfig.launch_power_scale;\n } else {\n throw new Error(\n '[compile component]: throwable: launch_power_scale must be a non-negative number',\n );\n }\n }\n\n // Handle max_draw_duration (optional, defaults to 0)\n if (throwableConfig.max_draw_duration !== undefined) {\n if (\n typeof throwableConfig.max_draw_duration === 'number' &&\n throwableConfig.max_draw_duration >= 0\n ) {\n throwableFinal.max_draw_duration =\n throwableConfig.max_draw_duration;\n } else {\n throw new Error(\n '[compile component]: throwable: max_draw_duration must be a non-negative number',\n );\n }\n }\n\n // Handle max_launch_power (optional, defaults to 1)\n if (throwableConfig.max_launch_power !== undefined) {\n if (\n typeof throwableConfig.max_launch_power === 'number' &&\n throwableConfig.max_launch_power >= 0\n ) {\n throwableFinal.max_launch_power =\n throwableConfig.max_launch_power;\n } else {\n throw new Error(\n '[compile component]: throwable: max_launch_power must be a non-negative number',\n );\n }\n }\n\n // Handle min_draw_duration (optional, defaults to 0)\n if (throwableConfig.min_draw_duration !== undefined) {\n if (\n typeof throwableConfig.min_draw_duration === 'number' &&\n throwableConfig.min_draw_duration >= 0\n ) {\n throwableFinal.min_draw_duration =\n throwableConfig.min_draw_duration;\n } else {\n throw new Error(\n '[compile component]: throwable: min_draw_duration must be a non-negative number',\n );\n }\n }\n\n // Handle scale_power_by_draw_duration (optional, defaults to false)\n if (throwableConfig.scale_power_by_draw_duration !== undefined) {\n if (\n typeof throwableConfig.scale_power_by_draw_duration === 'boolean'\n ) {\n throwableFinal.scale_power_by_draw_duration =\n throwableConfig.scale_power_by_draw_duration;\n } else {\n throw new Error(\n '[compile component]: throwable: scale_power_by_draw_duration must be a boolean',\n );\n }\n }\n\n ApplyComponents['minecraft:throwable'] = throwableFinal;\n } else {\n throw new Error('[compile component]: throwable: must be an object');\n }\n }\n\n // Handle minecraft:tags component\n const tagsConfig =\n (components as any)['minecraft:tags'] || (components as any).tags;\n if (tagsConfig !== undefined) {\n if (typeof tagsConfig === 'object') {\n const tagsFinal: any = {};\n\n // Handle tags array (required)\n if (tagsConfig.tags !== undefined) {\n if (Array.isArray(tagsConfig.tags)) {\n const tagsValid = tagsConfig.tags.every((tag: string) => {\n if (typeof tag !== 'string') return false;\n const tagRegex = /^[a-zA-Z_][\\w:]*$/;\n return tagRegex.test(tag);\n });\n\n if (tagsValid) {\n tagsFinal.tags = tagsConfig.tags;\n } else {\n throw new Error(\n '[compile component]: tags: all tags must be valid strings',\n );\n }\n } else {\n throw new Error(\n '[compile component]: tags: tags must be an array',\n );\n }\n } else {\n throw new Error(\n '[compile component]: tags: tags array is required',\n );\n }\n\n ApplyComponents['minecraft:tags'] = tagsFinal;\n } else {\n throw new Error('[compile component]: tags: must be an object');\n }\n }\n\n // Handle minecraft:swing_duration component\n const swingDurationConfig =\n (components as any)['minecraft:swing_duration'] ||\n (components as any).swing_duration;\n if (swingDurationConfig !== undefined) {\n if (typeof swingDurationConfig === 'object') {\n const swingDurationFinal: any = {};\n\n // Handle value (required)\n if (swingDurationConfig.value !== undefined) {\n if (\n typeof swingDurationConfig.value === 'number' &&\n swingDurationConfig.value >= 0\n ) {\n swingDurationFinal.value = swingDurationConfig.value;\n } else {\n throw new Error(\n '[compile component]: swing_duration: value must be a non-negative number',\n );\n }\n } else {\n throw new Error(\n '[compile component]: swing_duration: value is required',\n );\n }\n\n ApplyComponents['minecraft:swing_duration'] = swingDurationFinal;\n } else {\n throw new Error(\n '[compile component]: swing_duration: must be an object',\n );\n }\n }\n\n // Handle minecraft:use_animation component\n const useAnimationConfig =\n (components as any)['minecraft:use_animation'] ||\n (components as any).use_animation;\n if (useAnimationConfig !== undefined) {\n // Handle both string format (simplified) and object format\n if (typeof useAnimationConfig === 'string') {\n // Simplified string format: \"eat\", \"drink\", etc.\n const animationValue = useAnimationConfig.trim();\n if (animationValue.length > 0) {\n ApplyComponents['minecraft:use_animation'] = animationValue;\n } else {\n throw new Error(\n '[compile component]: use_animation: animation string cannot be empty',\n );\n }\n } else if (typeof useAnimationConfig === 'object') {\n // Object format: { \"value\": \"eat\" }\n const useAnimationFinal: any = {};\n\n // Handle value (required)\n if (useAnimationConfig.value !== undefined) {\n if (\n typeof useAnimationConfig.value === 'string' &&\n useAnimationConfig.value.trim().length > 0\n ) {\n useAnimationFinal.value = useAnimationConfig.value.trim();\n } else {\n throw new Error(\n '[compile component]: use_animation: value must be a non-empty string',\n );\n }\n } else {\n throw new Error(\n '[compile component]: use_animation: value is required in object format',\n );\n }\n\n ApplyComponents['minecraft:use_animation'] = useAnimationFinal;\n } else {\n throw new Error(\n '[compile component]: use_animation: must be a string or object',\n );\n }\n }\n\n // Handle minecraft:wearable component\n const wearableConfig =\n (components as any)['minecraft:wearable'] ||\n (components as any).wearable;\n if (wearableConfig !== undefined) {\n if (typeof wearableConfig === 'object') {\n const wearableFinal: any = {};\n\n // Handle slot (required)\n if (wearableConfig.slot !== undefined) {\n const validSlots = [\n 'slot.armor.head',\n 'slot.armor.chest',\n 'slot.armor.legs',\n 'slot.armor.feet',\n 'slot.weapon.mainhand',\n 'slot.weapon.offhand',\n 'slot.hotbar',\n 'slot.inventory',\n 'slot.enderchest',\n 'slot.saddle',\n 'slot.armor',\n 'slot.chest',\n ];\n if (validSlots.includes(wearableConfig.slot)) {\n wearableFinal.slot = wearableConfig.slot;\n } else {\n throw new Error(\n `[compile component]: wearable: slot \"${wearableConfig.slot}\" is not a valid slot`,\n );\n }\n } else {\n throw new Error('[compile component]: wearable: slot is required');\n }\n\n // Handle protection (optional, non-negative integer)\n if (wearableConfig.protection !== undefined) {\n if (\n typeof wearableConfig.protection === 'number' &&\n Number.isInteger(wearableConfig.protection) &&\n wearableConfig.protection >= 0\n ) {\n wearableFinal.protection = wearableConfig.protection;\n } else {\n throw new Error(\n '[compile component]: wearable: protection must be a non-negative integer',\n );\n }\n }\n\n // Handle hides_player_location (optional, boolean)\n if (wearableConfig.hides_player_location !== undefined) {\n if (typeof wearableConfig.hides_player_location === 'boolean') {\n wearableFinal.hides_player_location =\n wearableConfig.hides_player_location;\n } else {\n throw new Error(\n '[compile component]: wearable: hides_player_location must be a boolean',\n );\n }\n }\n\n // Handle dispensable (optional, boolean)\n if (wearableConfig.dispensable !== undefined) {\n if (typeof wearableConfig.dispensable === 'boolean') {\n wearableFinal.dispensable = wearableConfig.dispensable;\n } else {\n throw new Error(\n '[compile component]: wearable: dispensable must be a boolean',\n );\n }\n }\n\n ApplyComponents['minecraft:wearable'] = wearableFinal;\n } else {\n throw new Error('[compile component]: wearable: must be an object');\n }\n }\n\n // Handle minecraft:use_modifiers component\n const useModifiersConfig =\n (components as any)['minecraft:use_modifiers'] ||\n (components as any).use_modifiers;\n if (useModifiersConfig !== undefined) {\n if (typeof useModifiersConfig === 'object') {\n const useModifiersFinal: any = {};\n\n // Handle use_duration (required, non-negative number)\n if (useModifiersConfig.use_duration !== undefined) {\n if (\n typeof useModifiersConfig.use_duration === 'number' &&\n useModifiersConfig.use_duration >= 0\n ) {\n useModifiersFinal.use_duration = useModifiersConfig.use_duration;\n } else {\n throw new Error(\n '[compile component]: use_modifiers: use_duration must be a non-negative number',\n );\n }\n } else {\n throw new Error(\n '[compile component]: use_modifiers: use_duration is required',\n );\n }\n\n // Handle movement_modifier (optional, number ≤ 1)\n if (useModifiersConfig.movement_modifier !== undefined) {\n if (\n typeof useModifiersConfig.movement_modifier === 'number' &&\n useModifiersConfig.movement_modifier <= 1\n ) {\n useModifiersFinal.movement_modifier =\n useModifiersConfig.movement_modifier;\n } else {\n throw new Error(\n '[compile component]: use_modifiers: movement_modifier must be a number ≤ 1',\n );\n }\n }\n\n // Handle has_vibration (optional, boolean)\n if (useModifiersConfig.has_vibration !== undefined) {\n if (typeof useModifiersConfig.has_vibration === 'boolean') {\n useModifiersFinal.has_vibration =\n useModifiersConfig.has_vibration;\n } else {\n throw new Error(\n '[compile component]: use_modifiers: has_vibration must be a boolean',\n );\n }\n }\n\n ApplyComponents['minecraft:use_modifiers'] = useModifiersFinal;\n } else {\n throw new Error(\n '[compile component]: use_modifiers: must be an object',\n );\n }\n }\n\n // Handle minecraft:swing_sounds component\n const swingSoundsConfig =\n (components as any)['minecraft:swing_sounds'] ||\n (components as any).swing_sounds;\n if (swingSoundsConfig !== undefined) {\n if (typeof swingSoundsConfig === 'object') {\n const swingSoundsFinal: any = {};\n\n // Handle sound (required)\n if (swingSoundsConfig.sound !== undefined) {\n if (\n typeof swingSoundsConfig.sound === 'string' &&\n swingSoundsConfig.sound.trim().length > 0\n ) {\n swingSoundsFinal.sound = swingSoundsConfig.sound.trim();\n } else {\n throw new Error(\n '[compile component]: swing_sounds: sound must be a non-empty string',\n );\n }\n } else {\n throw new Error(\n '[compile component]: swing_sounds: sound is required',\n );\n }\n\n ApplyComponents['minecraft:swing_sounds'] = swingSoundsFinal;\n } else {\n throw new Error(\n '[compile component]: swing_sounds: must be an object',\n );\n }\n }\n }\n return result;\n }\n /**\n * set name\n * @throws {Error}&\n * @param {string} newValue\n * @returns {void}\n */\n public setName(newValue: string): void {\n if (typeof newValue == 'string') {\n this.#opt.name = newValue;\n } else {\n throw new Error('[set error]: name type error');\n }\n }\n public setIcon(newValue: string): void;\n public setIcon(newValue: PNGImageComponent): void;\n public setIcon(newValue: PNGImageComponent | string): void {\n if (typeof newValue == 'string') {\n this.#opt.components.icon = newValue;\n return;\n }\n if (newValue.classId == 'mcx_png_2340192') {\n const filePath = newValue.filePath;\n const textureKey: string = this.#opt.id.includes(':')\n ? (this.#opt.id.split(':')[1] as string)\n : this.#opt.id;\n if (!this.#edit) this.#edit = [];\n let idx: number = -1;\n const idKey = '__icon_key__';\n const found = this.#edit.find((v: any, i: number) => {\n if (\n v.type == 'batch' &&\n v.options[0] &&\n v.options[1] &&\n v.options[0].id &&\n v.options[0].id == idKey &&\n v.options[1].id &&\n v.options[1].id == `_w_${idKey}`\n ) {\n idx = i;\n return true;\n }\n });\n if (found && idx !== -1) {\n this.#edit.splice(idx, 1);\n }\n this.#edit.push({\n type: 'batch',\n options: [\n {\n type: 'copy_assets',\n id: idKey,\n source: {\n base: 'root',\n file: filePath,\n },\n output: {\n base: 'resources',\n file: `textures/items/${textureKey}.png`,\n },\n },\n {\n type: 'edit',\n id: `_w_${idKey}`,\n source: {\n type: 'append',\n bind: 'item_texture',\n },\n expression: t.createFileEdit({\n define: {\n key: {\n from: 'var',\n data: textureKey,\n },\n texture: {\n from: 'var',\n data: `items/${textureKey}.png`,\n },\n } as const,\n run: async define => {\n return [\n [define['key'], `textures/${define['texture']}`],\n ] satisfies [string, string][];\n },\n }),\n },\n ],\n });\n this.#opt.components.icon = textureKey;\n return;\n }\n throw new Error(\n \"[mcx component json]: unknown icon value: err: can't handle value\",\n );\n }\n /**\n * get name\n * @returns {string} name\n */\n public getName(): string {\n return this.#opt.name;\n }\n /**\n * set identifier\n * @param {string} newValue\n */\n public setId(newValue: string): void {\n if (typeof newValue == 'string') {\n this.#opt.id = newValue;\n } else {\n throw new Error('[set error]: id: type error');\n }\n }\n /**\n * get item component identifier\n */\n public getId() {\n return this.#opt.id;\n }\n /**\n * setAllowOffHand\n * @param vl {boolean} allow off hand\n */\n public setAllowOffHand(vl: boolean) {\n if (typeof vl == 'boolean') {\n this.#opt.components.offHand = vl;\n } else {\n throw new TypeError('[set error]: allowOffHand: type error');\n }\n }\n\n /**\n * setBlockPlacer\n * @param config {object} Block placer configuration\n */\n public setBlockPlacer(config: {\n aligned_placement?: boolean;\n block: string;\n replace_block_item?: boolean;\n use_on?: Array<\n | string\n | {\n name: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n }\n >;\n }) {\n if (!this.#opt.components.block_placer) {\n this.#opt.components.block_placer = { block: '' };\n }\n\n if (typeof config.aligned_placement === 'boolean') {\n this.#opt.components.block_placer.aligned_placement =\n config.aligned_placement;\n }\n\n if (typeof config.block === 'string') {\n this.#opt.components.block_placer.block = config.block;\n } else {\n throw new Error('[set error]: block_placer: block must be a string');\n }\n\n if (typeof config.replace_block_item === 'boolean') {\n this.#opt.components.block_placer.replace_block_item =\n config.replace_block_item;\n }\n\n if (Array.isArray(config.use_on)) {\n this.#opt.components.block_placer.use_on = [...config.use_on];\n }\n }\n\n /**\n * setCooldown\n * @param config {object} Cooldown configuration\n */\n public setCooldown(config: {\n category: string;\n duration: number;\n type?: 'use' | 'attack';\n }) {\n if (!this.#opt.components.cooldown) {\n this.#opt.components.cooldown = { category: '', duration: 0 };\n }\n\n if (typeof config.category === 'string') {\n this.#opt.components.cooldown.category = config.category;\n } else {\n throw new Error('[set error]: cooldown: category must be a string');\n }\n\n if (typeof config.duration === 'number') {\n this.#opt.components.cooldown.duration = config.duration;\n } else {\n throw new Error('[set error]: cooldown: duration must be a number');\n }\n\n if (config.type && (config.type === 'use' || config.type === 'attack')) {\n this.#opt.components.cooldown.type = config.type;\n }\n }\n\n /**\n * setCompostable\n * @param config {object} Compostable configuration\n */\n public setCompostable(config: { composting_chance: number }) {\n if (!this.#opt.components.compostable) {\n this.#opt.components.compostable = { composting_chance: 0 };\n }\n\n if (typeof config.composting_chance === 'number') {\n if (config.composting_chance < 1 || config.composting_chance > 100) {\n throw new Error(\n '[set error]: compostable: composting_chance must be between 1 and 100',\n );\n }\n this.#opt.components.compostable.composting_chance =\n config.composting_chance;\n } else {\n throw new Error(\n '[set error]: compostable: composting_chance must be a number',\n );\n }\n }\n\n /**\n * setBundleInteraction\n * @param config {object} Bundle interaction configuration\n */\n public setBundleInteraction(config: { num_viewable_slots?: number }) {\n if (!this.#opt.components.bundle_interaction) {\n this.#opt.components.bundle_interaction = {};\n }\n\n if (typeof config.num_viewable_slots === 'number') {\n if (config.num_viewable_slots < 1 || config.num_viewable_slots > 64) {\n throw new Error(\n '[set error]: bundle_interaction: num_viewable_slots must be between 1 and 64',\n );\n }\n this.#opt.components.bundle_interaction.num_viewable_slots =\n config.num_viewable_slots;\n }\n }\n\n /**\n * setGlint\n * @param value {boolean} Whether the item has glint effect\n */\n public setGlint(value: boolean): void {\n if (typeof value === 'boolean') {\n this.#opt.components.glint = value;\n } else {\n throw new TypeError('[set error]: glint: type error');\n }\n }\n\n /**\n * setHandEquipped\n * @param value {boolean} Whether the item is hand equipped\n */\n public setHandEquipped(value: boolean): void {\n if (typeof value === 'boolean') {\n this.#opt.components.hand_equipped = value;\n } else {\n throw new TypeError('[set error]: hand_equipped: type error');\n }\n }\n\n /**\n * setDigger\n * @param config {object} Digger configuration\n */\n public setDigger(config: {\n use_efficiency?: boolean;\n destroy_speeds?: Array<{\n block:\n | string\n | {\n name?: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n };\n speed: number;\n }>;\n }) {\n if (!this.#opt.components.digger) {\n this.#opt.components.digger = {};\n }\n\n if (typeof config.use_efficiency === 'boolean') {\n this.#opt.components.digger.use_efficiency = config.use_efficiency;\n }\n\n if (Array.isArray(config.destroy_speeds)) {\n this.#opt.components.digger.destroy_speeds = [];\n for (const speedEntry of config.destroy_speeds) {\n const entry: any = {};\n\n if (speedEntry.block) {\n entry.block = speedEntry.block;\n } else {\n throw new Error(\n '[set error]: digger: destroy_speeds entry must have a block',\n );\n }\n\n if (typeof speedEntry.speed === 'number') {\n entry.speed = speedEntry.speed;\n } else {\n throw new Error(\n '[set error]: digger: destroy_speeds entry speed must be a number',\n );\n }\n\n this.#opt.components.digger.destroy_speeds.push(entry);\n }\n }\n }\n\n /**\n * setDamageAbsorption\n * @param config {object} Damage absorption configuration\n */\n public setDamageAbsorption(config: { absorbable_causes: string[] }) {\n if (!this.#opt.components.damage_absorption) {\n this.#opt.components.damage_absorption = { absorbable_causes: [] };\n }\n\n if (Array.isArray(config.absorbable_causes)) {\n if (config.absorbable_causes.length === 0) {\n throw new Error(\n '[set error]: damage_absorption: absorbable_causes must have at least 1 item',\n );\n }\n this.#opt.components.damage_absorption.absorbable_causes = [\n ...config.absorbable_causes,\n ];\n } else {\n throw new Error(\n '[set error]: damage_absorption: absorbable_causes must be an array',\n );\n }\n }\n\n /**\n * setDurability\n * @param config {object} Durability configuration\n */\n public setDurability(config: {\n max_durability: number;\n damage_chance?: {\n min: number;\n max: number;\n };\n }) {\n if (!this.#opt.components.durability) {\n this.#opt.components.durability = { max_durability: 0 };\n }\n\n if (typeof config.max_durability === 'number') {\n if (config.max_durability < 0) {\n throw new Error(\n '[set error]: durability: max_durability must be at least 0',\n );\n }\n this.#opt.components.durability.max_durability = config.max_durability;\n } else {\n throw new Error(\n '[set error]: durability: max_durability must be a number',\n );\n }\n\n if (config.damage_chance) {\n const damageChance = config.damage_chance;\n\n if (\n typeof damageChance.min === 'number' &&\n typeof damageChance.max === 'number'\n ) {\n if (damageChance.min < 0 || damageChance.max < 0) {\n throw new Error(\n '[set error]: durability: damage_chance min and max must be at least 0',\n );\n }\n if (damageChance.min > damageChance.max) {\n throw new Error(\n '[set error]: durability: damage_chance min cannot be greater than max',\n );\n }\n this.#opt.components.durability.damage_chance = {\n min: damageChance.min,\n max: damageChance.max,\n };\n } else {\n throw new Error(\n '[set error]: durability: damage_chance must have both min and max values',\n );\n }\n }\n }\n\n /**\n * setDurabilitySensor\n * @param config {object} Durability Sensor configuration\n */\n public setDurabilitySensor(config: {\n durability?: number;\n durability_thresholds?: Array<{\n durability: number;\n particle_type?: t.ParticleType;\n sound_event?: t.SoundEvent;\n }>;\n particle_type?: t.ParticleType;\n sound_event?: t.SoundEvent;\n }) {\n if (!this.#opt.components.durability_sensor) {\n this.#opt.components.durability_sensor = {};\n }\n\n if (typeof config.durability === 'number') {\n this.#opt.components.durability_sensor.durability = config.durability;\n }\n\n if (Array.isArray(config.durability_thresholds)) {\n if (config.durability_thresholds.length === 0) {\n throw new Error(\n '[set error]: durability_sensor: durability_thresholds must have at least 1 item',\n );\n }\n\n this.#opt.components.durability_sensor.durability_thresholds = [];\n for (const threshold of config.durability_thresholds) {\n const thresholdConfig: any = {};\n\n if (typeof threshold.durability === 'number') {\n thresholdConfig.durability = threshold.durability;\n } else {\n throw new Error(\n '[set error]: durability_sensor: durability_thresholds entry durability must be a number',\n );\n }\n\n if (typeof threshold.particle_type === 'string') {\n if (\n !t.ParticleTypeEnum.includes(\n threshold.particle_type as t.ParticleType,\n )\n ) {\n throw new Error(\n `[set error]: durability_sensor: durability_thresholds entry particle_type must be a valid particle type. Got: ${threshold.particle_type}`,\n );\n }\n thresholdConfig.particle_type = threshold.particle_type;\n }\n\n if (typeof threshold.sound_event === 'string') {\n if (\n !t.SoundEventEnum.includes(threshold.sound_event as t.SoundEvent)\n ) {\n throw new Error(\n `[set error]: durability_sensor: durability_thresholds entry sound_event must be a valid sound event. Got: ${threshold.sound_event}`,\n );\n }\n thresholdConfig.sound_event = threshold.sound_event;\n }\n\n this.#opt.components.durability_sensor.durability_thresholds.push(\n thresholdConfig,\n );\n }\n }\n\n if (typeof config.particle_type === 'string') {\n if (\n !t.ParticleTypeEnum.includes(config.particle_type as t.ParticleType)\n ) {\n throw new Error(\n `[set error]: durability_sensor: particle_type must be a valid particle type. Got: ${config.particle_type}`,\n );\n }\n this.#opt.components.durability_sensor.particle_type =\n config.particle_type;\n }\n\n if (typeof config.sound_event === 'string') {\n if (!t.SoundEventEnum.includes(config.sound_event as t.SoundEvent)) {\n throw new Error(\n `[set error]: durability_sensor: sound_event must be a valid sound event. Got: ${config.sound_event}`,\n );\n }\n this.#opt.components.durability_sensor.sound_event = config.sound_event;\n }\n }\n\n /**\n * setDyeable\n * @param config {object} Dyeable configuration\n */\n public setDyeable(config: {\n default_color?: string | [number, number, number];\n }) {\n if (!this.#opt.components.dyeable) {\n this.#opt.components.dyeable = {};\n }\n\n if (config.default_color !== undefined) {\n if (typeof config.default_color === 'string') {\n // Validate hex color format\n if (!/^#[0-9A-Fa-f]{6}$/.test(config.default_color)) {\n throw new Error(\n \"[set error]: dyeable: default_color string must be a valid hex color (e.g., '#175882')\",\n );\n }\n this.#opt.components.dyeable.default_color = config.default_color;\n } else if (\n Array.isArray(config.default_color) &&\n config.default_color.length === 3\n ) {\n // Validate RGB array\n const [r, g, b] = config.default_color;\n if (\n typeof r !== 'number' ||\n typeof g !== 'number' ||\n typeof b !== 'number' ||\n r < 0 ||\n r > 255 ||\n g < 0 ||\n g > 255 ||\n b < 0 ||\n b > 255\n ) {\n throw new Error(\n '[set error]: dyeable: default_color array must contain 3 numbers between 0 and 255',\n );\n }\n this.#opt.components.dyeable.default_color = config.default_color;\n } else {\n throw new Error(\n '[set error]: dyeable: default_color must be a hex string or array of 3 numbers',\n );\n }\n }\n }\n\n /**\n * setEnchantable\n * @param config {object} Enchantable configuration\n */\n public setEnchantable(config: { slot?: t.EnchantableSlot; value?: number }) {\n if (!this.#opt.components.enchantable) {\n this.#opt.components.enchantable = {};\n }\n\n if (config.slot !== undefined) {\n if (typeof config.slot === 'string') {\n // Validate slot enum\n if (!t.EnchantableSlotEnum.includes(config.slot as t.EnchantableSlot)) {\n throw new Error(\n `[set error]: enchantable: slot must be a valid enchantment slot. Got: ${config.slot}`,\n );\n }\n this.#opt.components.enchantable.slot = config.slot;\n } else {\n throw new Error('[set error]: enchantable: slot must be a string');\n }\n }\n\n if (config.value !== undefined) {\n if (typeof config.value === 'number') {\n // Validate value minimum (must be at least 0)\n if (config.value < 0) {\n throw new Error('[set error]: enchantable: value must be at least 0');\n }\n this.#opt.components.enchantable.value = config.value;\n } else {\n throw new Error('[set error]: enchantable: value must be a number');\n }\n }\n }\n\n /**\n * setFood\n * @param config {object} Food configuration\n */\n public setFood(config: {\n can_always_eat?: boolean;\n cooldown_time?: number;\n cooldown_type?: string;\n effects?: Array<{\n amplifier?: number;\n chance?: number;\n duration?: number;\n name?: string;\n }>;\n is_meat?: boolean;\n nutrition?: number;\n on_use_action?: string;\n on_use_range?: [number, number, number];\n saturation_modifier?:\n | number\n | 'poor'\n | 'low'\n | 'normal'\n | 'good'\n | 'supernatural';\n using_converts_to?: string;\n remove_effects?: string[]; // deprecated\n }) {\n // Validate food effects\n const validateFoodEffects = (effects?: any[]) => {\n if (effects && Array.isArray(effects)) {\n const validEffects = [\n 'regeneration',\n 'absorption',\n 'blindness',\n 'conduit_power',\n 'darkness',\n 'fatal_poison',\n 'fire_resistance',\n 'haste',\n 'health_boost',\n 'hunger',\n 'instant_damage',\n 'instant_health',\n 'invisibility',\n 'jump_boost',\n 'levitation',\n 'mining_fatigue',\n 'nausea',\n 'night_vision',\n 'poison',\n 'resistance',\n 'saturation',\n 'slow_falling',\n 'slowness',\n 'speed',\n 'strength',\n 'water_breathing',\n 'weakness',\n 'wither',\n ];\n\n for (const effect of effects) {\n if (effect.name && !validEffects.includes(effect.name)) {\n throw new Error(\n `[set error]: food: effect name must be a valid status effect. Got: ${effect.name}`,\n );\n }\n\n if (typeof effect.amplifier === 'number' && effect.amplifier < 0) {\n throw new Error(\n '[set error]: food: effect amplifier must be at least 0',\n );\n }\n\n if (\n typeof effect.chance === 'number' &&\n (effect.chance < 0 || effect.chance > 1)\n ) {\n throw new Error(\n '[set error]: food: effect chance must be between 0 and 1',\n );\n }\n\n if (typeof effect.duration === 'number' && effect.duration < 0) {\n throw new Error(\n '[set error]: food: effect duration must be at least 0',\n );\n }\n }\n }\n };\n\n // Use the main minecraft:food property for consistency\n if (!this.#opt.components['minecraft:food']) {\n this.#opt.components['minecraft:food'] = {};\n }\n\n if (config.can_always_eat !== undefined) {\n if (typeof config.can_always_eat === 'boolean') {\n this.#opt.components['minecraft:food'].can_always_eat =\n config.can_always_eat;\n } else {\n throw new Error('[set error]: food: can_always_eat must be a boolean');\n }\n }\n\n if (config.cooldown_time !== undefined) {\n if (typeof config.cooldown_time === 'number') {\n if (config.cooldown_time < 0) {\n throw new Error(\n '[set error]: food: cooldown_time must be at least 0',\n );\n }\n this.#opt.components['minecraft:food'].cooldown_time =\n config.cooldown_time;\n } else {\n throw new Error('[set error]: food: cooldown_time must be a number');\n }\n }\n\n if (config.cooldown_type !== undefined) {\n if (typeof config.cooldown_type === 'string') {\n this.#opt.components['minecraft:food'].cooldown_type =\n config.cooldown_type;\n } else {\n throw new Error('[set error]: food: cooldown_type must be a string');\n }\n }\n\n if (config.effects !== undefined) {\n validateFoodEffects(config.effects);\n this.#opt.components['minecraft:food'].effects = config.effects;\n }\n\n if (config.is_meat !== undefined) {\n if (typeof config.is_meat === 'boolean') {\n this.#opt.components['minecraft:food'].is_meat = config.is_meat;\n } else {\n throw new Error('[set error]: food: is_meat must be a boolean');\n }\n }\n\n if (config.nutrition !== undefined) {\n if (typeof config.nutrition === 'number') {\n if (config.nutrition < 0) {\n throw new Error('[set error]: food: nutrition must be at least 0');\n }\n this.#opt.components['minecraft:food'].nutrition = config.nutrition;\n } else {\n throw new Error('[set error]: food: nutrition must be a number');\n }\n }\n\n if (config.on_use_action !== undefined) {\n if (typeof config.on_use_action === 'string') {\n this.#opt.components['minecraft:food'].on_use_action =\n config.on_use_action;\n } else {\n throw new Error('[set error]: food: on_use_action must be a string');\n }\n }\n\n if (config.on_use_range !== undefined) {\n if (\n Array.isArray(config.on_use_range) &&\n config.on_use_range.length === 3\n ) {\n const [x, y, z] = config.on_use_range;\n if (\n typeof x === 'number' &&\n typeof y === 'number' &&\n typeof z === 'number'\n ) {\n this.#opt.components['minecraft:food'].on_use_range = [x, y, z];\n } else {\n throw new Error(\n '[set error]: food: on_use_range must be an array of 3 numbers',\n );\n }\n } else {\n throw new Error(\n '[set error]: food: on_use_range must be an array of 3 numbers',\n );\n }\n }\n\n if (config.saturation_modifier !== undefined) {\n const validSaturationModifiers = [\n 'poor',\n 'low',\n 'normal',\n 'good',\n 'supernatural',\n ];\n\n if (typeof config.saturation_modifier === 'number') {\n this.#opt.components['minecraft:food'].saturation_modifier =\n config.saturation_modifier;\n } else if (typeof config.saturation_modifier === 'string') {\n if (!validSaturationModifiers.includes(config.saturation_modifier)) {\n throw new Error(\n `[set error]: food: saturation_modifier string must be one of: ${validSaturationModifiers.join(', ')}. Got: ${config.saturation_modifier}`,\n );\n }\n this.#opt.components['minecraft:food'].saturation_modifier =\n config.saturation_modifier;\n } else {\n throw new Error(\n '[set error]: food: saturation_modifier must be a number or string',\n );\n }\n }\n\n if (config.using_converts_to !== undefined) {\n if (typeof config.using_converts_to === 'string') {\n this.#opt.components['minecraft:food'].using_converts_to =\n config.using_converts_to;\n } else {\n throw new Error(\n '[set error]: food: using_converts_to must be a string',\n );\n }\n }\n\n if (config.remove_effects !== undefined) {\n if (Array.isArray(config.remove_effects)) {\n console.warn(\n '[set error]: food: remove_effects is deprecated and no longer supported in newer versions',\n );\n this.#opt.components['minecraft:food'].remove_effects = [\n ...config.remove_effects,\n ];\n } else {\n throw new Error('[set error]: food: remove_effects must be an array');\n }\n }\n }\n\n /**\n * setFireResistant\n * @param config {object} Fire resistant configuration\n */\n public setFireResistant(config: { value?: boolean }) {\n // Use the main minecraft:fire_resistant property for consistency\n if (!this.#opt.components['minecraft:fire_resistant']) {\n this.#opt.components['minecraft:fire_resistant'] = { value: true };\n }\n\n if (config.value !== undefined) {\n if (typeof config.value === 'boolean') {\n this.#opt.components['minecraft:fire_resistant'].value = config.value;\n } else {\n throw new Error('[set error]: fire_resistant: value must be a boolean');\n }\n } else {\n // Default to true if no value specified\n this.#opt.components['minecraft:fire_resistant'].value = true;\n }\n }\n\n /**\n * setEntityPlacer\n * @param config {object} Entity placer configuration\n */\n public setEntityPlacer(config: {\n dispense_on?: Array<\n | string\n | {\n name: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n }\n >;\n entity: string;\n use_on?: Array<\n | string\n | {\n name: string;\n states?: Record<string, number | string | boolean>;\n tags?: string;\n }\n >;\n }) {\n // Use the main minecraft:entity_placer property for consistency\n if (!this.#opt.components['minecraft:entity_placer']) {\n this.#opt.components['minecraft:entity_placer'] = { entity: '' };\n }\n\n // Validate entity regex pattern\n if (config.entity !== undefined) {\n if (typeof config.entity === 'string') {\n const entityRegex =\n /^(?:\\w+(?:\\.\\w+):(?=\\w))?(?:\\w+(?:\\.\\w+))?(?:<((?:\\w+(?:\\.\\w+):(?=\\w))?\\w+(?:\\.\\w+))*>)?$/;\n if (!entityRegex.test(config.entity)) {\n throw new Error(\n `[set error]: entity_placer: entity must match the pattern \"^(?:\\\\w+(?:.\\\\w+):(?=\\\\w))?(?:\\\\w+(?:.\\\\w+))(?:<((?:\\\\w+(?:.\\\\w+):(?=\\\\w))?\\\\w+(?:.\\\\w+))*>)?$\". Got: ${config.entity}`,\n );\n }\n this.#opt.components['minecraft:entity_placer'].entity = config.entity;\n } else {\n throw new Error('[set error]: entity_placer: entity must be a string');\n }\n }\n\n if (config.dispense_on !== undefined) {\n if (Array.isArray(config.dispense_on)) {\n this.#opt.components['minecraft:entity_placer'].dispense_on = [\n ...config.dispense_on,\n ];\n } else {\n throw new Error(\n '[set error]: entity_placer: dispense_on must be an array',\n );\n }\n }\n\n if (config.use_on !== undefined) {\n if (Array.isArray(config.use_on)) {\n this.#opt.components['minecraft:entity_placer'].use_on = [\n ...config.use_on,\n ];\n } else {\n throw new Error('[set error]: entity_placer: use_on must be an array');\n }\n }\n }\n\n /**\n * setFuel\n * @param config {object} Fuel configuration\n */\n public setFuel(config: { duration: number }) {\n // Use the main minecraft:fuel property for consistency\n if (!this.#opt.components['minecraft:fuel']) {\n this.#opt.components['minecraft:fuel'] = { duration: 0 };\n }\n\n if (config.duration !== undefined) {\n if (typeof config.duration === 'number') {\n if (config.duration >= 0.05) {\n this.#opt.components['minecraft:fuel'].duration = config.duration;\n } else {\n throw new Error('[set error]: fuel: duration must be >= 0.05');\n }\n } else {\n throw new Error('[set error]: fuel: duration must be a number');\n }\n } else {\n throw new Error('[set error]: fuel: duration is required');\n }\n }\n\n /**\n * setKineticWeapon\n * @param config {object} Kinetic weapon configuration\n */\n public setKineticWeapon(config: {\n creative_reach?: { max?: number; min?: number };\n damage_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n damage_modifier?: number;\n damage_multiplier?: number;\n delay?: number;\n dismount_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n hitbox_margin?: number;\n knockback_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n kinetic_effect_conditions?: {\n max_duration?: number;\n min_relative_speed?: number;\n min_speed?: number;\n };\n reach?: { max?: number; min?: number };\n }) {\n // Use the main minecraft:kinetic_weapon property for consistency\n if (!this.#opt.components['minecraft:kinetic_weapon']) {\n this.#opt.components['minecraft:kinetic_weapon'] = {};\n }\n\n // Handle creative_reach configuration\n if (config.creative_reach !== undefined) {\n if (typeof config.creative_reach === 'object') {\n this.#opt.components['minecraft:kinetic_weapon'].creative_reach = {\n ...config.creative_reach,\n };\n\n // Validate creative_reach properties\n if (\n config.creative_reach.max !== undefined &&\n typeof config.creative_reach.max !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: creative_reach.max must be a number',\n );\n }\n if (\n config.creative_reach.min !== undefined &&\n typeof config.creative_reach.min !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: creative_reach.min must be a number',\n );\n }\n } else {\n throw new Error(\n '[set error]: kinetic_weapon: creative_reach must be an object',\n );\n }\n }\n\n // Handle damage_conditions configuration\n if (config.damage_conditions !== undefined) {\n if (typeof config.damage_conditions === 'object') {\n this.#opt.components['minecraft:kinetic_weapon'].damage_conditions = {\n ...config.damage_conditions,\n };\n\n // Validate damage_conditions properties\n if (\n config.damage_conditions.max_duration !== undefined &&\n typeof config.damage_conditions.max_duration !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: damage_conditions.max_duration must be a number',\n );\n }\n if (\n config.damage_conditions.min_relative_speed !== undefined &&\n typeof config.damage_conditions.min_relative_speed !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: damage_conditions.min_relative_speed must be a number',\n );\n }\n if (\n config.damage_conditions.min_speed !== undefined &&\n typeof config.damage_conditions.min_speed !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: damage_conditions.min_speed must be a number',\n );\n }\n } else {\n throw new Error(\n '[set error]: kinetic_weapon: damage_conditions must be an object',\n );\n }\n }\n\n // Handle dismount_conditions configuration\n if (config.dismount_conditions !== undefined) {\n if (typeof config.dismount_conditions === 'object') {\n this.#opt.components['minecraft:kinetic_weapon'].dismount_conditions = {\n ...config.dismount_conditions,\n };\n\n // Validate dismount_conditions properties\n if (\n config.dismount_conditions.max_duration !== undefined &&\n typeof config.dismount_conditions.max_duration !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: dismount_conditions.max_duration must be a number',\n );\n }\n if (\n config.dismount_conditions.min_relative_speed !== undefined &&\n typeof config.dismount_conditions.min_relative_speed !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: dismount_conditions.min_relative_speed must be a number',\n );\n }\n if (\n config.dismount_conditions.min_speed !== undefined &&\n typeof config.dismount_conditions.min_speed !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: dismount_conditions.min_speed must be a number',\n );\n }\n } else {\n throw new Error(\n '[set error]: kinetic_weapon: dismount_conditions must be an object',\n );\n }\n }\n\n // Handle knockback_conditions configuration\n if (config.knockback_conditions !== undefined) {\n if (typeof config.knockback_conditions === 'object') {\n this.#opt.components['minecraft:kinetic_weapon'].knockback_conditions =\n { ...config.knockback_conditions };\n\n // Validate knockback_conditions properties\n if (\n config.knockback_conditions.max_duration !== undefined &&\n typeof config.knockback_conditions.max_duration !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: knockback_conditions.max_duration must be a number',\n );\n }\n if (\n config.knockback_conditions.min_relative_speed !== undefined &&\n typeof config.knockback_conditions.min_relative_speed !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: knockback_conditions.min_relative_speed must be a number',\n );\n }\n if (\n config.knockback_conditions.min_speed !== undefined &&\n typeof config.knockback_conditions.min_speed !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: knockback_conditions.min_speed must be a number',\n );\n }\n } else {\n throw new Error(\n '[set error]: kinetic_weapon: knockback_conditions must be an object',\n );\n }\n }\n\n // Handle kinetic_effect_conditions configuration\n if (config.kinetic_effect_conditions !== undefined) {\n if (typeof config.kinetic_effect_conditions === 'object') {\n this.#opt.components[\n 'minecraft:kinetic_weapon'\n ].kinetic_effect_conditions = { ...config.kinetic_effect_conditions };\n\n // Validate kinetic_effect_conditions properties\n if (\n config.kinetic_effect_conditions.max_duration !== undefined &&\n typeof config.kinetic_effect_conditions.max_duration !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: kinetic_effect_conditions.max_duration must be a number',\n );\n }\n if (\n config.kinetic_effect_conditions.min_relative_speed !== undefined &&\n typeof config.kinetic_effect_conditions.min_relative_speed !==\n 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: kinetic_effect_conditions.min_relative_speed must be a number',\n );\n }\n if (\n config.kinetic_effect_conditions.min_speed !== undefined &&\n typeof config.kinetic_effect_conditions.min_speed !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: kinetic_effect_conditions.min_speed must be a number',\n );\n }\n } else {\n throw new Error(\n '[set error]: kinetic_weapon: kinetic_effect_conditions must be an object',\n );\n }\n }\n\n // Handle reach configuration\n if (config.reach !== undefined) {\n if (typeof config.reach === 'object') {\n this.#opt.components['minecraft:kinetic_weapon'].reach = {\n ...config.reach,\n };\n\n // Validate reach properties\n if (\n config.reach.max !== undefined &&\n typeof config.reach.max !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: reach.max must be a number',\n );\n }\n if (\n config.reach.min !== undefined &&\n typeof config.reach.min !== 'number'\n ) {\n throw new Error(\n '[set error]: kinetic_weapon: reach.min must be a number',\n );\n }\n } else {\n throw new Error('[set error]: kinetic_weapon: reach must be an object');\n }\n }\n\n // Handle simple numeric properties\n if (config.damage_modifier !== undefined) {\n if (typeof config.damage_modifier === 'number') {\n this.#opt.components['minecraft:kinetic_weapon'].damage_modifier =\n config.damage_modifier;\n } else {\n throw new Error(\n '[set error]: kinetic_weapon: damage_modifier must be a number',\n );\n }\n }\n\n if (config.damage_multiplier !== undefined) {\n if (typeof config.damage_multiplier === 'number') {\n this.#opt.components['minecraft:kinetic_weapon'].damage_multiplier =\n config.damage_multiplier;\n } else {\n throw new Error(\n '[set error]: kinetic_weapon: damage_multiplier must be a number',\n );\n }\n }\n\n if (config.delay !== undefined) {\n if (typeof config.delay === 'number') {\n this.#opt.components['minecraft:kinetic_weapon'].delay = config.delay;\n } else {\n throw new Error('[set error]: kinetic_weapon: delay must be a number');\n }\n }\n\n if (config.hitbox_margin !== undefined) {\n if (typeof config.hitbox_margin === 'number') {\n this.#opt.components['minecraft:kinetic_weapon'].hitbox_margin =\n config.hitbox_margin;\n } else {\n throw new Error(\n '[set error]: kinetic_weapon: hitbox_margin must be a number',\n );\n }\n }\n }\n\n /**\n * setInteractButton\n * @param config {boolean | string} Interact button configuration - boolean to enable/disable, or string for custom text\n */\n public setInteractButton(config: boolean | string) {\n // Use the main minecraft:interact_button property for consistency\n if (typeof config === 'boolean' || typeof config === 'string') {\n this.#opt.components['minecraft:interact_button'] = config;\n } else {\n throw new Error(\n '[set error]: interact_button: must be a boolean or string',\n );\n }\n }\n\n /**\n * setHoverTextColor\n * @param config {object | string} Hover text color configuration - object with value property, or string color value\n */\n public setHoverTextColor(config: { value?: string } | string) {\n // Use the main minecraft:hover_text_color property for consistency\n if (!this.#opt.components['minecraft:hover_text_color']) {\n this.#opt.components['minecraft:hover_text_color'] = { value: '' };\n }\n\n if (typeof config === 'string') {\n // String format support for convenience\n this.#opt.components['minecraft:hover_text_color'].value = config;\n } else if (typeof config === 'object' && config !== null) {\n // Object format support\n if (config.value !== undefined) {\n this.#opt.components['minecraft:hover_text_color'].value = config.value;\n }\n } else {\n throw new Error(\n '[set error]: hover_text_color: must be a string or object with value property',\n );\n }\n }\n\n /**\n * setLiquidClipped\n * @param config {boolean | { value?: boolean }} Liquid clipped configuration - boolean to enable/disable, or object with value property\n */\n public setLiquidClipped(config: boolean | { value?: boolean }) {\n // Use the main minecraft:liquid_clipped property for consistency\n if (!this.#opt.components['minecraft:liquid_clipped']) {\n // Initialize as empty object if it doesn't exist\n this.#opt.components['minecraft:liquid_clipped'] = {} as any;\n }\n\n if (typeof config === 'boolean') {\n // Boolean format support for convenience\n this.#opt.components['minecraft:liquid_clipped'] = config;\n } else if (typeof config === 'object' && config !== null) {\n // Object format support\n if (config.value !== undefined) {\n if (typeof config.value === 'boolean') {\n this.#opt.components['minecraft:liquid_clipped'] = {\n value: config.value,\n };\n } else {\n throw new Error(\n '[set error]: liquid_clipped: value must be a boolean',\n );\n }\n } else {\n throw new Error(\n '[set error]: liquid_clipped: value is required in object configuration',\n );\n }\n } else {\n throw new Error(\n '[set error]: liquid_clipped: must be a boolean or object with value property',\n );\n }\n }\n\n /**\n * setMaxStackSize\n * @param config {number | { value?: number }} Max stack size configuration - number for direct value, or object with value property\n */\n public setMaxStackSize(config: number | { value?: number }) {\n // Use the main minecraft:max_stack_size property for consistency\n if (!this.#opt.components['minecraft:max_stack_size']) {\n // Initialize as empty object if it doesn't exist\n this.#opt.components['minecraft:max_stack_size'] = {} as any;\n }\n\n if (typeof config === 'number') {\n // Number format support for convenience\n this.#opt.components['minecraft:max_stack_size'] = config;\n } else if (typeof config === 'object' && config !== null) {\n // Object format support\n if (config.value !== undefined) {\n if (typeof config.value === 'number') {\n this.#opt.components['minecraft:max_stack_size'] = {\n value: config.value,\n };\n } else {\n throw new Error(\n '[set error]: max_stack_size: value must be a number',\n );\n }\n } else {\n throw new Error(\n '[set error]: max_stack_size: value is required in object configuration',\n );\n }\n } else {\n throw new Error(\n '[set error]: max_stack_size: must be a number or object with value property',\n );\n }\n }\n\n /**\n * setPiercingWeapon\n * @param config {{ creative_reach?: { max?: number; min?: number }; hitbox_margin?: number; reach?: { max?: number; min?: number } }} Piercing weapon configuration\n */\n public setPiercingWeapon(config: {\n creative_reach?: { max?: number; min?: number };\n hitbox_margin?: number;\n reach?: { max?: number; min?: number };\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: piercing_weapon: must be an object configuration',\n );\n }\n\n const piercingWeaponConfig: any = {};\n\n // Handle creative_reach\n if (config.creative_reach !== undefined) {\n if (\n typeof config.creative_reach !== 'object' ||\n config.creative_reach === null\n ) {\n throw new Error(\n '[set error]: piercing_weapon: creative_reach must be an object',\n );\n }\n\n const creativeReachFinal: any = {};\n if (typeof config.creative_reach.max === 'number') {\n creativeReachFinal.max = config.creative_reach.max;\n }\n if (typeof config.creative_reach.min === 'number') {\n creativeReachFinal.min = config.creative_reach.min;\n }\n piercingWeaponConfig.creative_reach = creativeReachFinal;\n }\n\n // Handle hitbox_margin\n if (config.hitbox_margin !== undefined) {\n if (typeof config.hitbox_margin !== 'number') {\n throw new Error(\n '[set error]: piercing_weapon: hitbox_margin must be a number',\n );\n }\n piercingWeaponConfig.hitbox_margin = config.hitbox_margin;\n }\n\n // Handle reach\n if (config.reach !== undefined) {\n if (typeof config.reach !== 'object' || config.reach === null) {\n throw new Error(\n '[set error]: piercing_weapon: reach must be an object',\n );\n }\n\n const reachFinal: any = {};\n if (typeof config.reach.max === 'number') {\n reachFinal.max = config.reach.max;\n }\n if (typeof config.reach.min === 'number') {\n reachFinal.min = config.reach.min;\n }\n piercingWeaponConfig.reach = reachFinal;\n }\n\n (this.#opt.components as any)['minecraft:piercing_weapon'] =\n piercingWeaponConfig;\n }\n\n /**\n * setProjectile\n * @param config {{ minimum_critical_power?: number; projectile_entity: string }} Projectile configuration\n */\n public setProjectile(config: {\n minimum_critical_power?: number;\n projectile_entity: string;\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: projectile: must be an object configuration',\n );\n }\n\n const projectileConfig: any = {};\n\n // Handle minimum_critical_power\n if (config.minimum_critical_power !== undefined) {\n if (\n typeof config.minimum_critical_power !== 'number' ||\n config.minimum_critical_power < 0\n ) {\n throw new Error(\n '[set error]: projectile: minimum_critical_power must be a number >= 0',\n );\n }\n projectileConfig.minimum_critical_power = config.minimum_critical_power;\n }\n\n // Handle projectile_entity (required)\n if (typeof config.projectile_entity !== 'string') {\n throw new Error(\n '[set error]: projectile: projectile_entity is required and must be a string',\n );\n }\n\n const entityPattern =\n /^(?:\\w+(?:\\.\\w+):(?=\\w))?(?:\\w+(?:\\.\\w+))(?:<((?:\\w+(?:\\.\\w+):(?=\\w))?\\w+(?:\\.\\w+))*>)?$/;\n if (!entityPattern.test(config.projectile_entity)) {\n throw new Error(\n '[set error]: projectile: projectile_entity must match pattern ^(?:\\\\w+(?:\\\\.\\\\w+):(?=\\\\w))?(?:\\\\w+(?:\\\\.\\\\w+))(?:<((?:\\\\w+(?:\\\\.\\\\w+):(?=\\\\w))?\\\\w+(?:\\\\.\\\\w+))*>)?$',\n );\n }\n\n projectileConfig.projectile_entity = config.projectile_entity;\n (this.#opt.components as any)['minecraft:projectile'] = projectileConfig;\n }\n\n /**\n * setRecord\n * @param config {{ comparator_signal?: number; duration?: number; sound_event: string }} Record configuration\n */\n public setRecord(config: {\n comparator_signal?: number;\n duration?: number;\n sound_event: string;\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: record: must be an object configuration');\n }\n\n const recordConfig: any = {};\n\n // Handle comparator_signal\n if (config.comparator_signal !== undefined) {\n if (\n typeof config.comparator_signal !== 'number' ||\n config.comparator_signal < 0\n ) {\n throw new Error(\n '[set error]: record: comparator_signal must be a number >= 0',\n );\n }\n recordConfig.comparator_signal = config.comparator_signal;\n }\n\n // Handle duration\n if (config.duration !== undefined) {\n if (typeof config.duration !== 'number' || config.duration <= 0) {\n throw new Error('[set error]: record: duration must be a number > 0');\n }\n recordConfig.duration = config.duration;\n }\n\n // Handle sound_event (required)\n if (typeof config.sound_event !== 'string') {\n throw new Error(\n '[set error]: record: sound_event is required and must be a string',\n );\n }\n recordConfig.sound_event = config.sound_event;\n (this.#opt.components as any)['minecraft:record'] = recordConfig;\n }\n\n /**\n * setRarity\n * @param config {{ value: 'common' | 'uncommon' | 'rare' | 'epic' }} Rarity configuration\n */\n public setRarity(config: { value: 'common' | 'uncommon' | 'rare' | 'epic' }) {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: rarity: must be an object configuration');\n }\n\n const rarityConfig: any = {};\n\n // Handle value (required)\n if (config.value === undefined) {\n throw new Error('[set error]: rarity: value is required');\n }\n\n if (typeof config.value !== 'string') {\n throw new Error('[set error]: rarity: value must be a string');\n }\n\n const validRarities = ['common', 'uncommon', 'rare', 'epic'] as const;\n if (!validRarities.includes(config.value as any)) {\n throw new Error(\n '[set error]: rarity: value must be one of: common, uncommon, rare, epic',\n );\n }\n\n rarityConfig.value = config.value;\n (this.#opt.components as any)['minecraft:rarity'] = rarityConfig;\n }\n\n /**\n * setRepairable\n * @param config {{ on_repaired?: string; repair_items?: Array<string | { items: string[]; repair_amount?: string | number }> }} Repairable configuration\n */\n public setRepairable(config: {\n on_repaired?: string;\n repair_items?: Array<\n string | { items: string[]; repair_amount?: string | number }\n >;\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: repairable: must be an object configuration',\n );\n }\n\n const repairableConfig: any = {};\n\n // Handle on_repaired event\n if (config.on_repaired !== undefined) {\n if (typeof config.on_repaired === 'string') {\n const eventRegex = /^[a-zA-Z_]\\w*(?::[a-zA-Z_]\\w*)?$/;\n if (!eventRegex.test(config.on_repaired)) {\n throw new Error(\n '[set error]: repairable: on_repaired must be a valid event identifier pattern',\n );\n }\n repairableConfig.on_repaired = config.on_repaired;\n } else {\n throw new Error(\n '[set error]: repairable: on_repaired must be a string',\n );\n }\n }\n\n // Handle repair_items array\n if (config.repair_items !== undefined) {\n if (Array.isArray(config.repair_items)) {\n const repairItemsFinal: any[] = [];\n\n for (const repairItem of config.repair_items) {\n if (typeof repairItem === 'string') {\n // Simple string format - validate identifier\n const itemRegex = /^[a-zA-Z_]\\w*(?::[a-zA-Z_]\\w*)?$/;\n if (!itemRegex.test(repairItem)) {\n throw new Error(\n '[set error]: repairable: repair_items string entries must be valid Minecraft item identifiers',\n );\n }\n repairItemsFinal.push(repairItem);\n } else if (typeof repairItem === 'object' && repairItem !== null) {\n // Complex object format\n const repairItemFinal: any = {};\n\n // Validate required items array\n if (!Array.isArray(repairItem.items)) {\n throw new Error(\n '[set error]: repairable: repair_items object must contain an items array',\n );\n }\n\n const itemsValid = repairItem.items.every((item: string) => {\n if (typeof item !== 'string') return false;\n const itemRegex = /^[a-zA-Z_]\\w*(?::[a-zA-Z_]\\w*)?$/;\n return itemRegex.test(item);\n });\n\n if (!itemsValid || repairItem.items.length === 0) {\n throw new Error(\n '[set error]: repairable: repair_items items must be non-empty array of valid Minecraft item identifiers',\n );\n }\n\n repairItemFinal.items = [...repairItem.items];\n\n // Validate repair_amount (optional)\n if (repairItem.repair_amount !== undefined) {\n if (\n typeof repairItem.repair_amount === 'string' ||\n typeof repairItem.repair_amount === 'number'\n ) {\n repairItemFinal.repair_amount = repairItem.repair_amount;\n } else {\n throw new Error(\n '[set error]: repairable: repair_amount must be a string or number',\n );\n }\n }\n\n repairItemsFinal.push(repairItemFinal);\n } else {\n throw new Error(\n '[set error]: repairable: each repair_items entry must be a string or object',\n );\n }\n }\n\n repairableConfig.repair_items = repairItemsFinal;\n } else {\n throw new Error(\n '[set error]: repairable: repair_items must be an array',\n );\n }\n }\n\n (this.#opt.components as any)['minecraft:repairable'] = repairableConfig;\n }\n\n /**\n * setSeed\n * @param config {{ crop_result: string; plant_at?: string[]; plant_at_any_solid_surface?: boolean; plant_at_face?: 'UP' | 'DOWN' }} Seed configuration\n */\n public setSeed(config: {\n crop_result: string;\n plant_at?: string[];\n plant_at_any_solid_surface?: boolean;\n plant_at_face?: 'UP' | 'DOWN';\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: seed: must be an object configuration');\n }\n\n const seedConfig: any = {};\n\n // Validate format version for seed component (requires 1.10.0+)\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(formatParts[1] + '.' + formatParts[2]);\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (formatVersion < 1.1 || (formatVersion === 1.1 && patchVersion < 0)) {\n throw new Error(\n '[set error]: seed: component requires format version 1.10.0 or higher',\n );\n }\n\n // Handle crop_result (required)\n if (typeof config.crop_result !== 'string') {\n throw new Error(\n '[set error]: seed: crop_result is required and must be a string',\n );\n }\n\n const blockRegex = /^\\w+(?::\\w+)*$/;\n if (!blockRegex.test(config.crop_result)) {\n throw new Error(\n '[set error]: seed: crop_result must be a valid block identifier',\n );\n }\n seedConfig.crop_result = config.crop_result;\n\n // Handle plant_at array\n if (config.plant_at !== undefined) {\n if (Array.isArray(config.plant_at)) {\n const plantAtValid = config.plant_at.every((block: string) => {\n if (typeof block !== 'string') return false;\n return blockRegex.test(block);\n });\n\n if (!plantAtValid) {\n throw new Error(\n '[set error]: seed: plant_at entries must be valid block identifiers',\n );\n }\n\n seedConfig.plant_at = [...config.plant_at];\n } else {\n throw new Error(\n '[set error]: seed: plant_at must be an array of strings',\n );\n }\n }\n\n // Handle deprecated properties (with format version checks)\n if (config.plant_at_any_solid_surface !== undefined) {\n if (typeof config.plant_at_any_solid_surface === 'boolean') {\n if (formatVersion >= 1.19) {\n throw new Error(\n '[set error]: seed: plant_at_any_solid_surface is deprecated and no longer works after format versions of at least 1.19.0',\n );\n }\n seedConfig.plant_at_any_solid_surface =\n config.plant_at_any_solid_surface;\n } else {\n throw new Error(\n '[set error]: seed: plant_at_any_solid_surface must be a boolean',\n );\n }\n }\n\n if (config.plant_at_face !== undefined) {\n if (typeof config.plant_at_face === 'string') {\n const validFaces = ['UP', 'DOWN'] as const;\n if (!validFaces.includes(config.plant_at_face as any)) {\n throw new Error(\n \"[set error]: seed: plant_at_face must be either 'UP' or 'DOWN'\",\n );\n }\n if (formatVersion >= 1.19) {\n throw new Error(\n '[set error]: seed: plant_at_face is deprecated and no longer works after format versions of at least 1.19.0',\n );\n }\n seedConfig.plant_at_face = config.plant_at_face;\n } else {\n throw new Error('[set error]: seed: plant_at_face must be a string');\n }\n }\n\n (this.#opt.components as any)['minecraft:seed'] = seedConfig;\n }\n\n /**\n * setStackedByData\n * @param config {{ value?: boolean }} StackedByData configuration\n */\n public setStackedByData(config: { value?: boolean }) {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: stacked_by_data: must be an object configuration',\n );\n }\n\n const stackedByDataConfig: any = {};\n\n // Handle value (optional, defaults to true)\n if (config.value === undefined) {\n stackedByDataConfig.value = true;\n } else if (typeof config.value === 'boolean') {\n stackedByDataConfig.value = config.value;\n } else {\n throw new Error(\n '[set error]: stacked_by_data: value must be a boolean if provided',\n );\n }\n\n (this.#opt.components as any)['minecraft:stacked_by_data'] =\n stackedByDataConfig;\n }\n\n /**\n * setShouldDespawn\n * @param config {{ value?: boolean }} ShouldDespawn configuration\n */\n public setShouldDespawn(config: { value?: boolean }) {\n if (typeof config !== 'object' || config === null) {\n throw new Error(\n '[set error]: should_despawn: must be an object configuration',\n );\n }\n\n const shouldDespawnConfig: any = {};\n\n // Handle value (optional, defaults to true)\n if (config.value === undefined) {\n shouldDespawnConfig.value = true;\n } else if (typeof config.value === 'boolean') {\n shouldDespawnConfig.value = config.value;\n } else {\n throw new Error(\n '[set error]: should_despawn: value must be a boolean if provided',\n );\n }\n\n (this.#opt.components as any)['minecraft:should_despawn'] =\n shouldDespawnConfig;\n }\n\n /**\n * setShooter\n * @param config {{\n * ammunition: Array<string | { item: string; launch_power_scale?: number; max_draw_duration?: number; charge_on_draw?: boolean }>;\n * charge_on_draw?: boolean;\n * max_draw_duration?: number;\n * auto_charge?: boolean;\n * launch_power?: number;\n * scale_power_by_draw_duration?: boolean;\n * }} Shooter configuration\n */\n public setShooter(config: {\n ammunition: Array<\n | string\n | {\n item: string;\n launch_power_scale?: number;\n max_draw_duration?: number;\n charge_on_draw?: boolean;\n }\n >;\n charge_on_draw?: boolean;\n max_draw_duration?: number;\n auto_charge?: boolean;\n launch_power?: number;\n scale_power_by_draw_duration?: boolean;\n }) {\n if (typeof config !== 'object' || config === null) {\n throw new Error('[set error]: shooter: must be an object configuration');\n }\n\n const shooterConfig: any = {};\n\n // Validate format version for shooter component\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(formatParts[1] + '.' + formatParts[2]);\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (\n formatVersion < 1.16 ||\n (formatVersion === 1.16 && patchVersion < 100)\n ) {\n throw new Error(\n '[set error]: shooter: component requires format version 1.16.100 or higher',\n );\n }\n\n // Handle ammunition (required)\n if (config.ammunition === undefined) {\n throw new Error('[set error]: shooter: ammunition is required');\n }\n\n if (Array.isArray(config.ammunition)) {\n const ammunitionFinal: any[] = [];\n\n for (const ammunitionItem of config.ammunition) {\n if (typeof ammunitionItem === 'string') {\n // Simple string format - validate identifier\n const itemRegex = /^[a-zA-Z_]\\w*(?::[a-zA-Z_]\\w*)?$/;\n if (!itemRegex.test(ammunitionItem)) {\n throw new Error(\n '[set error]: shooter: ammunition entries must be valid item identifiers when using string format',\n );\n }\n ammunitionFinal.push(ammunitionItem);\n } else if (\n typeof ammunitionItem === 'object' &&\n ammunitionItem !== null\n ) {\n // Complex object format with detailed properties\n const ammunitionObject: any = {};\n\n // Validate item (required)\n if (typeof ammunitionItem.item === 'string') {\n const itemRegex = /^[a-zA-Z_]\\w*(?::[a-zA-Z_]\\w*)?$/;\n if (!itemRegex.test(ammunitionItem.item)) {\n throw new Error(\n '[set error]: shooter: ammunition item property must be a valid item identifier',\n );\n }\n ammunitionObject.item = ammunitionItem.item;\n } else {\n throw new Error(\n '[set error]: shooter: ammunition item property is required and must be a string',\n );\n }\n\n // Handle launch_power_scale (optional)\n if (ammunitionItem.launch_power_scale !== undefined) {\n if (\n typeof ammunitionItem.launch_power_scale === 'number' &&\n ammunitionItem.launch_power_scale > 0\n ) {\n ammunitionObject.launch_power_scale =\n ammunitionItem.launch_power_scale;\n } else {\n throw new Error(\n '[set error]: shooter: ammunition launch_power_scale must be a positive number',\n );\n }\n }\n\n // Handle max_draw_duration (optional)\n if (ammunitionItem.max_draw_duration !== undefined) {\n if (\n typeof ammunitionItem.max_draw_duration === 'number' &&\n ammunitionItem.max_draw_duration >= 0\n ) {\n ammunitionObject.max_draw_duration =\n ammunitionItem.max_draw_duration;\n } else {\n throw new Error(\n '[set error]: shooter: ammunition max_draw_duration must be a non-negative number',\n );\n }\n }\n\n // Handle charge_on_draw (optional)\n if (ammunitionItem.charge_on_draw !== undefined) {\n if (typeof ammunitionItem.charge_on_draw === 'boolean') {\n ammunitionObject.charge_on_draw = ammunitionItem.charge_on_draw;\n } else {\n throw new Error(\n '[set error]: shooter: ammunition charge_on_draw must be a boolean',\n );\n }\n }\n\n ammunitionFinal.push(ammunitionObject);\n } else {\n throw new Error(\n '[set error]: shooter: ammunition entries must be strings or objects',\n );\n }\n }\n\n shooterConfig.ammunition = ammunitionFinal;\n } else {\n throw new Error('[set error]: shooter: ammunition must be an array');\n }\n\n // Handle charge_on_draw (optional)\n if (config.charge_on_draw !== undefined) {\n if (typeof config.charge_on_draw === 'boolean') {\n shooterConfig.charge_on_draw = config.charge_on_draw;\n } else {\n throw new Error(\n '[set error]: shooter: charge_on_draw must be a boolean',\n );\n }\n }\n\n // Handle max_draw_duration (optional)\n if (config.max_draw_duration !== undefined) {\n if (\n typeof config.max_draw_duration === 'number' &&\n config.max_draw_duration >= 0\n ) {\n shooterConfig.max_draw_duration = config.max_draw_duration;\n } else {\n throw new Error(\n '[set error]: shooter: max_draw_duration must be a non-negative number',\n );\n }\n }\n\n // Handle auto_charge (optional)\n if (config.auto_charge !== undefined) {\n if (typeof config.auto_charge === 'boolean') {\n shooterConfig.auto_charge = config.auto_charge;\n } else {\n throw new Error('[set error]: shooter: auto_charge must be a boolean');\n }\n }\n\n // Handle launch_power (optional)\n if (config.launch_power !== undefined) {\n if (typeof config.launch_power === 'number' && config.launch_power >= 0) {\n shooterConfig.launch_power = config.launch_power;\n } else {\n throw new Error(\n '[set error]: shooter: launch_power must be a non-negative number',\n );\n }\n }\n\n // Handle scale_power_by_draw_duration (optional)\n if (config.scale_power_by_draw_duration !== undefined) {\n if (typeof config.scale_power_by_draw_duration === 'boolean') {\n shooterConfig.scale_power_by_draw_duration =\n config.scale_power_by_draw_duration;\n } else {\n throw new Error(\n '[set error]: shooter: scale_power_by_draw_duration must be a boolean',\n );\n }\n }\n\n (this.#opt.components as any)['minecraft:shooter'] = shooterConfig;\n }\n\n /**\n * setStorageWeightModifier\n * @param config {{ weight_in_storage_item: number }} Storage weight modifier configuration\n */\n public setStorageWeightModifier(config: { weight_in_storage_item: number }) {\n // Validate format version for storage_weight_modifier component\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(formatParts[1] + '.' + formatParts[2]);\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (formatVersion < 1.21 || (formatVersion === 1.21 && patchVersion < 40)) {\n throw new Error(\n '[set error]: storage_weight_modifier: component requires format version 1.21.40 or higher',\n );\n }\n\n // Validate weight_in_storage_item (required)\n if (config.weight_in_storage_item === undefined) {\n throw new Error(\n '[set error]: storage_weight_modifier: weight_in_storage_item is required',\n );\n }\n\n if (typeof config.weight_in_storage_item !== 'number') {\n throw new Error(\n '[set error]: storage_weight_modifier: weight_in_storage_item must be a number',\n );\n }\n\n if (\n config.weight_in_storage_item < 0 ||\n config.weight_in_storage_item > 64\n ) {\n throw new Error(\n '[set error]: storage_weight_modifier: weight_in_storage_item must be between 0 and 64',\n );\n }\n\n (this.#opt.components as any)['minecraft:storage_weight_modifier'] = {\n weight_in_storage_item: config.weight_in_storage_item,\n };\n }\n\n /**\n * setStorageWeightLimit\n * @param config {{ storage_capacity_per_slot: number; }} Storage weight limit configuration\n */\n public setStorageWeightLimit(config: { storage_capacity_per_slot: number }) {\n // Validate format version for storage_weight_limit component\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(formatParts[1] + '.' + formatParts[2]);\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (formatVersion < 1.21 || (formatVersion === 1.21 && patchVersion < 40)) {\n throw new Error(\n '[set error]: storage_weight_limit: component requires format version 1.21.40 or higher',\n );\n }\n\n // Validate storage_capacity_per_slot (required)\n if (config.storage_capacity_per_slot === undefined) {\n throw new Error(\n '[set error]: storage_weight_limit: storage_capacity_per_slot is required',\n );\n }\n\n if (typeof config.storage_capacity_per_slot !== 'number') {\n throw new Error(\n '[set error]: storage_weight_limit: storage_capacity_per_slot must be a number',\n );\n }\n\n if (\n config.storage_capacity_per_slot < 0 ||\n config.storage_capacity_per_slot > 64\n ) {\n throw new Error(\n '[set error]: storage_weight_limit: storage_capacity_per_slot must be between 0 and 64',\n );\n }\n\n (this.#opt.components as any)['minecraft:storage_weight_limit'] = {\n storage_capacity_per_slot: config.storage_capacity_per_slot,\n };\n }\n\n /**\n * setStorageItem (enhanced existing method)\n * @param config {object} Storage item configuration\n */\n public setStorageItem(config: {\n max_slots?: number;\n max_weight_limit?: number;\n weight_in_storage_item?: number;\n allow_nested_storage_items?: boolean;\n allowed_items?: string[];\n banned_items?: string[];\n }) {\n // Validate format version for storage_item component\n const formatParts = this.#opt.format.split('.');\n const formatVersion = parseFloat(formatParts[1] + '.' + formatParts[2]);\n const patchVersion = formatParts[3] ? parseInt(formatParts[3]) : 0;\n\n if (formatVersion < 1.21 || (formatVersion === 1.21 && patchVersion < 40)) {\n throw new Error(\n '[set error]: storage_item: component requires format version 1.21.40 or higher',\n );\n }\n\n if (!this.#opt.components.storage_item) {\n this.#opt.components.storage_item = {};\n }\n\n // Validate max_slots if provided\n if (typeof config.max_slots === 'number') {\n if (config.max_slots < 1 || config.max_slots > 64) {\n throw new Error(\n '[set error]: storage_item: max_slots must be between 1 and 64',\n );\n }\n this.#opt.components.storage_item.max_slots = config.max_slots;\n }\n\n // Validate max_weight_limit if provided\n if (typeof config.max_weight_limit === 'number') {\n if (config.max_weight_limit < 0) {\n throw new Error(\n '[set error]: storage_item: max_weight_limit must be non-negative',\n );\n }\n this.#opt.components.storage_item.max_weight_limit =\n config.max_weight_limit;\n }\n\n // Validate weight_in_storage_item if provided\n if (typeof config.weight_in_storage_item === 'number') {\n if (\n config.weight_in_storage_item < 0 ||\n config.weight_in_storage_item > 64\n ) {\n throw new Error(\n '[set error]: storage_item: weight_in_storage_item must be between 0 and 64',\n );\n }\n this.#opt.components.storage_item.weight_in_storage_item =\n config.weight_in_storage_item;\n }\n\n // Handle boolean properties\n if (typeof config.allow_nested_storage_items === 'boolean') {\n this.#opt.components.storage_item.allow_nested_storage_items =\n config.allow_nested_storage_items;\n }\n\n // Validate allowed_items if provided\n if (Array.isArray(config.allowed_items)) {\n for (const item of config.allowed_items) {\n if (typeof item !== 'string') {\n throw new Error(\n '[set error]: storage_item: allowed_items entries must be strings',\n );\n }\n const itemRegex = /^[a-zA-Z_][\\w.]*(?::[a-zA-Z_][\\w.]*)?$/;\n if (!itemRegex.test(item)) {\n throw new Error(\n '[set error]: storage_item: allowed_items entries must be valid item identifiers',\n );\n }\n }\n this.#opt.components.storage_item.allowed_items = [\n ...config.allowed_items,\n ];\n }\n\n // Validate banned_items if provided\n if (Array.isArray(config.banned_items)) {\n for (const item of config.banned_items) {\n if (typeof item !== 'string') {\n throw new Error(\n '[set error]: storage_item: banned_items entries must be strings',\n );\n }\n const itemRegex = /^[a-zA-Z_][\\w.]*(?::[a-zA-Z_][\\w.]*)?$/;\n if (!itemRegex.test(item)) {\n throw new Error(\n '[set error]: storage_item: banned_items entries must be valid item identifiers',\n );\n }\n }\n this.#opt.components.storage_item.banned_items = [...config.banned_items];\n }\n }\n\n /**\n * Set minecraft:throwable component\n * @param config {object} Throwable configuration\n */\n public setThrowable(config: {\n do_swing_animation?: boolean;\n launch_power_scale?: number;\n max_draw_duration?: number;\n max_launch_power?: number;\n min_draw_duration?: number;\n scale_power_by_draw_duration?: boolean;\n }) {\n // Initialize the component if it doesn't exist\n if (!this.#opt.components['minecraft:throwable']) {\n this.#opt.components['minecraft:throwable'] = {};\n }\n\n // Handle do_swing_animation\n if (typeof config.do_swing_animation === 'boolean') {\n this.#opt.components['minecraft:throwable'].do_swing_animation =\n config.do_swing_animation;\n }\n\n // Handle launch_power_scale - must be non-negative\n if (typeof config.launch_power_scale === 'number') {\n if (config.launch_power_scale >= 0) {\n this.#opt.components['minecraft:throwable'].launch_power_scale =\n config.launch_power_scale;\n } else {\n throw new Error(\n '[set error]: throwable: launch_power_scale must be non-negative',\n );\n }\n }\n\n // Handle max_draw_duration - must be non-negative\n if (typeof config.max_draw_duration === 'number') {\n if (config.max_draw_duration >= 0) {\n this.#opt.components['minecraft:throwable'].max_draw_duration =\n config.max_draw_duration;\n } else {\n throw new Error(\n '[set error]: throwable: max_draw_duration must be non-negative',\n );\n }\n }\n\n // Handle max_launch_power - must be non-negative\n if (typeof config.max_launch_power === 'number') {\n if (config.max_launch_power >= 0) {\n this.#opt.components['minecraft:throwable'].max_launch_power =\n config.max_launch_power;\n } else {\n throw new Error(\n '[set error]: throwable: max_launch_power must be non-negative',\n );\n }\n }\n\n // Handle min_draw_duration - must be non-negative\n if (typeof config.min_draw_duration === 'number') {\n if (config.min_draw_duration >= 0) {\n this.#opt.components['minecraft:throwable'].min_draw_duration =\n config.min_draw_duration;\n } else {\n throw new Error(\n '[set error]: throwable: min_draw_duration must be non-negative',\n );\n }\n }\n\n // Handle scale_power_by_draw_duration\n if (typeof config.scale_power_by_draw_duration === 'boolean') {\n this.#opt.components['minecraft:throwable'].scale_power_by_draw_duration =\n config.scale_power_by_draw_duration;\n }\n }\n\n /**\n * Set minecraft:tags component\n * @param tags {string[]} Array of item tags\n */\n public setTags(tags: string[]) {\n // Initialize the component if it doesn't exist\n if (!this.#opt.components['minecraft:tags']) {\n this.#opt.components['minecraft:tags'] = {};\n }\n\n // Validate the tags array\n if (!Array.isArray(tags)) {\n throw new Error('[set error]: tags: must be an array');\n }\n\n // Validate each tag\n for (const tag of tags) {\n if (typeof tag !== 'string') {\n throw new Error('[set error]: tags: all entries must be strings');\n }\n\n const tagRegex = /^[a-zA-Z_][\\w:]*$/;\n if (!tagRegex.test(tag)) {\n throw new Error(\n `[set error]: tags: tag \"${tag}\" is not a valid tag format`,\n );\n }\n }\n\n this.#opt.components['minecraft:tags'].tags = [...tags];\n }\n\n /**\n * Set minecraft:swing_duration component\n * @param duration {number} Swing animation duration in seconds\n */\n public setSwingDuration(duration: number) {\n // Validate the duration\n if (typeof duration !== 'number' || duration < 0) {\n throw new Error(\n '[set error]: swing_duration: must be a non-negative number',\n );\n }\n\n // Initialize the component if it doesn't exist\n if (!this.#opt.components['minecraft:swing_duration']) {\n this.#opt.components['minecraft:swing_duration'] = {};\n }\n\n this.#opt.components['minecraft:swing_duration'].value = duration;\n }\n\n /**\n * Set minecraft:use_animation component\n * @param animation {string | { value?: string }} Animation configuration - can be string (\"eat\", \"drink\", etc.) or object ({ value: \"eat\" })\n */\n public setUseAnimation(animation: string | { value?: string }) {\n // Initialize the component if it doesn't exist\n if (!this.#opt.components['minecraft:use_animation']) {\n this.#opt.components['minecraft:use_animation'] = {};\n }\n\n if (typeof animation === 'string') {\n // String format - validate it's not empty\n const trimmedValue = animation.trim();\n if (trimmedValue.length === 0) {\n throw new Error(\n '[set error]: use_animation: string value cannot be empty',\n );\n }\n\n // Store the string value directly\n this.#opt.components['minecraft:use_animation'] = trimmedValue;\n } else if (typeof animation === 'object' && animation !== null) {\n // Object format - validate and store\n if (typeof animation.value === 'string') {\n const trimmedValue = animation.value.trim();\n if (trimmedValue.length === 0) {\n throw new Error(\n '[set error]: use_animation: object value cannot be empty',\n );\n }\n // Initialize as object if it's currently a string\n if (\n typeof this.#opt.components['minecraft:use_animation'] === 'string'\n ) {\n this.#opt.components['minecraft:use_animation'] = {};\n }\n (this.#opt.components['minecraft:use_animation'] as any).value =\n trimmedValue;\n }\n } else {\n throw new Error(\n '[set error]: use_animation: must be a string or object with value property',\n );\n }\n }\n\n /**\n * Set minecraft:wearable component\n * @param config {object} Wearable configuration\n */\n public setWearable(config: {\n slot:\n | 'slot.armor.head'\n | 'slot.armor.chest'\n | 'slot.armor.legs'\n | 'slot.armor.feet'\n | 'slot.armor.body'\n | 'slot.weapon.mainhand'\n | 'slot.weapon.offhand';\n protection?: number;\n hides_player_location?: boolean;\n dispensable?: boolean;\n }) {\n // Initialize the component if it doesn't exist\n if (!this.#opt.components['minecraft:wearable']) {\n this.#opt.components['minecraft:wearable'] = {\n slot: config.slot,\n };\n } else {\n this.#opt.components['minecraft:wearable']!.slot = config.slot;\n }\n\n // Validate and set slot (required)\n if (typeof config.slot !== 'string' || !config.slot.startsWith('slot.')) {\n throw new Error(\n '[set error]: wearable: slot must be a valid equipment slot',\n );\n }\n\n // Set protection (optional, must be non-negative integer)\n if (typeof config.protection === 'number') {\n if (config.protection >= 0 && Number.isInteger(config.protection)) {\n this.#opt.components['minecraft:wearable']!.protection =\n config.protection;\n } else {\n throw new Error(\n '[set error]: wearable: protection must be a non-negative integer',\n );\n }\n }\n\n // Set hides_player_location (optional boolean)\n if (typeof config.hides_player_location === 'boolean') {\n this.#opt.components['minecraft:wearable']!.hides_player_location =\n config.hides_player_location;\n }\n\n // Set dispensable (optional boolean)\n if (typeof config.dispensable === 'boolean') {\n this.#opt.components['minecraft:wearable']!.dispensable =\n config.dispensable;\n }\n }\n\n /**\n * Set minecraft:use_modifiers component\n * @param config {object} Use modifiers configuration\n */\n public setUseModifiers(config: {\n use_duration: number;\n movement_modifier?: number;\n emit_vibrations?: boolean;\n start_sound?: string;\n }) {\n // Validate use_duration (required, non-negative)\n if (typeof config.use_duration !== 'number' || config.use_duration < 0) {\n throw new Error(\n '[set error]: use_modifiers: use_duration must be a non-negative number',\n );\n }\n\n // Validate movement_modifier (optional, must be ≤ 1.0)\n if (\n typeof config.movement_modifier === 'number' &&\n config.movement_modifier > 1.0\n ) {\n throw new Error(\n '[set error]: use_modifiers: movement_modifier must be ≤ 1.0',\n );\n }\n\n // Initialize the component if it doesn't exist\n if (!this.#opt.components['minecraft:use_modifiers']) {\n this.#opt.components['minecraft:use_modifiers'] = {\n use_duration: config.use_duration,\n };\n } else {\n this.#opt.components['minecraft:use_modifiers']!.use_duration =\n config.use_duration;\n }\n\n // Set movement_modifier if provided\n if (typeof config.movement_modifier === 'number') {\n this.#opt.components['minecraft:use_modifiers']!.movement_modifier =\n config.movement_modifier;\n } else if (config.movement_modifier === undefined) {\n delete this.#opt.components['minecraft:use_modifiers']!.movement_modifier;\n }\n\n // Set emit_vibrations if provided\n if (typeof config.emit_vibrations === 'boolean') {\n this.#opt.components['minecraft:use_modifiers']!.emit_vibrations =\n config.emit_vibrations;\n } else if (config.emit_vibrations === undefined) {\n delete this.#opt.components['minecraft:use_modifiers']!.emit_vibrations;\n }\n\n // Set start_sound if provided (optional string)\n if (typeof config.start_sound === 'string') {\n const trimmedSound = config.start_sound.trim();\n if (trimmedSound.length > 0) {\n this.#opt.components['minecraft:use_modifiers']!.start_sound =\n trimmedSound;\n }\n } else if (config.start_sound === undefined) {\n delete this.#opt.components['minecraft:use_modifiers']!.start_sound;\n }\n }\n\n public getIcon() {\n return this.#opt.components.icon;\n }\n public getAllowOffHand() {\n return this.#opt.components.offHand;\n }\n public getTags() {\n return this.#opt.components.tags;\n }\n public getDamageAbsorption() {\n return this.#opt.components.damage_absorption;\n }\n public getDurability() {\n return this.#opt.components.durability;\n }\n public getMaxStackSize() {\n return this.#opt.components.max_stack_size;\n }\n public getShouldDespawn() {\n return (this.#opt.components as any).should_despawn;\n }\n public getHandEquipped() {\n return this.#opt.components.hand_equipped;\n }\n public getRepairable() {\n return (this.#opt.components as any).repairable;\n }\n public getFuel() {\n return this.#opt.components.fuel;\n }\n public getStorageWeightModifier() {\n return this.#opt.components['minecraft:storage_weight_modifier'];\n }\n public getStorageWeightLimit() {\n return this.#opt.components['minecraft:storage_weight_limit'];\n }\n public getStorageItem() {\n return this.#opt.components['minecraft:storage_item'];\n }\n public getBundleInteraction() {\n return this.#opt.components.bundle_interaction;\n }\n public getCooldown() {\n return this.#opt.components.cooldown;\n }\n public getCompostable() {\n return this.#opt.components.compostable;\n }\n public getBlockPlacer() {\n return this.#opt.components.block_placer;\n }\n public getThrowable() {\n return this.#opt.components['minecraft:throwable'];\n }\n public getProjectile() {\n return (this.#opt.components as any)['minecraft:projectile'];\n }\n public getRecord() {\n return (this.#opt.components as any)['minecraft:record'];\n }\n public getGlint() {\n return (this.#opt.components as any)['minecraft:glint'];\n }\n public getUseAnimation() {\n return this.#opt.components['minecraft:use_animation'];\n }\n public getWearable() {\n return this.#opt.components['minecraft:wearable'];\n }\n public getUseModifiers() {\n return this.#opt.components['minecraft:use_modifiers'];\n }\n}\nexport { ItemComponent };\n","import { statSync } from 'node:fs';\nimport { MCXstructureLocComponentType } from '../compile-mcx/types';\nimport { BlockComponent } from './components/block';\nimport { EntityComponent } from './components/entity';\nimport { ItemComponent } from './components/item';\nimport { extname } from 'node:path';\n\nexport default {\n item: ItemComponent,\n entity: EntityComponent,\n block: BlockComponent,\n} satisfies {\n [key in MCXstructureLocComponentType]: unknown;\n};\nclass ImageComponent {\n public classId = 'mcx_image_0918392' as string;\n constructor(\n public filePath: string,\n public imageType: string[],\n ) {\n try {\n statSync(filePath);\n const ext = extname(filePath);\n if (!imageType.includes(ext.slice(1)))\n throw new Error(\n '[image type]: file extname: ' + ext + ' !includes' + imageType,\n );\n } catch (err) {\n throw new Error(\n \"[mcx image]: can't resolve image: \" + filePath + ' : \\n ' + err,\n );\n }\n }\n}\nclass PNGImageComponent extends ImageComponent {\n public classId = 'mcx_png_2340192' as const;\n constructor(filePath: string) {\n super(filePath, ['png']);\n }\n}\nclass JPGImageComponent extends ImageComponent {\n public classId = 'mcx_jpg/jpeg_019173' as const;\n constructor(filePath: string) {\n super(filePath, ['jpg', 'jpeg']);\n }\n}\nclass SVGImageComponent extends ImageComponent {\n public classId = 'mcx_svg_129371' as const;\n constructor(filePath: string) {\n super(filePath, ['svg', 'xml']);\n }\n}\nclass GIFImageComponent extends ImageComponent {\n public classId = 'mcx_git_019723' as const;\n constructor(filePath: string) {\n super(filePath, ['gif']);\n }\n}\n\nexport {\n ItemComponent,\n BlockComponent,\n EntityComponent,\n PNGImageComponent,\n JPGImageComponent,\n SVGImageComponent,\n GIFImageComponent,\n};\n","import { cp, mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { MCXCompileData } from '../compile-mcx/compiler/compileData';\nimport { execESMMethod, RunScript } from './vm';\nimport path from 'node:path';\nimport lib from './lib';\nimport { MCXstructureLocComponentType } from '../compile-mcx/types';\nimport { transformCtx } from '../types';\nimport * as t from '@babel/types';\nimport type { BaseJson, FilePoint } from './types';\nimport { existsSync, readFileSync } from 'node:fs';\n\nlet cachedOption: Record<string, string[] | [string, string][]> = {};\n\n/** Clear all cached bind options (called between builds) */\nexport function clearCachedOptions() {\n cachedOption = {};\n}\n\nexport function resolveFilePoint(point: FilePoint, ctx: transformCtx) {\n if (point.base == 'root') {\n return path.resolve(point.file);\n } else if (point.base == 'behavior') {\n return path.join(ctx.output.behavior, point.file);\n } else if (point.base == 'resources') {\n return path.join(ctx.output.resources, point.file);\n }\n throw new Error('[mcx component]: invalid FilePoint Base');\n}\nexport async function execEdit(\n option: BaseJson['_meta']['file_edit'],\n ctx: transformCtx,\n) {\n if (!option) return;\n for (const editOption of option) {\n if (editOption.type == 'batch') {\n await execEdit(editOption.options, ctx);\n } else {\n if (editOption.type == 'copy_assets') {\n await cp(\n resolveFilePoint(editOption.source, ctx),\n resolveFilePoint(editOption.output, ctx),\n {\n recursive: true,\n force: true,\n },\n );\n } else if (editOption.type == 'edit') {\n const defineVars = {} as Record<string, string>;\n for (const [key, entry] of Object.entries(\n editOption.expression.define,\n )) {\n const value = entry as\n | { from: 'var'; data: string }\n | { from: 'read_file'; data: FilePoint; default?: string };\n if (value.from == 'var') {\n defineVars[key] = value.data;\n } else {\n const fileContent = await readFile(\n resolveFilePoint(value.data, ctx),\n 'utf-8',\n );\n defineVars[key] = fileContent || value.default || '';\n }\n }\n const execResult = await editOption.expression.run(defineVars);\n if ('file' in editOption.source) {\n const filePath = resolveFilePoint(editOption.source, ctx);\n await writeFile(filePath, execResult.toString());\n }\n if ('bind' in editOption.source) {\n if (\n editOption.source.bind == 'item_texture' &&\n editOption.source.type == 'append'\n ) {\n if (!Array.isArray(execResult))\n throw new Error(\n '[mcx component]: json._meta.file_edit: error exec result',\n );\n if (!cachedOption['item_texture'])\n cachedOption['item_texture'] = [];\n if (Array.isArray(execResult)) {\n cachedOption['item_texture'] = [\n ...(cachedOption['item_texture'] as [string, string][]),\n ...(execResult as [string, string][]),\n ];\n }\n }\n } else {\n throw new Error(\n '[mcx component]: json._meta.file_edit: unknown output place.',\n );\n }\n }\n }\n }\n}\n\n/**\n * Generate the final textures/item_texture.json from accumulated bind data.\n * Call this in the plugin's buildEnd / onEnd hook.\n */\nexport async function generateItemTextureJson(output: {\n resources: string;\n}): Promise<void> {\n const entries = cachedOption['item_texture'] as\n | [string, string][]\n | undefined;\n if (!entries || entries.length === 0) return;\n\n const dir = path.join(output.resources, 'textures');\n const filePath = path.join(dir, 'item_texture.json');\n\n const data: {\n resource_pack_name: string;\n texture_name: string;\n texture_data: Record<string, { textures: string }>;\n } = {\n resource_pack_name: 'mcx.pack.v.',\n texture_name: 'atlas.items',\n texture_data: {},\n };\n\n try {\n const existing = JSON.parse(readFileSync(filePath, 'utf-8'));\n if (existing.texture_data) {\n data.texture_data = existing.texture_data;\n }\n } catch {\n // File doesn't exist yet, use default\n }\n\n for (const [key, textures] of entries) {\n data.texture_data[key] = { textures };\n }\n\n await mkdir(dir, { recursive: true });\n await writeFile(filePath, JSON.stringify(data, null, 2));\n}\n\nexport async function compileComponent(\n compiledCode: MCXCompileData,\n ctx: transformCtx,\n) {\n const component = compiledCode.strLoc.Component;\n const src = compiledCode.strLoc.script;\n const scriptRunResult = (await new RunScript(compiledCode.File, 'esm').run(\n src,\n execESMMethod.transformCjs,\n (data, setData) => {\n if (\n setData &&\n data.type == 'CallExpression' &&\n data.callee.type == 'Identifier' &&\n data.arguments.length == 1 &&\n data.arguments[0]?.type == 'CallExpression' &&\n data.arguments[0].callee.type == 'Identifier' &&\n data.arguments[0].callee.name == 'require'\n ) {\n const callRequire = data.arguments[0];\n const arg = callRequire.arguments[0];\n if (arg && arg.type == 'StringLiteral') {\n if (/^.+?\\.(png|svg|jpg|jpeg|gif)$/.test(arg.value)) {\n const imageComponentRequire = t.memberExpression(\n t.callExpression(t.identifier('require'), [\n t.stringLiteral('@mbler/mcx-core'),\n ]),\n t.identifier(\n {\n png: 'PNGImageComponent',\n svg: 'SVGImageComponent',\n jpg: 'JPGImageComponent',\n jpeg: 'JPGImageComponent',\n gif: 'GIFImageComponent',\n }[path.extname(arg.value).slice(1)] as string,\n ),\n );\n const finishExpression = t.newExpression(imageComponentRequire, [\n t.callExpression(\n t.memberExpression(\n t.callExpression(t.identifier('require'), [\n t.stringLiteral('node:path'),\n ]),\n t.identifier('join'),\n ),\n [t.stringLiteral(path.dirname(compiledCode.File)), arg],\n ),\n ]);\n setData(finishExpression);\n }\n }\n }\n },\n )) as Record<\n string,\n InstanceType<(typeof lib)[MCXstructureLocComponentType]> | undefined\n >;\n if (!component)\n throw new Error(\n '[component internal error]: compile component: mcx is not component: filePath: ' +\n compiledCode.File,\n );\n if (typeof scriptRunResult !== 'object')\n throw new Error(\n '[component compile error]: exec code: mcx export type is not object',\n );\n for (const i of Object.entries(component)) {\n const filePoint = path.join(ctx.output.behavior, i[0]);\n if (!path.relative(filePoint, ctx.output.behavior).startsWith('..'))\n throw new Error('[component]: Path Traversal: path: ' + filePoint);\n const pointExport = i[1].useExpore;\n const pointData = scriptRunResult[pointExport] as InstanceType<\n (typeof lib)[keyof typeof lib]\n >;\n if (!pointExport) {\n throw new Error(\n '[component]: compile: check: not found Component class of file: ' +\n compiledCode.File,\n );\n }\n if (!existsSync(path.dirname(filePoint))) {\n await mkdir(path.dirname(filePoint), {\n recursive: true,\n });\n }\n const json = pointData.toJSON() as BaseJson;\n if (\n !json._meta ||\n !json._meta.type ||\n !['item', 'entity'].includes(json._meta.type)\n )\n throw new Error('[mcx component]: not mcx json component: unknown type');\n if (json._meta.file_edit) await execEdit(json._meta.file_edit, ctx);\n delete (json as unknown as Record<string, string>)['_meta'];\n await writeFile(filePoint, JSON.stringify(json, null, 2));\n }\n}\nexport * from './vm';\nexport {\n ItemComponent,\n EntityComponent,\n BlockComponent,\n PNGImageComponent,\n SVGImageComponent,\n GIFImageComponent,\n JPGImageComponent,\n} from './lib';\n","import { mcxType, transformCtx, transformParseCtx } from '../types';\nimport * as t from '@babel/types';\nimport { generate } from '@babel/generator';\nimport config from './config';\nimport { _enable, _enableWithData, generateMain } from './utils';\nimport { EventComp, UIComp, AppComp } from './transform';\nimport { compileComponent } from '../mcx-component';\nexport async function _transform(ctx: transformCtx): Promise<string> {\n const _temp_main = generateMain(ctx.compiledCode.JSIR);\n const mainFn = (ctx.mainFn.body = _temp_main[0]);\n const prop: t.ObjectProperty[] = [];\n const app = _enableWithData<t.ObjectProperty[]>();\n const params: t.FunctionParameter[] = (ctx.mainFn.param = [\n t.identifier(config.paramCtx),\n ]);\n const parseCtx: transformParseCtx = {\n impBody: _temp_main[1],\n mainFn,\n prop,\n ctx: ctx,\n app,\n };\n let type: mcxType = 'app';\n\n // enable setup fn: use to generate setup\n const enableSetup = _enable();\n if (ctx.compiledCode.strLoc.Event.isLoad) {\n // handler event type mcx\n type = 'event';\n // enable export setup\n enableSetup();\n await EventComp(parseCtx);\n }\n if (ctx.compiledCode.strLoc.UI) {\n type = 'ui'; // ui mcx\n enableSetup();\n await UIComp(parseCtx);\n }\n if (\n Object.getOwnPropertyNames(ctx.compiledCode.strLoc.Component).length >= 1\n ) {\n type = 'component';\n await compileComponent(ctx.compiledCode, ctx);\n return `export default {type:'component',setup:null,app:{}}`;\n }\n if (type == 'app') {\n // enable setup export\n enableSetup();\n // find event mcx import\n await AppComp(parseCtx);\n }\n // add default export: type\n prop.push(t.objectProperty(t.identifier('type'), t.stringLiteral(type)));\n if (enableSetup.prototype.enable) {\n prop.push(\n t.objectProperty(\n t.identifier('setup'),\n t.identifier(config.scriptCompileFn),\n ),\n );\n }\n if (app.prototype.enable) {\n prop.push(\n t.objectProperty(\n t.identifier('app'),\n t.objectExpression(app.prototype.enable),\n ),\n );\n }\n // generate code\n const code = generate(\n // create program\n t.program([\n ...parseCtx.impBody,\n t.functionDeclaration(\n t.identifier(config.scriptCompileFn),\n params,\n t.blockStatement(mainFn),\n false,\n false,\n ),\n t.exportDefaultDeclaration(t.objectExpression(prop)),\n ]),\n ).code;\n return code;\n}\n","import type { TransformPluginContext } from 'rollup';\nimport { MCXCompileData } from '../compile-mcx/compiler/compileData';\nimport { CompileOpt } from '@mbler/mcx-types';\nimport { transformCtx } from '../types';\nimport { _transform } from './main';\nimport { program } from '@babel/types';\nimport type { RollupError } from 'rolldown';\nfunction createErrorProxy(err: unknown, id: string): RollupError {\n if (err instanceof Error) {\n return {\n ...err,\n message: `${err.message} (At ${id})`,\n };\n } else {\n return { message: String(err) };\n }\n}\nexport async function transform(\n code: MCXCompileData,\n cache: Map<string, MCXCompileData>,\n id: string,\n context: TransformPluginContext,\n opt: CompileOpt,\n output: transformCtx['output'],\n): Promise<string> {\n try {\n const scriptTag = code.raw.find(node => {\n return node.name == 'script';\n });\n if (!scriptTag)\n throw new Error('[transform check]: not found mcx script tag');\n const transformContext: transformCtx = {\n rollupContext: context,\n impAST: [],\n currentAST: program([]),\n opt,\n currentId: id,\n compiledCode: code,\n cache,\n scriptTag: scriptTag,\n mainFn: {\n param: [],\n body: [],\n },\n output,\n };\n const result = await _transform(transformContext);\n return result;\n } catch (err) {\n context.error(createErrorProxy(err, id));\n }\n}\n","import type { Plugin, TransformResult } from 'rollup';\nimport type { Plugin as RolldownPlugin } from 'rolldown';\nimport { CompileOpt } from '../types';\nimport { extname, isAbsolute, join } from 'node:path';\nimport { CompileError, compileMCXFn } from '.';\nimport { transform } from '../../transforms';\nimport type { MCXCompileData } from './compileData';\nimport { readFile, rm } from 'node:fs/promises';\nimport MagicString from 'magic-string';\nimport path from 'node:path';\nimport { transformCtx } from '../../types';\nimport ts from 'typescript';\nimport { readFileSync } from 'node:fs';\nimport {\n generateItemTextureJson,\n clearCachedOptions,\n} from '../../mcx-component';\nfunction createMcxPlugin(opt: CompileOpt, output: transformCtx['output']) {\n let cache: Map<string, MCXCompileData> = new Map();\n let tsconfig: ts.ParsedCommandLine;\n try {\n const configResult = ts.readConfigFile(opt.tsconfigPath, path => {\n try {\n return readFileSync(path, 'utf-8');\n } catch (error) {\n throw new Error(\n `Failed to read TypeScript config file at ${path}: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n });\n\n if (configResult.error) {\n throw new Error(\n `TypeScript configuration error: ${configResult.error.messageText}`,\n );\n }\n\n if (!configResult.config) {\n throw new Error(\n `Empty TypeScript configuration file at ${opt.tsconfigPath}`,\n );\n }\n\n // Parse the configuration with proper path resolution\n const parsedConfig = ts.parseJsonConfigFileContent(\n configResult.config,\n ts.sys,\n path.dirname(opt.tsconfigPath),\n undefined,\n opt.tsconfigPath,\n );\n\n if (parsedConfig.errors.length > 0) {\n const errorMessages = parsedConfig.errors\n .map(err => err.messageText)\n .join('\\n');\n throw new Error(\n `TypeScript configuration parsing errors:\\n${errorMessages}`,\n );\n }\n\n tsconfig = parsedConfig;\n } catch (error) {\n // Fallback to default configuration if reading fails\n console.warn(\n `Failed to load TypeScript config from ${opt.tsconfigPath}: ${error instanceof Error ? error.message : String(error)}`,\n );\n console.warn('Using default TypeScript configuration');\n tsconfig = {\n options: {},\n fileNames: [],\n errors: [],\n };\n }\n const resolveExtensions = ['', '.ts', '.mts', '.cts', '.js', '.mjs', '.cjs'];\n const indexExtensions = resolveExtensions.map(ext => '/index' + ext);\n\n async function tryResolvePath(filePath: string): Promise<string | null> {\n for (const idxExt of indexExtensions) {\n try {\n const fullPath = filePath + idxExt;\n await readFile(fullPath, 'utf-8');\n return fullPath;\n } catch {}\n }\n for (const ext of resolveExtensions) {\n try {\n const fullPath = filePath + ext;\n await readFile(fullPath, 'utf-8');\n return fullPath;\n } catch {}\n }\n return null;\n }\n\n async function resolvePackageExports(\n pkgDir: string,\n subPath: string,\n pkgJson: any,\n ): Promise<string | null> {\n const exports = pkgJson.exports;\n if (exports) {\n const subImport = subPath.startsWith('./') ? subPath : `./${subPath}`;\n if (typeof exports === 'object' && exports !== null) {\n if (exports[subImport]) {\n const target = exports[subImport];\n if (typeof target === 'string') {\n return path.join(pkgDir, target);\n } else if (typeof target === 'object' && target !== null) {\n if (target.import) {\n return path.join(pkgDir, target.import);\n }\n return path.join(\n pkgDir,\n target.default || (Object.values(target)[0] as string),\n );\n }\n }\n if (subImport.endsWith('/') || subImport.endsWith('/*')) {\n const dirMapping = subImport.slice(0, -1);\n for (const [key, value] of Object.entries(exports)) {\n if (key.startsWith(dirMapping) && key !== dirMapping) {\n const target = value as string;\n return path.join(pkgDir, target);\n }\n }\n }\n } else if (typeof exports === 'string') {\n return path.join(pkgDir, exports);\n }\n }\n return null;\n }\n\n return {\n name: 'mbler-mcx-core',\n async resolveId(id, imp) {\n const i = path.parse(id);\n if (i.dir.startsWith('.') || i.root) {\n if (imp) {\n const baseDir = path.dirname(imp);\n const resolved = await tryResolvePath(path.join(baseDir, id));\n if (resolved) return resolved;\n }\n return null;\n } else {\n const isScopedPackage = id.startsWith('@');\n const parts = id.split('/');\n const pkgName = isScopedPackage\n ? `${parts[0]}/${parts[1]}`\n : (parts[0] as string);\n const subPath = isScopedPackage\n ? parts.slice(2).join('/')\n : parts.slice(1).join('/');\n const d = path.join(opt.moduleDir, pkgName);\n let pkgJson: any;\n try {\n pkgJson = JSON.parse(\n await readFile(path.join(d, 'package.json'), 'utf-8'),\n );\n } catch (err: unknown) {\n const nodeErr = err as { code?: string; message?: string };\n if (!nodeErr.code || nodeErr.code === 'ENOENT') {\n throw new Error(\n `[mcx resolveId]: package.json not found for '${id}' at '${d}'`,\n );\n } else {\n throw new Error(\n `[mcx resolveId]: invalid package.json for '${id}': ${nodeErr.message}`,\n );\n }\n }\n if (subPath) {\n const fromExports = await resolvePackageExports(d, subPath, pkgJson);\n if (fromExports) return fromExports;\n const fromDist = await tryResolvePath(\n path.join(d, './dist', subPath),\n );\n if (fromDist) return fromDist;\n const fromRoot = await tryResolvePath(path.join(d, subPath));\n if (fromRoot) return fromRoot;\n return null;\n }\n return path.join(d, pkgJson.main);\n }\n },\n transform: async function (\n code: string,\n id: string,\n ): Promise<TransformResult> {\n const magic = new MagicString(code);\n const ext = extname(id).slice(1);\n const tsRegex = /^.+?\\.(ts|mts|cts)$/;\n if (ext == 'mcx') {\n let compileData: MCXCompileData;\n try {\n compileData = cache.has(id)\n ? (cache.get(id) as MCXCompileData)\n : compileMCXFn(code);\n cache.set(id, compileData);\n } catch (err: unknown) {\n if (err instanceof CompileError) {\n const error: CompileError = err;\n this.error(error.message, {\n column: error.loc.column,\n line: error.loc.line,\n });\n }\n this.error(\n err instanceof Error\n ? `${err.message} : ${err.stack}`\n : String(err),\n );\n return;\n }\n compileData.setFilePath(id);\n const compiledCode = await transform(\n compileData,\n cache,\n id,\n this,\n opt,\n output,\n );\n return {\n code: compiledCode,\n map: opt.sourcemap\n ? magic.generateMap({ hires: true, source: id })\n : void 0,\n };\n } else if (tsRegex.test(id)) {\n // Use the parsed TypeScript configuration\n const compiledCode = ts.transpileModule(code, {\n compilerOptions: tsconfig.options,\n fileName: id,\n }).outputText;\n return {\n code: compiledCode,\n map: opt.sourcemap\n ? magic.generateMap({ hires: true, source: id })\n : void 0,\n };\n }\n return null;\n },\n async buildEnd() {\n cache.clear();\n await generateItemTextureJson(output);\n clearCachedOptions();\n },\n buildStart() {\n cache = new Map();\n },\n } satisfies Plugin;\n}\n\nexport function rollupPlugin(\n opt: CompileOpt,\n output: transformCtx['output'],\n): Plugin {\n return createMcxPlugin(opt, output);\n}\n\nexport function rolldownPlugin(\n opt: CompileOpt,\n output: transformCtx['output'],\n): RolldownPlugin {\n return createMcxPlugin(opt, output) as unknown as RolldownPlugin;\n}\n","import type { TransformPluginContext } from 'rollup';\nimport type { MCXCompileData } from './compile-mcx/compiler/compileData';\nimport { CompileOpt } from '@mbler/mcx-types';\nimport * as t from '@babel/types';\ninterface BaseToken {\n data: string;\n type: TokenType;\n start: MCXPosition;\n end: MCXPosition;\n}\ninterface TagToken extends BaseToken {\n type: 'Tag';\n}\ninterface TagEndToken extends BaseToken {\n type: 'TagEnd';\n}\ninterface ContentToken extends BaseToken {\n type: 'Content';\n}\ninterface CommentToken extends BaseToken {\n type: 'Comment';\n}\ntype Token = TagToken | TagEndToken | ContentToken | CommentToken;\ntype AttributeMap = Record<string, string | boolean>;\n/** 统一的位置信息结构 */\ninterface MCXPosition {\n line: number;\n column: number;\n}\n\ninterface MCXLoc {\n start: MCXPosition;\n end: MCXPosition;\n}\ninterface ParsedTagNode {\n start: TagToken;\n name: string;\n arr: AttributeMap;\n content: (ParsedTagContentNode | ParsedTagNode | ParsedCommentNode)[];\n end: TagEndToken | null;\n loc: MCXLoc;\n type: 'TagNode';\n}\ninterface ParsedTagContentNode {\n data: string;\n type: 'TagContent';\n}\ninterface ParsedCommentNode {\n data: string;\n type: 'Comment';\n loc?: MCXLoc;\n}\ntype TokenType = 'Tag' | 'TagEnd' | 'Content' | 'Comment';\ntype PropValue = number | string | object;\ninterface PropNode {\n key: string;\n value: PropValue;\n type: 'PropChar' | 'PropObject';\n}\ntype JsType =\n | 'boolean'\n | 'number'\n | 'string'\n | 'object'\n | 'function'\n | 'bigint'\n | 'symbol';\ninterface TypeVerifyBody {\n [key: string]: JsType;\n}\nexport interface ParseReadFileOpt {\n delay: number;\n maxRetries: number;\n want: 'string' | 'object';\n}\nexport type ReadFileOpt = Partial<ParseReadFileOpt>;\nexport type mcxType = 'component' | 'event' | 'app' | 'ui';\nexport type {\n Token,\n ContentToken,\n TagEndToken,\n TagToken,\n CommentToken,\n BaseToken,\n AttributeMap,\n PropValue,\n TokenType,\n ParsedTagContentNode,\n ParsedCommentNode,\n TypeVerifyBody,\n JsType,\n PropNode,\n ParsedTagNode,\n MCXLoc,\n MCXPosition,\n};\nexport interface transformCtx {\n rollupContext: TransformPluginContext;\n compiledCode: MCXCompileData;\n cache: Map<string, MCXCompileData>;\n currentId: string;\n scriptTag: ParsedTagNode;\n currentAST: t.Program;\n mainFn: {\n param: t.FunctionParameter[];\n body: t.Statement[];\n };\n impAST: t.ImportDeclaration[];\n opt: CompileOpt;\n output: {\n dist: string;\n behavior: string;\n resources: string;\n };\n}\nexport interface transformParseCtx {\n prop: t.ObjectProperty[];\n impBody: t.ImportDeclaration[];\n mainFn: t.Statement[];\n ctx: transformCtx;\n app: ((data: t.ObjectProperty[]) => void) & {\n prototype: { enable: t.ObjectProperty[] | null };\n };\n}\n"],"mappings":"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,IAAI,UACR,8EACD;GAEH,MAAM,OAAO,OAAO;GACpB,IAAI,KAAK,cAAc,KAAK,KAAK,OAAO,KAAK,cAAc,UACzD,MAAM,IAAI,UACR,qFACD;GAEH,IAAI,KAAK,cAAc,KAAK,KAAK,OAAO,KAAK,cAAc,UACzD,MAAM,IAAI,UACR,qFACD;;EAKL,IAAI,OAAO,2CAA2C,KAAK,GAAG;GAC5D,IACE,OAAO,uCAAuC,cAAc,KAAK,MAChE,OAAO,OAAO,uCAAuC,cACpD,YACA,OAAO,uCAAuC,YAAY,IAE5D,MAAM,IAAI,UACR,yGACD;GAEH,IACE,OAAO,uCAAuC,cAAc,KAAK,MAChE,OAAO,OAAO,uCAAuC,cACpD,YACA,OAAO,uCAAuC,YAAY,IAE5D,MAAM,IAAI,UACR,yGACD;;EAGL,IAAI,OAAO,qCAAqC,KAAK,GAAG;GACtD,IACE,OAAO,iCAAiC,cAAc,KAAK,MAC1D,OAAO,OAAO,iCAAiC,cAC9C,YACA,OAAO,iCAAiC,YAAY,IAEtD,MAAM,IAAI,UACR,mGACD;GAEH,IACE,OAAO,iCAAiC,cAAc,KAAK,MAC1D,OAAO,OAAO,iCAAiC,cAC9C,YACA,OAAO,iCAAiC,YAAY,IAEtD,MAAM,IAAI,UACR,mGACD;;EAGL,IAAI,CAAC,KAAKA,KAAK,YACb,KAAKA,KAAK,aAAa,EAAE;EAE3B,KAAKA,KAAK,WAAW,yBAAyB;;;;;;;;;AC54PlD,MAAM,iBAAiB;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;;;;;;;AC1iBD,MAAM,mBAAmB;CACvB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AChED,MAAa,sBAAsB;CA7BjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAKiC;;;;;;;;;;;;;;ACUnC,SAAgB,eAEd,YAKwB;CACxB,OAAO;;AAk8DT,MAAM,aAAa;CAAC;CAAU;CAAY;CAAQ;CAAO;AAUzD,MAAM,gBAAgB,CAAC,MAAM,OAAO;AAGpC,MAAM,eAAe;AAkCrB,MAAM,mBAAmB;CACvB,OAAO;CACP,eAAe;CAChB;AAkCD,MAAM,uBAAuB;CAC3B,aAAa;CACb,UAAU;CACV,4BAA4B;CAC5B,eAAe;CAChB;;;AC7kED,IAAM,gBAAN,MAAoB;CAClB;CACA,QAA0C,EAAE;CAC5C,YAAY,KAA6B;EACvC,KAAKE,OAAO;;CAEd,SAA4B;EAC1B,IAAI,CAAC,KAAKA,MAAM,MAAM,IAAI,MAAM,yCAAyC;EACzE,MAAM,SAAqB;GACzB,gBAAgB;GAChB,OAAO;IACL,MAAM;IACN,WAAW,KAAKC,SAAS,EAAE;IAC5B;GACD,kBAAkB;IAChB,YAAY,EAAE;IACd,aAAa,EACX,YAAY,IACb;IACF;GACF;EACD,IACE,OAAO,KAAKD,KAAK,UAAU,YAC3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"}