\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t{value.length > 1 && \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
}\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t})}\n\t\t\t{(value && value.length > 2) && \n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
}\n\t\t>\n\t\treturn [null, suffix, body]\n\t},\n\n\tmap({ children, keys, config }, path, value, lang, states) {\n\t\tconst keyPath = new ModelPath(keysModel, new Path([hashString(path.toString())]))\n\t\tconst onAdd = () => {\n\t\t\tconst key = keyPath.get()\n\t\t\tpath.model.set(path.push(key), children.default())\n\t\t}\n\t\tconst blockState = config.validation?.validator === 'block_state_map' ? states?.[relativePath(path, config.validation.params.id).get()] : null\n\t\tconst keysSchema = blockState?.properties\n\t\t\t? StringNode(null!, { enum: Object.keys(blockState.properties ?? {}) })\n\t\t\t: keys\n\t\tif (blockState && path.last() === 'Properties') {\n\t\t\tif (typeof value !== 'object') value = {}\n\t\t\tconst properties = Object.entries(blockState.properties ?? {})\n\t\t\t\t.map(([key, values]) => [key, StringNode(null!, { enum: values })])\n\t\t\tObject.entries(blockState.properties ?? {}).forEach(([key, values]) => {\n\t\t\t\tif (typeof value[key] !== 'string') {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.expected_string')\n\t\t\t\t} else if (!values.includes(value[key])) {\n\t\t\t\t\tpath.model.errors.add(path.push(key), 'error.invalid_enum_option', value[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn ObjectNode(Object.fromEntries(properties)).hook(this, path, value, lang, states)\n\t\t}\n\t\tconst suffix = <>\n\t\t\t{keysSchema.hook(this, keyPath, keyPath.get() ?? '', lang, states)[1]}\n\t\t\t