/**
 * ModelTypes — реестр 3D-моделей (GLB) для Рублокс-редактора.
 *
 * Все модели — Kenney CC0, лежат в /public/kubikon-assets/models/<pack>/
 * где pack ∈ {dungeon, platformer, characters}.
 * GLB файл ссылается на ./Textures/colormap.png — поэтому каждый pack лежит
 * в своей подпапке со своей колормапой.
 */

const M = '/kubikon-assets/models';

/**
 * Создать запись о модели.
 * pack — имя подпапки ('dungeon' | 'platformer' | 'characters').
 * file — имя GLB без расширения.
 */
const m = (id, name, category, pack, file, opts = {}) => ({
    id, name, category,
    file: `${M}/${pack}/${file}.glb`,
    scale: opts.scale ?? 1,
    yOffset: opts.yOffset ?? 0,
    ...opts,
});

/**
 * Создать запись о модели с произвольным URL (вне kubikon-assets).
 * url — полный путь от корня сайта, например '/playground-kit/slide.glb'.
 */
const mu = (id, name, category, url, opts = {}) => ({
    id, name, category,
    file: url,
    scale: opts.scale ?? 1,
    yOffset: opts.yOffset ?? 0,
    ...opts,
});

/**
 * mc — «compound»-модель из нескольких частей. При постановке создаётся папка
 * и каждая part добавляется внутрь.
 *   id, name, category — как у обычных моделей
 *   parts: [
 *     { kind: 'mesh', model: 'id-простой-модели', dx, dy, dz, ry }
 *     { kind: 'primitive', type: 'cube'|'sphere'|..., sx, sy, sz, color, dx, dy, dz, rx, ry, rz }
 *   ]
 * Координаты dx/dy/dz — смещение относительно центра компаунда; ry — локальный yaw.
 */
const mc = (id, name, category, parts, opts = {}) => ({
    id, name, category,
    file: null,                  // нет основного GLB — модель собирается из частей
    scale: 1,
    parts,
    isCompound: true,
    ...opts,
});

export const MODEL_TYPES = [
    // === ПРИРОДА (platformer pack) ===
    m('tree',            'Дерево',          'Природа', 'platformer', 'tree', { targetHeight: 1.5 }),
    m('tree-pine',       'Сосна',           'Природа', 'platformer', 'tree-pine', { targetHeight: 4 }),
    m('tree-pine-small', 'Молодая сосна',   'Природа', 'platformer', 'tree-pine-small', { targetHeight: 2.5 }),
    m('tree-pine-snow',  'Снежная сосна',   'Природа', 'platformer', 'tree-pine-snow', { targetHeight: 4 }),
    m('tree-snow',       'Снежное дерево',  'Природа', 'platformer', 'tree-snow', { targetHeight: 4 }),
    m('flowers',         'Цветы',           'Природа', 'platformer', 'flowers', { targetHeight: 0.6 }),
    m('flowers-tall',    'Высокие цветы',   'Природа', 'platformer', 'flowers-tall', { targetHeight: 0.6 }),
    m('mushrooms',       'Грибы',           'Природа', 'platformer', 'mushrooms', { targetHeight: 0.6 }),
    m('plant',           'Растение',        'Природа', 'platformer', 'plant', { targetHeight: 0.7 }),
    m('grass-model',     'Трава',           'Природа', 'platformer', 'grass', { targetHeight: 0.7 }),
    m('hedge',           'Куст',            'Природа', 'platformer', 'hedge', { targetHeight: 0.7 }),
    m('rocks-platformer','Камни',           'Природа', 'platformer', 'rocks', { targetHeight: 1.5 }),
    m('rocks-dungeon',   'Скалы',           'Природа', 'dungeon',    'rocks', { targetHeight: 1.5 }),
    m('stones',          'Булыжники',       'Природа', 'dungeon',    'stones', { targetHeight: 0.8 }),

    // === ДВЕРИ И ВОРОТА ===
    m('door-rotate',         'Дверь',           'Двери', 'platformer', 'door-rotate', { targetHeight: 1.8 }),
    m('door-rotate-large',   'Большая дверь',   'Двери', 'platformer', 'door-rotate-large', { targetHeight: 1.8 }),
    m('door-open',           'Открытая дверь',  'Двери', 'platformer', 'door-open', { targetHeight: 1.8 }),
    m('door-large-open',     'Откр. бол. дверь','Двери', 'platformer', 'door-large-open', { targetHeight: 1.8 }),
    m('gate',                'Ворота',          'Двери', 'dungeon',    'gate', { targetHeight: 1.8 }),

    // === ЗАБОРЫ (platformer) ===
    m('fence-straight',     'Забор',           'Заборы', 'platformer', 'fence-straight', { targetHeight: 1.2 }),
    m('fence-corner',       'Угол забора',     'Заборы', 'platformer', 'fence-corner', { targetHeight: 1.2 }),
    m('fence-broken',       'Сломанный забор', 'Заборы', 'platformer', 'fence-broken', { targetHeight: 1.2 }),
    m('fence-rope',         'Верёвочный забор','Заборы', 'platformer', 'fence-rope', { targetHeight: 1.2 }),
    m('fence-low-straight', 'Низкий забор',    'Заборы', 'platformer', 'fence-low-straight', { targetHeight: 1.2 }),

    // === МЕБЕЛЬ И ИНТЕРЬЕР ===
    m('chest',          'Сундук',           'Мебель', 'dungeon',    'chest', { targetHeight: 1.2 }),
    m('barrel',         'Бочка',            'Мебель', 'dungeon',    'barrel', { targetHeight: 1.2 }),
    m('crate',          'Ящик',             'Мебель', 'platformer', 'crate', { targetHeight: 1.2 }),
    m('column',         'Колонна',          'Мебель', 'dungeon',    'column', { targetHeight: 1.2 }),
    m('banner',         'Знамя',            'Мебель', 'dungeon',    'banner', { targetHeight: 1.2 }),
    m('flag',           'Флаг',             'Мебель', 'platformer', 'flag', { targetHeight: 1.2 }),
    m('sign',           'Табличка',         'Мебель', 'platformer', 'sign', { targetHeight: 1.2 }),
    m('ladder',         'Лестница',         'Мебель', 'platformer', 'ladder', { targetHeight: 1.2 }),
    m('ladder-long',    'Длин. лестница',   'Мебель', 'platformer', 'ladder-long', { targetHeight: 1.2 }),
    m('ladder-broken',  'Слом. лестница',   'Мебель', 'platformer', 'ladder-broken', { targetHeight: 1.2 }),
    m('stairs',         'Ступеньки',        'Мебель', 'dungeon',    'stairs', { targetHeight: 1.2 }),
    m('wood-structure', 'Дерев. конструкция','Мебель','dungeon',    'wood-structure', { targetHeight: 1.2 }),
    m('wood-support',   'Дерев. опора',     'Мебель', 'dungeon',    'wood-support', { targetHeight: 1.2 }),
    m('wall',           'Стена',            'Мебель', 'dungeon',    'wall', { targetHeight: 1.2 }),
    m('wall-half',      'Половина стены',   'Мебель', 'dungeon',    'wall-half', { targetHeight: 1.2 }),
    m('wall-narrow',    'Узкая стена',      'Мебель', 'dungeon',    'wall-narrow', { targetHeight: 1.2 }),
    m('wall-opening',   'Стена с проёмом',  'Мебель', 'dungeon',    'wall-opening', { targetHeight: 1.2 }),
    m('floor',          'Пол',              'Мебель', 'dungeon',    'floor', { targetHeight: 1.2 }),
    m('floor-detail',   'Узорный пол',      'Мебель', 'dungeon',    'floor-detail', { targetHeight: 1.2 }),

    // === МЕХАНИЗМЫ (platformer) ===
    m('lever',             'Рычаг',           'Механизмы', 'platformer', 'lever', { targetHeight: 1 }),
    m('button-round',      'Кнопка круглая',  'Механизмы', 'platformer', 'button-round', { targetHeight: 1 }),
    m('button-square',     'Кнопка квадратная','Механизмы','platformer', 'button-square', { targetHeight: 1 }),
    m('spring',            'Пружина',         'Механизмы', 'platformer', 'spring', { targetHeight: 1 }),
    m('saw',               'Пила',            'Механизмы', 'platformer', 'saw', { targetHeight: 1 }),
    m('trap-dungeon',      'Ловушка',         'Механизмы', 'dungeon',    'trap', { targetHeight: 1 }),
    m('trap-spikes',       'Шипы',            'Механизмы', 'platformer', 'trap-spikes', { targetHeight: 1 }),
    m('trap-spikes-large', 'Большие шипы',    'Механизмы', 'platformer', 'trap-spikes-large', { targetHeight: 1 }),
    m('spike-block',       'Шипастый блок',   'Механизмы', 'platformer', 'spike-block', { targetHeight: 1 }),
    m('pipe',              'Труба',           'Механизмы', 'platformer', 'pipe', { targetHeight: 1 }),
    m('poles',             'Столбы',          'Механизмы', 'platformer', 'poles', { targetHeight: 1 }),
    m('bomb',              'Бомба',           'Механизмы', 'platformer', 'bomb', { targetHeight: 1 }),

    // === ПРЕДМЕТЫ ===
    m('coin',         'Монета',         'Предметы', 'dungeon',    'coin', { targetHeight: 0.6 }),
    m('coin-gold',    'Золотая монета', 'Предметы', 'platformer', 'coin-gold', { targetHeight: 0.6 }),
    m('coin-silver',  'Серебр. монета', 'Предметы', 'platformer', 'coin-silver', { targetHeight: 0.6 }),
    m('coin-bronze',  'Бронз. монета',  'Предметы', 'platformer', 'coin-bronze', { targetHeight: 0.6 }),
    m('jewel',        'Драгоценность',  'Предметы', 'platformer', 'jewel', { targetHeight: 0.6 }),
    m('star',         'Звезда',         'Предметы', 'platformer', 'star', { targetHeight: 0.6 }),
    m('heart',        'Сердце',         'Предметы', 'platformer', 'heart', { targetHeight: 0.6 }),
    m('key',          'Ключ',           'Предметы', 'platformer', 'key', { targetHeight: 0.6 }),
    m('lock',         'Замок',          'Предметы', 'platformer', 'lock', { targetHeight: 0.6 }),
    m('arrow',        'Стрела',         'Предметы', 'platformer', 'arrow', { targetHeight: 0.6 }),

    // === ОРУЖИЕ (dungeon) ===
    m('weapon-sword',     'Меч',           'Оружие', 'dungeon', 'weapon-sword', { targetHeight: 1 }),
    m('weapon-spear',     'Копьё',         'Оружие', 'dungeon', 'weapon-spear', { targetHeight: 1.2 }),
    m('shield-round',     'Круглый щит',   'Оружие', 'dungeon', 'shield-round', { targetHeight: 1 }),
    m('shield-rectangle', 'Прямоуг. щит',  'Оружие', 'dungeon', 'shield-rectangle', { targetHeight: 1 }),

    // === ВРАГИ (со встроенным AI) ===
    // Эти объекты имеют поведение в Play-режиме: AI, спавн, урон.
    // gameplay содержит description для tooltip и defaultParams — настройки
    // которые можно менять в Inspector.
    m('zombie', 'Зомби', 'Враги', 'characters', 'character-c', {
        targetHeight: 1.7,
        // Скрыт из палитры — одиночный AI-зомби нестабилен (нерешённый баг с
        // y-провалом на GLB-террейне, см. feedback_babylon про оптимизации).
        // Используйте «Спавнер зомби» вместо одиночной модели.
        hidden: true,
        gameplay: {
            type: 'zombie',
            isZombie: true,
            description: 'Враг с AI: бродит по миру, атакует игрока при приближении.',
            defaultParams: {
                hp: 50,
                speed: 2.2,            // м/с в погоне
                wanderSpeed: 1.3,      // м/с при патрулировании
                detectionRadius: 16,   // дистанция обнаружения игрока
                attackRange: 1.8,      // дистанция атаки
                attackDamage: 10,      // урон за удар
                attackCooldown: 1.0,   // секунд между ударами
                wanderRadius: 14,      // радиус патрулирования
            },
        },
    }),
    // Спавнер — синтетическая модель: вместо GLB ModelManager рисует диск-цилиндр.
    // file=null + synthetic=true распознаётся в ModelManager._buildSyntheticInstance.
    m('zombie-spawner', 'Спавнер зомби', 'Враги', 'characters', 'character-d', {
        targetHeight: 0.3,
        synthetic: 'spawner-disk',
        gameplay: {
            type: 'zombie-spawner',
            isZombieSpawner: true,
            description: 'Спавнит зомби с заданным интервалом, поддерживая лимит живых.',
            defaultParams: {
                maxAlive: 10,
                spawnInterval: 10,
                radius: 1,             // 1 блок
                zombieModelType: 'character-c',
                zombieHp: 50,
                zombieSpeed: 2.2,
                zombieDamage: 10,
            },
        },
    }),

    // === ПЕРСОНАЖИ ===
    m('character-a', 'Стив',    'Персонажи', 'characters', 'character-a', { targetHeight: 1.7 }),
    m('character-b', 'Алекс',   'Персонажи', 'characters', 'character-b', { targetHeight: 1.7 }),
    m('character-c', 'Виктор',  'Персонажи', 'characters', 'character-c', { targetHeight: 1.7 }),
    m('character-d', 'Ирина',   'Персонажи', 'characters', 'character-d', { targetHeight: 1.7 }),
    m('character-e', 'Паша',    'Персонажи', 'characters', 'character-e', { targetHeight: 1.7 }),
    m('character-f', 'Юля',     'Персонажи', 'characters', 'character-f', { targetHeight: 1.7 }),
    m('character-g', 'Андрей',  'Персонажи', 'characters', 'character-g', { targetHeight: 1.7 }),

    // === KENNEY PACKS — auto-generated ===
    // === Природа === (50)
    m('nature-bridge-center-stone', 'Мост центр Камень', 'Природа', 'nature-kit', 'bridge_center_stone', { targetHeight: 1.5 }),
    m('nature-bridge-center-stoneround', 'Мост центр кам. круглый', 'Природа', 'nature-kit', 'bridge_center_stoneRound', { targetHeight: 1.5 }),
    m('nature-bridge-center-wood', 'Середина деревянного моста', 'Природа', 'nature-kit', 'bridge_center_wood', { targetHeight: 1.5 }),
    m('nature-bridge-center-woodround', 'Мост центр дер. круглый', 'Природа', 'nature-kit', 'bridge_center_woodRound', { targetHeight: 1.5 }),
    m('nature-bridge-side-stone', 'Мост бок Камень', 'Природа', 'nature-kit', 'bridge_side_stone', { targetHeight: 1.5 }),
    m('nature-bridge-side-stoneround', 'Мост бок кам. круглый', 'Природа', 'nature-kit', 'bridge_side_stoneRound', { targetHeight: 1.5 }),
    m('nature-bridge-side-wood', 'Край деревянного моста', 'Природа', 'nature-kit', 'bridge_side_wood', { targetHeight: 1.5 }),
    m('nature-bridge-side-woodround', 'Мост бок дер. круглый', 'Природа', 'nature-kit', 'bridge_side_woodRound', { targetHeight: 1.5 }),
    m('nature-bridge-stone', 'Мост Камень', 'Природа', 'nature-kit', 'bridge_stone', { targetHeight: 1.5 }),
    m('nature-bridge-stonenarrow', 'Каменный узкий мост', 'Природа', 'nature-kit', 'bridge_stoneNarrow', { targetHeight: 1.5 }),
    m('nature-bridge-stoneround', 'Каменный круглый мост', 'Природа', 'nature-kit', 'bridge_stoneRound', { targetHeight: 1.5 }),
    m('nature-bridge-stoneroundnarrow', 'Каменный круглый узкий мост', 'Природа', 'nature-kit', 'bridge_stoneRoundNarrow', { targetHeight: 1.5 }),
    m('nature-bridge-wood', 'Деревянный мост', 'Природа', 'nature-kit', 'bridge_wood', { targetHeight: 1.5 }),
    m('nature-bridge-woodnarrow', 'Деревянный узкий мост', 'Природа', 'nature-kit', 'bridge_woodNarrow', { targetHeight: 1.5 }),
    m('nature-bridge-woodround', 'Деревянный круглый мост', 'Природа', 'nature-kit', 'bridge_woodRound', { targetHeight: 1.5 }),
    m('nature-bridge-woodroundnarrow', 'Деревянный круглый узкий мост', 'Природа', 'nature-kit', 'bridge_woodRoundNarrow', { targetHeight: 1.5 }),
    m('nature-cactus-short', 'Кактус низкий', 'Природа', 'nature-kit', 'cactus_short', { targetHeight: 1.5 }),
    m('nature-cactus-tall', 'Кактус высокий', 'Природа', 'nature-kit', 'cactus_tall', { targetHeight: 2.5 }),
    m('nature-campfire-logs', 'Костёр (дрова)', 'Природа', 'nature-kit', 'campfire_logs', { targetHeight: 0.6 }),
    m('nature-campfire-stones', 'Костёр Булыжники', 'Природа', 'nature-kit', 'campfire_stones', { targetHeight: 0.6 }),
    m('nature-cliff-blockcave-rock', 'Скала пещерный блок Камень', 'Природа', 'nature-kit', 'cliff_blockCave_rock', { targetHeight: 1.5 }),
    m('nature-cliff-blockcave-stone', 'Скала пещерный блок Камень', 'Природа', 'nature-kit', 'cliff_blockCave_stone', { targetHeight: 1.5 }),
    m('nature-cliff-blockdiagonal-rock', 'Скала диагональный блок Камень', 'Природа', 'nature-kit', 'cliff_blockDiagonal_rock', { targetHeight: 1.5 }),
    m('nature-cliff-blockdiagonal-stone', 'Скала диагональный блок Камень', 'Природа', 'nature-kit', 'cliff_blockDiagonal_stone', { targetHeight: 1.5 }),
    m('nature-cliff-blockhalf-rock', 'Скала полублок Камень', 'Природа', 'nature-kit', 'cliff_blockHalf_rock', { targetHeight: 1.5 }),
    m('nature-cliff-blockhalf-stone', 'Скала полублок Камень', 'Природа', 'nature-kit', 'cliff_blockHalf_stone', { targetHeight: 1.5 }),
    m('nature-cliff-blockquarter-rock', 'Скала четверть-блок Камень', 'Природа', 'nature-kit', 'cliff_blockQuarter_rock', { targetHeight: 1.5 }),
    m('nature-cliff-blockquarter-stone', 'Скала четверть-блок Камень', 'Природа', 'nature-kit', 'cliff_blockQuarter_stone', { targetHeight: 1.5 }),
    m('nature-cliff-blockslopehalfwalls-rock', 'Скала наклон полублок со стенами Камень', 'Природа', 'nature-kit', 'cliff_blockSlopeHalfWalls_rock', { targetHeight: 1.5 }),
    m('nature-cliff-blockslopehalfwalls-stone', 'Скала наклон полублок со стенами Камень', 'Природа', 'nature-kit', 'cliff_blockSlopeHalfWalls_stone', { targetHeight: 1.5 }),
    m('nature-cliff-blockslopewalls-rock', 'Скала наклон блок со стенами Камень', 'Природа', 'nature-kit', 'cliff_blockSlopeWalls_rock', { targetHeight: 1.5 }),
    m('nature-cliff-blockslopewalls-stone', 'Скала наклон блок со стенами Камень', 'Природа', 'nature-kit', 'cliff_blockSlopeWalls_stone', { targetHeight: 1.5 }),
    m('nature-cliff-blockslope-rock', 'Скала наклон Камень', 'Природа', 'nature-kit', 'cliff_blockSlope_rock', { targetHeight: 1.5 }),
    m('nature-cliff-blockslope-stone', 'Скала наклон Камень', 'Природа', 'nature-kit', 'cliff_blockSlope_stone', { targetHeight: 1.5 }),
    m('nature-cliff-block-rock', 'Скала блок Камень', 'Природа', 'nature-kit', 'cliff_block_rock', { targetHeight: 1.5 }),
    m('nature-cliff-block-stone', 'Скала блок Камень', 'Природа', 'nature-kit', 'cliff_block_stone', { targetHeight: 1.5 }),
    m('nature-cliff-cave-rock', 'Скала пещера Камень', 'Природа', 'nature-kit', 'cliff_cave_rock', { targetHeight: 1.5 }),
    m('nature-cliff-cave-stone', 'Скала пещера Камень', 'Природа', 'nature-kit', 'cliff_cave_stone', { targetHeight: 1.5 }),
    m('nature-cliff-cornerinnerlarge-rock', 'Скала внутр. угол большой Камень', 'Природа', 'nature-kit', 'cliff_cornerInnerLarge_rock', { targetHeight: 1.5 }),
    m('nature-cliff-cornerinnerlarge-stone', 'Скала внутр. угол большой Камень', 'Природа', 'nature-kit', 'cliff_cornerInnerLarge_stone', { targetHeight: 1.5 }),
    m('nature-cliff-cornerinnertop-rock', 'Скала внутр. верхний угол Камень', 'Природа', 'nature-kit', 'cliff_cornerInnerTop_rock', { targetHeight: 1.5 }),
    m('nature-cliff-cornerinnertop-stone', 'Скала внутр. верхний угол Камень', 'Природа', 'nature-kit', 'cliff_cornerInnerTop_stone', { targetHeight: 1.5 }),
    m('nature-cliff-cornerinner-rock', 'Скала внутр. угол Камень', 'Природа', 'nature-kit', 'cliff_cornerInner_rock', { targetHeight: 1.5 }),
    m('nature-cliff-cornerinner-stone', 'Скала внутр. угол Камень', 'Природа', 'nature-kit', 'cliff_cornerInner_stone', { targetHeight: 1.5 }),
    m('nature-cliff-cornerlarge-rock', 'Скала угол большой Камень', 'Природа', 'nature-kit', 'cliff_cornerLarge_rock', { targetHeight: 1.5 }),
    m('nature-cliff-cornerlarge-stone', 'Скала угол большой Камень', 'Природа', 'nature-kit', 'cliff_cornerLarge_stone', { targetHeight: 1.5 }),
    m('nature-cliff-cornertop-rock', 'Скала верхний угол Камень', 'Природа', 'nature-kit', 'cliff_cornerTop_rock', { targetHeight: 1.5 }),
    m('nature-cliff-cornertop-stone', 'Скала верхний угол Камень', 'Природа', 'nature-kit', 'cliff_cornerTop_stone', { targetHeight: 1.5 }),
    m('nature-cliff-corner-rock', 'Скала угол Камень', 'Природа', 'nature-kit', 'cliff_corner_rock', { targetHeight: 1.5 }),
    m('nature-cliff-corner-stone', 'Скала угол Камень', 'Природа', 'nature-kit', 'cliff_corner_stone', { targetHeight: 1.5 }),

    // === Транспорт === (47)
    m('car-ambulance', 'Скорая', 'Транспорт', 'car-kit', 'ambulance', { targetHeight: 2.5 }),
    m('car-delivery-flat', 'Доставка плоская', 'Транспорт', 'car-kit', 'delivery-flat', { targetHeight: 2.2 }),
    m('car-delivery', 'Фургон', 'Транспорт', 'car-kit', 'delivery', { targetHeight: 2.2 }),
    m('car-firetruck', 'Пожарная', 'Транспорт', 'car-kit', 'firetruck', { targetHeight: 2.5 }),
    m('car-garbage-truck', 'Мусоровоз', 'Транспорт', 'car-kit', 'garbage-truck', { targetHeight: 2.5 }),
    m('car-hatchback-sports', 'Хэтчбек спорт', 'Транспорт', 'car-kit', 'hatchback-sports', { targetHeight: 1.5 }),
    m('car-kart-oobi', 'Карт ооби', 'Транспорт', 'car-kit', 'kart-oobi', { targetHeight: 1.2 }),
    m('car-kart-oodi', 'Карт ооди', 'Транспорт', 'car-kit', 'kart-oodi', { targetHeight: 1.2 }),
    m('car-kart-ooli', 'Карт ооли', 'Транспорт', 'car-kit', 'kart-ooli', { targetHeight: 1.2 }),
    m('car-kart-oopi', 'Карт оопи', 'Транспорт', 'car-kit', 'kart-oopi', { targetHeight: 1.2 }),
    m('car-kart-oozi', 'Карт оози', 'Транспорт', 'car-kit', 'kart-oozi', { targetHeight: 1.2 }),
    m('car-police', 'Полицейская', 'Транспорт', 'car-kit', 'police', { targetHeight: 1.5 }),
    m('car-race-future', 'Болид будущего', 'Транспорт', 'car-kit', 'race-future', { targetHeight: 1.5 }),
    m('car-race', 'Гоночная', 'Транспорт', 'car-kit', 'race', { targetHeight: 1.5 }),
    m('car-sedan-sports', 'Седан спорт', 'Транспорт', 'car-kit', 'sedan-sports', { targetHeight: 1.5 }),
    m('car-sedan', 'Седан', 'Транспорт', 'car-kit', 'sedan', { targetHeight: 1.5 }),
    m('car-suv-luxury', 'Внедорожник люкс', 'Транспорт', 'car-kit', 'suv-luxury', { targetHeight: 1.8 }),
    m('car-suv', 'Внедорожник', 'Транспорт', 'car-kit', 'suv', { targetHeight: 1.8 }),
    m('car-taxi', 'Такси', 'Транспорт', 'car-kit', 'taxi', { targetHeight: 1.5 }),
    m('car-tractor-police', 'Трактор полиции', 'Транспорт', 'car-kit', 'tractor-police', { targetHeight: 2.2 }),
    m('car-tractor-shovel', 'Трактор-погрузчик', 'Транспорт', 'car-kit', 'tractor-shovel', { targetHeight: 2.2 }),
    m('car-tractor', 'Трактор', 'Транспорт', 'car-kit', 'tractor', { targetHeight: 2.2 }),
    m('car-truck-flat', 'Грузовик плоский', 'Транспорт', 'car-kit', 'truck-flat', { targetHeight: 2.2 }),
    m('car-truck', 'Грузовик', 'Транспорт', 'car-kit', 'truck', { targetHeight: 2.2 }),
    m('car-van', 'Минивэн', 'Транспорт', 'car-kit', 'van', { targetHeight: 1.8 }),
    m('car-wheel-dark', 'Колесо тёмное', 'Транспорт', 'car-kit', 'wheel-dark', { targetHeight: 0.5 }),
    m('car-wheel-default', 'Колесо обычное', 'Транспорт', 'car-kit', 'wheel-default', { targetHeight: 0.5 }),
    m('car-wheel-racing', 'Колесо гоночное', 'Транспорт', 'car-kit', 'wheel-racing', { targetHeight: 0.5 }),
    m('car-wheel-tractor-back', 'Колесо Трактор зад', 'Транспорт', 'car-kit', 'wheel-tractor-back', { targetHeight: 2.2 }),
    m('car-wheel-tractor-dark-back', 'Колесо Трактор тёмный зад', 'Транспорт', 'car-kit', 'wheel-tractor-dark-back', { targetHeight: 2.2 }),
    m('car-wheel-tractor-dark-front', 'Колесо Трактор тёмный перед', 'Транспорт', 'car-kit', 'wheel-tractor-dark-front', { targetHeight: 2.2 }),
    m('car-wheel-tractor-front', 'Колесо Трактор перед', 'Транспорт', 'car-kit', 'wheel-tractor-front', { targetHeight: 2.2 }),
    m('car-wheel-truck', 'Колесо Грузовик', 'Транспорт', 'car-kit', 'wheel-truck', { targetHeight: 2.2 }),
    m('toy-car-vehicle-drag-racer', 'Vehicle тяга гонщик', 'Транспорт', 'toy-car-kit', 'vehicle-drag-racer', { targetHeight: 1.5 }),
    m('toy-car-vehicle-monster-truck', 'Vehicle monster Грузовик', 'Транспорт', 'toy-car-kit', 'vehicle-monster-truck', { targetHeight: 2.2 }),
    m('toy-car-vehicle-racer-low', 'Vehicle гонщик низкий', 'Транспорт', 'toy-car-kit', 'vehicle-racer-low', { targetHeight: 1.5 }),
    m('toy-car-vehicle-racer', 'Vehicle гонщик', 'Транспорт', 'toy-car-kit', 'vehicle-racer', { targetHeight: 1.5 }),
    m('toy-car-vehicle-suv', 'Vehicle Внедорожник', 'Транспорт', 'toy-car-kit', 'vehicle-suv', { targetHeight: 1.8 }),
    m('toy-car-vehicle-truck', 'Vehicle Грузовик', 'Транспорт', 'toy-car-kit', 'vehicle-truck', { targetHeight: 2.2 }),
    m('toy-car-vehicle-vintage-racer', 'Vehicle vintage гонщик', 'Транспорт', 'toy-car-kit', 'vehicle-vintage-racer', { targetHeight: 1.5 }),
    m('toy-car-wheel-large', 'Колесо большой', 'Транспорт', 'toy-car-kit', 'wheel-large', { targetHeight: 0.5 }),
    m('toy-car-wheel-medium', 'Колесо средний', 'Транспорт', 'toy-car-kit', 'wheel-medium', { targetHeight: 0.5 }),
    m('toy-car-wheel-small', 'Колесо маленький', 'Транспорт', 'toy-car-kit', 'wheel-small', { targetHeight: 0.5 }),
    m('racing-racecargreen', 'Гоночная машина зелёный', 'Транспорт', 'racing-kit', 'raceCarGreen', { targetHeight: 1.5 }),
    m('racing-racecarorange', 'Гоночная машина оранжевый', 'Транспорт', 'racing-kit', 'raceCarOrange', { targetHeight: 1.5 }),
    m('racing-racecarred', 'Гоночная машина красный', 'Транспорт', 'racing-kit', 'raceCarRed', { targetHeight: 1.5 }),
    m('racing-racecarwhite', 'Гоночная машина белый', 'Транспорт', 'racing-kit', 'raceCarWhite', { targetHeight: 1.5 }),

    // === Лодки === (43)
    m('watercraft-boat-fan', 'Воздушная лодка', 'Лодки', 'watercraft-kit', 'boat-fan', { targetHeight: 1.8 }),
    m('watercraft-boat-fishing-small', 'Маленькая рыболовная лодка', 'Лодки', 'watercraft-kit', 'boat-fishing-small', { targetHeight: 1.8 }),
    m('watercraft-boat-house-a', 'Плавучий дом А', 'Лодки', 'watercraft-kit', 'boat-house-a', { targetHeight: 1.8 }),
    m('watercraft-boat-house-b', 'Плавучий дом Б', 'Лодки', 'watercraft-kit', 'boat-house-b', { targetHeight: 1.8 }),
    m('watercraft-boat-house-c', 'Плавучий дом В', 'Лодки', 'watercraft-kit', 'boat-house-c', { targetHeight: 1.8 }),
    m('watercraft-boat-house-d', 'Плавучий дом Г', 'Лодки', 'watercraft-kit', 'boat-house-d', { targetHeight: 1.8 }),
    m('watercraft-boat-row-large', 'Большая гребная лодка', 'Лодки', 'watercraft-kit', 'boat-row-large', { targetHeight: 1.8 }),
    m('watercraft-boat-row-small', 'Маленькая гребная лодка', 'Лодки', 'watercraft-kit', 'boat-row-small', { targetHeight: 1.8 }),
    m('watercraft-boat-sail-a', 'Парусник «Галеон»', 'Лодки', 'watercraft-kit', 'boat-sail-a', { targetHeight: 1.8 }),
    m('watercraft-boat-sail-b', 'Парусник «Бриг»', 'Лодки', 'watercraft-kit', 'boat-sail-b', { targetHeight: 1.8 }),
    m('watercraft-boat-speed-a', 'Скоростной катер «Молния»', 'Лодки', 'watercraft-kit', 'boat-speed-a', { targetHeight: 1.8 }),
    m('watercraft-boat-speed-b', 'Скоростной катер «Шторм»', 'Лодки', 'watercraft-kit', 'boat-speed-b', { targetHeight: 1.8 }),
    m('watercraft-boat-speed-c', 'Скоростной катер «Акула»', 'Лодки', 'watercraft-kit', 'boat-speed-c', { targetHeight: 1.8 }),
    m('watercraft-boat-speed-d', 'Скоростной катер «Барракуда»', 'Лодки', 'watercraft-kit', 'boat-speed-d', { targetHeight: 1.8 }),
    m('watercraft-boat-speed-e', 'Скоростной катер «Дельфин»', 'Лодки', 'watercraft-kit', 'boat-speed-e', { targetHeight: 1.8 }),
    m('watercraft-boat-speed-f', 'Скоростной катер «Стрела»', 'Лодки', 'watercraft-kit', 'boat-speed-f', { targetHeight: 1.8 }),
    m('watercraft-boat-speed-g', 'Скоростной катер «Орка»', 'Лодки', 'watercraft-kit', 'boat-speed-g', { targetHeight: 1.8 }),
    m('watercraft-boat-speed-h', 'Скоростной катер «Кит»', 'Лодки', 'watercraft-kit', 'boat-speed-h', { targetHeight: 1.8 }),
    m('watercraft-boat-speed-i', 'Скоростной катер «Парус»', 'Лодки', 'watercraft-kit', 'boat-speed-i', { targetHeight: 1.8 }),
    m('watercraft-boat-speed-j', 'Скоростной катер «Нептун»', 'Лодки', 'watercraft-kit', 'boat-speed-j', { targetHeight: 1.8 }),
    m('watercraft-boat-tow-a', 'Лодка tow a', 'Лодки', 'watercraft-kit', 'boat-tow-a', { targetHeight: 1.8 }),
    m('watercraft-boat-tow-b', 'Лодка tow b', 'Лодки', 'watercraft-kit', 'boat-tow-b', { targetHeight: 1.8 }),
    m('watercraft-boat-tug-a', 'Лодка tug a', 'Лодки', 'watercraft-kit', 'boat-tug-a', { targetHeight: 1.8 }),
    m('watercraft-boat-tug-b', 'Лодка tug b', 'Лодки', 'watercraft-kit', 'boat-tug-b', { targetHeight: 1.8 }),
    m('watercraft-boat-tug-c', 'Лодка tug c', 'Лодки', 'watercraft-kit', 'boat-tug-c', { targetHeight: 1.8 }),
    m('watercraft-ship-cargo-a', 'Корабль грузовой a', 'Лодки', 'watercraft-kit', 'ship-cargo-a', { targetHeight: 4 }),
    m('watercraft-ship-cargo-b', 'Корабль грузовой b', 'Лодки', 'watercraft-kit', 'ship-cargo-b', { targetHeight: 4 }),
    m('watercraft-ship-cargo-c', 'Корабль грузовой c', 'Лодки', 'watercraft-kit', 'ship-cargo-c', { targetHeight: 4 }),
    m('watercraft-ship-large', 'Корабль большой', 'Лодки', 'watercraft-kit', 'ship-large', { targetHeight: 4 }),
    m('watercraft-ship-ocean-liner-small', 'Корабль ocean liner маленький', 'Лодки', 'watercraft-kit', 'ship-ocean-liner-small', { targetHeight: 4 }),
    m('watercraft-ship-ocean-liner', 'Корабль ocean liner', 'Лодки', 'watercraft-kit', 'ship-ocean-liner', { targetHeight: 4 }),
    m('watercraft-ship-small-ghost', 'Корабль маленький Призрак', 'Лодки', 'watercraft-kit', 'ship-small-ghost', { targetHeight: 4 }),
    m('watercraft-ship-small', 'Корабль маленький', 'Лодки', 'watercraft-kit', 'ship-small', { targetHeight: 4 }),
    m('pirate-boat-row-large', 'Большая гребная лодка', 'Лодки', 'pirate-kit', 'boat-row-large', { targetHeight: 1.8 }),
    m('pirate-boat-row-small', 'Маленькая гребная лодка', 'Лодки', 'pirate-kit', 'boat-row-small', { targetHeight: 1.8 }),
    m('pirate-ship-ghost', 'Корабль Призрак', 'Лодки', 'pirate-kit', 'ship-ghost', { targetHeight: 4 }),
    m('pirate-ship-large', 'Корабль большой', 'Лодки', 'pirate-kit', 'ship-large', { targetHeight: 4 }),
    m('pirate-ship-medium', 'Корабль средний', 'Лодки', 'pirate-kit', 'ship-medium', { targetHeight: 4 }),
    m('pirate-ship-pirate-large', 'Пиратский корабль большой', 'Лодки', 'pirate-kit', 'ship-pirate-large', { targetHeight: 4 }),
    m('pirate-ship-pirate-medium', 'Пиратский корабль средний', 'Лодки', 'pirate-kit', 'ship-pirate-medium', { targetHeight: 4 }),
    m('pirate-ship-pirate-small', 'Пиратский корабль маленький', 'Лодки', 'pirate-kit', 'ship-pirate-small', { targetHeight: 4 }),
    m('pirate-ship-small', 'Корабль маленький', 'Лодки', 'pirate-kit', 'ship-small', { targetHeight: 4 }),
    m('pirate-ship-wreck', 'Корабль Обломок', 'Лодки', 'pirate-kit', 'ship-wreck', { targetHeight: 4 }),

    // === Sci-Fi === (50)
    m('space-alien', 'Пришелец', 'Sci-Fi', 'space-kit', 'alien', { targetHeight: 1.7 }),
    m('space-astronauta', 'Космонавт А', 'Sci-Fi', 'space-kit', 'astronautA', { targetHeight: 1.7 }),
    m('space-astronautb', 'Космонавт Б', 'Sci-Fi', 'space-kit', 'astronautB', { targetHeight: 1.7 }),
    m('space-barrel', 'Бочка', 'Sci-Fi', 'space-kit', 'barrel', { targetHeight: 1 }),
    m('space-barrels', 'Бочки', 'Sci-Fi', 'space-kit', 'barrels', { targetHeight: 1 }),
    m('space-barrels-rail', 'Бочки Рельс', 'Sci-Fi', 'space-kit', 'barrels_rail', { targetHeight: 1 }),
    m('space-bones', 'Кости', 'Sci-Fi', 'space-kit', 'bones', { targetHeight: 2 }),
    m('space-chimney', 'Дымоход', 'Sci-Fi', 'space-kit', 'chimney', { targetHeight: 2 }),
    m('space-chimney-detailed', 'Дымоход детальный', 'Sci-Fi', 'space-kit', 'chimney_detailed', { targetHeight: 2 }),
    m('space-corridor', 'Коридор', 'Sci-Fi', 'space-kit', 'corridor', { targetHeight: 2 }),
    m('space-corridor-corner', 'Коридор угол', 'Sci-Fi', 'space-kit', 'corridor_corner', { targetHeight: 2 }),
    m('space-corridor-cornerround', 'Коридор угол круглый', 'Sci-Fi', 'space-kit', 'corridor_cornerRound', { targetHeight: 2 }),
    m('space-corridor-cornerroundwindow', 'Коридор угол круглый Окно', 'Sci-Fi', 'space-kit', 'corridor_cornerRoundWindow', { targetHeight: 2 }),
    m('space-corridor-cross', 'Коридор крест', 'Sci-Fi', 'space-kit', 'corridor_cross', { targetHeight: 2 }),
    m('space-corridor-detailed', 'Коридор детальный', 'Sci-Fi', 'space-kit', 'corridor_detailed', { targetHeight: 2 }),
    m('space-corridor-end', 'Коридор конец', 'Sci-Fi', 'space-kit', 'corridor_end', { targetHeight: 2 }),
    m('space-corridor-open', 'Коридор открытый', 'Sci-Fi', 'space-kit', 'corridor_open', { targetHeight: 2 }),
    m('space-corridor-roof', 'Коридор Крыша', 'Sci-Fi', 'space-kit', 'corridor_roof', { targetHeight: 2 }),
    m('space-corridor-split', 'Коридор split', 'Sci-Fi', 'space-kit', 'corridor_split', { targetHeight: 2 }),
    m('space-corridor-wall', 'Коридор Стена', 'Sci-Fi', 'space-kit', 'corridor_wall', { targetHeight: 2 }),
    m('space-corridor-wallcorner', 'Коридор Стена угол', 'Sci-Fi', 'space-kit', 'corridor_wallCorner', { targetHeight: 2 }),
    m('space-corridor-window', 'Коридор Окно', 'Sci-Fi', 'space-kit', 'corridor_window', { targetHeight: 2 }),
    m('space-corridor-windowclosed', 'Коридор Окно закрытый', 'Sci-Fi', 'space-kit', 'corridor_windowClosed', { targetHeight: 2 }),
    m('space-craft-cargoa', 'Корабль грузовой A', 'Sci-Fi', 'space-kit', 'craft_cargoA', { targetHeight: 3 }),
    m('space-craft-cargob', 'Корабль грузовой B', 'Sci-Fi', 'space-kit', 'craft_cargoB', { targetHeight: 3 }),
    m('space-craft-miner', 'Рудный корабль', 'Sci-Fi', 'space-kit', 'craft_miner', { targetHeight: 3 }),
    m('space-craft-racer', 'Гоночный корабль', 'Sci-Fi', 'space-kit', 'craft_racer', { targetHeight: 3 }),
    m('space-craft-speedera', 'Корабль Спидер A', 'Sci-Fi', 'space-kit', 'craft_speederA', { targetHeight: 3 }),
    m('space-craft-speederb', 'Корабль Спидер B', 'Sci-Fi', 'space-kit', 'craft_speederB', { targetHeight: 3 }),
    m('space-craft-speederc', 'Корабль Спидер C', 'Sci-Fi', 'space-kit', 'craft_speederC', { targetHeight: 3 }),
    m('space-craft-speederd', 'Корабль Спидер D', 'Sci-Fi', 'space-kit', 'craft_speederD', { targetHeight: 3 }),
    m('space-crater', 'Кратер', 'Sci-Fi', 'space-kit', 'crater', { targetHeight: 2 }),
    m('space-craterlarge', 'Кратер большой', 'Sci-Fi', 'space-kit', 'craterLarge', { targetHeight: 2 }),
    m('space-desk-chair', 'Письменный стол Стул', 'Sci-Fi', 'space-kit', 'desk_chair', { targetHeight: 2 }),
    m('space-desk-chairarms', 'Письменный стол Стул Arms', 'Sci-Fi', 'space-kit', 'desk_chairArms', { targetHeight: 2 }),
    m('space-desk-chairstool', 'Письменный стол Стул Табурет', 'Sci-Fi', 'space-kit', 'desk_chairStool', { targetHeight: 2 }),
    m('space-desk-computer', 'Письменный стол Компьютер', 'Sci-Fi', 'space-kit', 'desk_computer', { targetHeight: 2 }),
    m('space-desk-computercorner', 'Письменный стол Компьютер угол', 'Sci-Fi', 'space-kit', 'desk_computerCorner', { targetHeight: 2 }),
    m('space-desk-computerscreen', 'Письменный стол Компьютер Screen', 'Sci-Fi', 'space-kit', 'desk_computerScreen', { targetHeight: 2 }),
    m('space-gate-complex', 'Ворота сложный', 'Sci-Fi', 'space-kit', 'gate_complex', { targetHeight: 2 }),
    m('space-gate-simple', 'Ворота simple', 'Sci-Fi', 'space-kit', 'gate_simple', { targetHeight: 2 }),
    m('space-hangar-largea', 'Ангар большой A', 'Sci-Fi', 'space-kit', 'hangar_largeA', { targetHeight: 5 }),
    m('space-hangar-largeb', 'Ангар большой B', 'Sci-Fi', 'space-kit', 'hangar_largeB', { targetHeight: 5 }),
    m('space-hangar-rounda', 'Ангар круглый A', 'Sci-Fi', 'space-kit', 'hangar_roundA', { targetHeight: 5 }),
    m('space-hangar-roundb', 'Ангар круглый B', 'Sci-Fi', 'space-kit', 'hangar_roundB', { targetHeight: 5 }),
    m('space-hangar-roundglass', 'Ангар круглый Стакан', 'Sci-Fi', 'space-kit', 'hangar_roundGlass', { targetHeight: 5 }),
    m('space-hangar-smalla', 'Ангар маленький A', 'Sci-Fi', 'space-kit', 'hangar_smallA', { targetHeight: 5 }),
    m('space-hangar-smallb', 'Ангар маленький B', 'Sci-Fi', 'space-kit', 'hangar_smallB', { targetHeight: 5 }),
    m('space-machine-barrel', 'Машина Бочка', 'Sci-Fi', 'space-kit', 'machine_barrel', { targetHeight: 1 }),
    m('space-machine-barrellarge', 'Машина Бочка большой', 'Sci-Fi', 'space-kit', 'machine_barrelLarge', { targetHeight: 1 }),

    // === Здания === (21)
    m('city-suburban-building-type-a', 'Жёлтый дом', 'Здания', 'city-kit-suburban', 'building-type-a', { targetHeight: 8 }),
    m('city-suburban-building-type-b', 'Особняк с гаражом', 'Здания', 'city-kit-suburban', 'building-type-b', { targetHeight: 8 }),
    m('city-suburban-building-type-c', 'Дом с террасой', 'Здания', 'city-kit-suburban', 'building-type-c', { targetHeight: 8 }),
    m('city-suburban-building-type-d', 'Двухэтажный коттедж', 'Здания', 'city-kit-suburban', 'building-type-d', { targetHeight: 8 }),
    m('city-suburban-building-type-e', 'Дом с мансардой', 'Здания', 'city-kit-suburban', 'building-type-e', { targetHeight: 8 }),
    m('city-suburban-building-type-f', 'Современный дом', 'Здания', 'city-kit-suburban', 'building-type-f', { targetHeight: 8 }),
    m('city-suburban-building-type-g', 'Кирпичный дом', 'Здания', 'city-kit-suburban', 'building-type-g', { targetHeight: 8 }),
    m('city-suburban-building-type-h', 'Бунгало', 'Здания', 'city-kit-suburban', 'building-type-h', { targetHeight: 8 }),
    m('city-suburban-building-type-i', 'Викторианский дом', 'Здания', 'city-kit-suburban', 'building-type-i', { targetHeight: 8 }),
    m('city-suburban-building-type-j', 'Угловой дом', 'Здания', 'city-kit-suburban', 'building-type-j', { targetHeight: 8 }),
    m('city-suburban-building-type-k', 'Дом с балконом', 'Здания', 'city-kit-suburban', 'building-type-k', { targetHeight: 8 }),
    m('city-suburban-building-type-l', 'Загородный дом', 'Здания', 'city-kit-suburban', 'building-type-l', { targetHeight: 8 }),
    m('city-suburban-building-type-m', 'Дом с крыльцом', 'Здания', 'city-kit-suburban', 'building-type-m', { targetHeight: 8 }),
    m('city-suburban-building-type-n', 'Дом с башенкой', 'Здания', 'city-kit-suburban', 'building-type-n', { targetHeight: 8 }),
    m('city-suburban-building-type-o', 'Семейный дом', 'Здания', 'city-kit-suburban', 'building-type-o', { targetHeight: 8 }),
    m('city-suburban-building-type-p', 'Дом-шале', 'Здания', 'city-kit-suburban', 'building-type-p', { targetHeight: 8 }),
    m('city-suburban-building-type-q', 'Дом с эркером', 'Здания', 'city-kit-suburban', 'building-type-q', { targetHeight: 8 }),
    m('city-suburban-building-type-r', 'Городской дом', 'Здания', 'city-kit-suburban', 'building-type-r', { targetHeight: 8 }),
    m('city-suburban-building-type-s', 'Дом-куб', 'Здания', 'city-kit-suburban', 'building-type-s', { targetHeight: 8 }),
    m('city-suburban-building-type-t', 'Просторный дом', 'Здания', 'city-kit-suburban', 'building-type-t', { targetHeight: 8 }),
    m('city-suburban-building-type-u', 'Загородная вилла', 'Здания', 'city-kit-suburban', 'building-type-u', { targetHeight: 8 }),

    // === Дороги === (50)
    m('city-roads-bridge-pillar-wide', 'Мост Широкая колонна', 'Дороги', 'city-kit-roads', 'bridge-pillar-wide'),
    m('city-roads-bridge-pillar', 'Мост Колонна', 'Дороги', 'city-kit-roads', 'bridge-pillar'),
    m('city-roads-construction-barrier', 'Стройка барьер', 'Дороги', 'city-kit-roads', 'construction-barrier'),
    m('city-roads-construction-cone', 'Стройка Конус', 'Дороги', 'city-kit-roads', 'construction-cone'),
    m('city-roads-construction-light', 'Стройка свет', 'Дороги', 'city-kit-roads', 'construction-light'),
    m('city-roads-light-curved-cross', 'Свет поворот d крест', 'Дороги', 'city-kit-roads', 'light-curved-cross'),
    m('city-roads-light-curved-double', 'Свет поворот d двойной', 'Дороги', 'city-kit-roads', 'light-curved-double'),
    m('city-roads-light-curved', 'Свет поворот d', 'Дороги', 'city-kit-roads', 'light-curved'),
    m('city-roads-light-square-cross', 'Свет квадратный крест', 'Дороги', 'city-kit-roads', 'light-square-cross'),
    m('city-roads-light-square-double', 'Свет квадратный двойной', 'Дороги', 'city-kit-roads', 'light-square-double'),
    m('city-roads-light-square', 'Свет квадратный', 'Дороги', 'city-kit-roads', 'light-square'),
    m('city-roads-road-bend-barrier', 'Дорога b конец барьер', 'Дороги', 'city-kit-roads', 'road-bend-barrier'),
    m('city-roads-road-bend-sidewalk', 'Дорога b конец Тротуар', 'Дороги', 'city-kit-roads', 'road-bend-sidewalk'),
    m('city-roads-road-bend-square-barrier', 'Дорога b конец квадратный барьер', 'Дороги', 'city-kit-roads', 'road-bend-square-barrier'),
    m('city-roads-road-bend-square', 'Дорога b конец квадратный', 'Дороги', 'city-kit-roads', 'road-bend-square'),
    m('city-roads-road-bend', 'Дорога b конец', 'Дороги', 'city-kit-roads', 'road-bend'),
    m('city-roads-road-bridge', 'Дорога Мост', 'Дороги', 'city-kit-roads', 'road-bridge'),
    m('city-roads-road-crossing', 'Дорога Переход', 'Дороги', 'city-kit-roads', 'road-crossing'),
    m('city-roads-road-crossroad-barrier', 'Дорога Перекрёсток барьер', 'Дороги', 'city-kit-roads', 'road-crossroad-barrier'),
    m('city-roads-road-crossroad-line', 'Дорога Перекрёсток линия', 'Дороги', 'city-kit-roads', 'road-crossroad-line'),
    m('city-roads-road-crossroad-path', 'Дорога Перекрёсток Тропа', 'Дороги', 'city-kit-roads', 'road-crossroad-path'),
    m('city-roads-road-crossroad', 'Дорога Перекрёсток', 'Дороги', 'city-kit-roads', 'road-crossroad'),
    m('city-roads-road-curve-barrier', 'Дорога Поворот барьер', 'Дороги', 'city-kit-roads', 'road-curve-barrier'),
    m('city-roads-road-curve-intersection-barrier', 'Дорога Поворот Перекрёсток барьер', 'Дороги', 'city-kit-roads', 'road-curve-intersection-barrier'),
    m('city-roads-road-curve-intersection', 'Дорога Поворот Перекрёсток', 'Дороги', 'city-kit-roads', 'road-curve-intersection'),
    m('city-roads-road-curve-pavement', 'Дорога Поворот pavement', 'Дороги', 'city-kit-roads', 'road-curve-pavement'),
    m('city-roads-road-curve', 'Дорога Поворот', 'Дороги', 'city-kit-roads', 'road-curve'),
    m('city-roads-road-driveway-double-barrier', 'Дорога въезд двойной барьер', 'Дороги', 'city-kit-roads', 'road-driveway-double-barrier'),
    m('city-roads-road-driveway-double', 'Дорога въезд двойной', 'Дороги', 'city-kit-roads', 'road-driveway-double'),
    m('city-roads-road-driveway-single-barrier', 'Дорога въезд одинарный барьер', 'Дороги', 'city-kit-roads', 'road-driveway-single-barrier'),
    m('city-roads-road-driveway-single', 'Дорога въезд одинарный', 'Дороги', 'city-kit-roads', 'road-driveway-single'),
    m('city-roads-road-end-barrier', 'Дорога конец барьер', 'Дороги', 'city-kit-roads', 'road-end-barrier'),
    m('city-roads-road-end-round-barrier', 'Дорога конец круглый барьер', 'Дороги', 'city-kit-roads', 'road-end-round-barrier'),
    m('city-roads-road-end-round', 'Дорога конец круглый', 'Дороги', 'city-kit-roads', 'road-end-round'),
    m('city-roads-road-end', 'Дорога конец', 'Дороги', 'city-kit-roads', 'road-end'),
    m('city-roads-road-intersection-barrier', 'Дорога Перекрёсток барьер', 'Дороги', 'city-kit-roads', 'road-intersection-barrier'),
    m('city-roads-road-intersection-line', 'Дорога Перекрёсток линия', 'Дороги', 'city-kit-roads', 'road-intersection-line'),
    m('city-roads-road-intersection-path', 'Дорога Перекрёсток Тропа', 'Дороги', 'city-kit-roads', 'road-intersection-path'),
    m('city-roads-road-intersection', 'Дорога Перекрёсток', 'Дороги', 'city-kit-roads', 'road-intersection'),
    m('city-roads-road-roundabout-barrier', 'Дорога круговое движение барьер', 'Дороги', 'city-kit-roads', 'road-roundabout-barrier'),
    m('city-roads-road-roundabout', 'Дорога круговое движение', 'Дороги', 'city-kit-roads', 'road-roundabout'),
    m('city-roads-road-side-barrier', 'Дорога бок барьер', 'Дороги', 'city-kit-roads', 'road-side-barrier'),
    m('city-roads-road-side-entry-barrier', 'Дорога бок вход барьер', 'Дороги', 'city-kit-roads', 'road-side-entry-barrier'),
    m('city-roads-road-side-entry', 'Дорога бок вход', 'Дороги', 'city-kit-roads', 'road-side-entry'),
    m('city-roads-road-side-exit-barrier', 'Дорога бок выход барьер', 'Дороги', 'city-kit-roads', 'road-side-exit-barrier'),
    m('city-roads-road-side-exit', 'Дорога бок выход', 'Дороги', 'city-kit-roads', 'road-side-exit'),
    m('city-roads-road-side', 'Дорога бок', 'Дороги', 'city-kit-roads', 'road-side'),
    m('city-roads-road-slant-barrier', 'Дорога slant барьер', 'Дороги', 'city-kit-roads', 'road-slant-barrier'),
    m('city-roads-road-slant-curve-barrier', 'Дорога slant Поворот барьер', 'Дороги', 'city-kit-roads', 'road-slant-curve-barrier'),
    m('city-roads-road-slant-curve', 'Дорога slant Поворот', 'Дороги', 'city-kit-roads', 'road-slant-curve'),

    // === Замки === (50)
    m('tower-defense-detail-crystal-large', 'Деталь Кристалл большой', 'Замки', 'tower-defense-kit', 'detail-crystal-large', { targetHeight: 0.8 }),
    m('tower-defense-detail-crystal', 'Деталь Кристалл', 'Замки', 'tower-defense-kit', 'detail-crystal', { targetHeight: 0.8 }),
    m('tower-defense-detail-dirt-large', 'Земля (декор) большой', 'Замки', 'tower-defense-kit', 'detail-dirt-large', { targetHeight: 1 }),
    m('tower-defense-detail-dirt', 'Земля (декор)', 'Замки', 'tower-defense-kit', 'detail-dirt', { targetHeight: 1 }),
    m('tower-defense-detail-rocks-large', 'Деталь Камни большой', 'Замки', 'tower-defense-kit', 'detail-rocks-large', { targetHeight: 1 }),
    m('tower-defense-detail-rocks', 'Деталь Камни', 'Замки', 'tower-defense-kit', 'detail-rocks', { targetHeight: 1 }),
    m('tower-defense-detail-tree-large', 'Деталь Большое дерево', 'Замки', 'tower-defense-kit', 'detail-tree-large', { targetHeight: 3 }),
    m('tower-defense-detail-tree', 'Деталь Дерево', 'Замки', 'tower-defense-kit', 'detail-tree', { targetHeight: 3 }),
    m('tower-defense-enemy-ufo-a-weapon', 'Враг НЛО a Оружие', 'Замки', 'tower-defense-kit', 'enemy-ufo-a-weapon', { targetHeight: 1.7 }),
    m('tower-defense-enemy-ufo-a', 'Враг НЛО a', 'Замки', 'tower-defense-kit', 'enemy-ufo-a', { targetHeight: 1.7 }),
    m('tower-defense-enemy-ufo-b-weapon', 'Враг НЛО b Оружие', 'Замки', 'tower-defense-kit', 'enemy-ufo-b-weapon', { targetHeight: 1.7 }),
    m('tower-defense-enemy-ufo-b', 'Враг НЛО b', 'Замки', 'tower-defense-kit', 'enemy-ufo-b', { targetHeight: 1.7 }),
    m('tower-defense-enemy-ufo-beam-burst', 'Враг НЛО beam burst', 'Замки', 'tower-defense-kit', 'enemy-ufo-beam-burst', { targetHeight: 1.7 }),
    m('tower-defense-enemy-ufo-beam', 'Враг НЛО beam', 'Замки', 'tower-defense-kit', 'enemy-ufo-beam', { targetHeight: 1.7 }),
    m('tower-defense-enemy-ufo-c-weapon', 'Враг НЛО c Оружие', 'Замки', 'tower-defense-kit', 'enemy-ufo-c-weapon', { targetHeight: 1.7 }),
    m('tower-defense-enemy-ufo-c', 'Враг НЛО c', 'Замки', 'tower-defense-kit', 'enemy-ufo-c', { targetHeight: 1.7 }),
    m('tower-defense-enemy-ufo-d-weapon', 'Враг НЛО d Оружие', 'Замки', 'tower-defense-kit', 'enemy-ufo-d-weapon', { targetHeight: 1.7 }),
    m('tower-defense-enemy-ufo-d', 'Враг НЛО d', 'Замки', 'tower-defense-kit', 'enemy-ufo-d', { targetHeight: 1.7 }),
    m('tower-defense-selection-a', 'Выделение А', 'Замки', 'tower-defense-kit', 'selection-a', { targetHeight: 0.2 }),
    m('tower-defense-selection-b', 'Выделение Б', 'Замки', 'tower-defense-kit', 'selection-b', { targetHeight: 0.2 }),
    m('tower-defense-snow-detail-crystal-large', 'Снег Деталь Кристалл большой', 'Замки', 'tower-defense-kit', 'snow-detail-crystal-large', { targetHeight: 0.8 }),
    m('tower-defense-snow-detail-crystal', 'Снег Деталь Кристалл', 'Замки', 'tower-defense-kit', 'snow-detail-crystal', { targetHeight: 0.8 }),
    m('tower-defense-snow-detail-dirt-large', 'Снег Земля (декор) большой', 'Замки', 'tower-defense-kit', 'snow-detail-dirt-large', { targetHeight: 1 }),
    m('tower-defense-snow-detail-dirt', 'Снег Земля (декор)', 'Замки', 'tower-defense-kit', 'snow-detail-dirt', { targetHeight: 1 }),
    m('tower-defense-snow-detail-rocks-large', 'Снег Деталь Камни большой', 'Замки', 'tower-defense-kit', 'snow-detail-rocks-large', { targetHeight: 1 }),
    m('tower-defense-snow-detail-rocks', 'Снег Деталь Камни', 'Замки', 'tower-defense-kit', 'snow-detail-rocks', { targetHeight: 1 }),
    m('tower-defense-snow-detail-tree-large', 'Снег Деталь Большое дерево', 'Замки', 'tower-defense-kit', 'snow-detail-tree-large', { targetHeight: 3 }),
    m('tower-defense-snow-detail-tree', 'Снег Деталь Дерево', 'Замки', 'tower-defense-kit', 'snow-detail-tree', { targetHeight: 3 }),
    m('tower-defense-snow-tile-bump', 'Снег Плитка кочка', 'Замки', 'tower-defense-kit', 'snow-tile-bump', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-corner-inner', 'Снег Плитка угол внутр.', 'Замки', 'tower-defense-kit', 'snow-tile-corner-inner', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-corner-large', 'Снег Плитка угол большой', 'Замки', 'tower-defense-kit', 'snow-tile-corner-large', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-corner-outer', 'Снег Плитка угол внеш.', 'Замки', 'tower-defense-kit', 'snow-tile-corner-outer', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-corner-round', 'Снег Плитка угол круглый', 'Замки', 'tower-defense-kit', 'snow-tile-corner-round', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-corner-square', 'Снег Плитка угол квадратный', 'Замки', 'tower-defense-kit', 'snow-tile-corner-square', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-crossing', 'Снег Плитка Переход', 'Замки', 'tower-defense-kit', 'snow-tile-crossing', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-crystal', 'Снег Плитка Кристалл', 'Замки', 'tower-defense-kit', 'snow-tile-crystal', { targetHeight: 0.8 }),
    m('tower-defense-snow-tile-dirt', 'Снег Плитка земли', 'Замки', 'tower-defense-kit', 'snow-tile-dirt', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-end-round', 'Снег Плитка конец круглый', 'Замки', 'tower-defense-kit', 'snow-tile-end-round', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-end', 'Снег Плитка конец', 'Замки', 'tower-defense-kit', 'snow-tile-end', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-hill', 'Снег Плитка холм', 'Замки', 'tower-defense-kit', 'snow-tile-hill', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-river-bridge', 'Снег Плитка river Мост', 'Замки', 'tower-defense-kit', 'snow-tile-river-bridge', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-river-corner', 'Снег Плитка river угол', 'Замки', 'tower-defense-kit', 'snow-tile-river-corner', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-river-slope-large', 'Снег Плитка river наклон большой', 'Замки', 'tower-defense-kit', 'snow-tile-river-slope-large', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-river-slope', 'Снег Плитка river наклон', 'Замки', 'tower-defense-kit', 'snow-tile-river-slope', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-river-straight', 'Снег Плитка river Прямой участок', 'Замки', 'tower-defense-kit', 'snow-tile-river-straight', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-river-transition', 'Снег Плитка river transition', 'Замки', 'tower-defense-kit', 'snow-tile-river-transition', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-river-waterfall', 'Снег Плитка river waterfall', 'Замки', 'tower-defense-kit', 'snow-tile-river-waterfall', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-rock', 'Снег Плитка Камень', 'Замки', 'tower-defense-kit', 'snow-tile-rock', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-slope', 'Снег Плитка наклон', 'Замки', 'tower-defense-kit', 'snow-tile-slope', { targetHeight: 0.4 }),
    m('tower-defense-snow-tile-spawn-end-round', 'Снег Плитка spawn конец круглый', 'Замки', 'tower-defense-kit', 'snow-tile-spawn-end-round', { targetHeight: 0.4 }),

    // === Мебель === (50)
    m('furniture-bathroomcabinet', 'Шкафчик ванной', 'Мебель', 'furniture-kit', 'bathroomCabinet', { targetHeight: 2.2 }),
    m('furniture-bathroomcabinetdrawer', 'Тумба ванной с ящиком', 'Мебель', 'furniture-kit', 'bathroomCabinetDrawer', { targetHeight: 2.2 }),
    m('furniture-bathroommirror', 'Ванная Зеркало', 'Мебель', 'furniture-kit', 'bathroomMirror', { targetHeight: 1 }),
    m('furniture-bathroomsink', 'Ванная Раковина', 'Мебель', 'furniture-kit', 'bathroomSink', { targetHeight: 1.2 }),
    m('furniture-bathroomsinksquare', 'Ванная Раковина квадратный', 'Мебель', 'furniture-kit', 'bathroomSinkSquare', { targetHeight: 1.2 }),
    m('furniture-bathtub', 'Ванна', 'Мебель', 'furniture-kit', 'bathtub', { targetHeight: 1.2 }),
    m('furniture-bear', 'Медведь', 'Мебель', 'furniture-kit', 'bear', { targetHeight: 1.2 }),
    m('furniture-bedbunk', 'Кровать Bunk', 'Мебель', 'furniture-kit', 'bedBunk', { targetHeight: 1 }),
    m('furniture-beddouble', 'Кровать двуспальная', 'Мебель', 'furniture-kit', 'bedDouble', { targetHeight: 1 }),
    m('furniture-bedsingle', 'Кровать односпальная', 'Мебель', 'furniture-kit', 'bedSingle', { targetHeight: 1 }),
    m('furniture-bench', 'Скамейка', 'Мебель', 'furniture-kit', 'bench', { targetHeight: 1.2 }),
    m('furniture-benchcushion', 'Скамейка подушка', 'Мебель', 'furniture-kit', 'benchCushion', { targetHeight: 1.2 }),
    m('furniture-benchcushionlow', 'Скамейка подушка низкий', 'Мебель', 'furniture-kit', 'benchCushionLow', { targetHeight: 1.2 }),
    m('furniture-bookcaseclosed', 'Книжный шкаф закрытый', 'Мебель', 'furniture-kit', 'bookcaseClosed', { targetHeight: 2.2 }),
    m('furniture-bookcasecloseddoors', 'Книжный шкаф закрытый Doors', 'Мебель', 'furniture-kit', 'bookcaseClosedDoors', { targetHeight: 2.2 }),
    m('furniture-bookcaseclosedwide', 'Книжный шкаф закрытый широкий', 'Мебель', 'furniture-kit', 'bookcaseClosedWide', { targetHeight: 2.2 }),
    m('furniture-bookcaseopen', 'Книжный шкаф открытый', 'Мебель', 'furniture-kit', 'bookcaseOpen', { targetHeight: 2.2 }),
    m('furniture-bookcaseopenlow', 'Книжный шкаф открытый низкий', 'Мебель', 'furniture-kit', 'bookcaseOpenLow', { targetHeight: 2.2 }),
    m('furniture-books', 'Книги', 'Мебель', 'furniture-kit', 'books', { targetHeight: 1.2 }),
    m('furniture-cabinetbed', 'Шкафчик Кровать', 'Мебель', 'furniture-kit', 'cabinetBed', { targetHeight: 2.2 }),
    m('furniture-cabinetbeddrawer', 'Шкафчик Кровать ящик', 'Мебель', 'furniture-kit', 'cabinetBedDrawer', { targetHeight: 2.2 }),
    m('furniture-cabinetbeddrawertable', 'Шкафчик Кровать ящик Стол', 'Мебель', 'furniture-kit', 'cabinetBedDrawerTable', { targetHeight: 2.2 }),
    m('furniture-cabinettelevision', 'Шкафчик Телевизор', 'Мебель', 'furniture-kit', 'cabinetTelevision', { targetHeight: 0.8 }),
    m('furniture-cabinettelevisiondoors', 'Шкафчик Телевизор Doors', 'Мебель', 'furniture-kit', 'cabinetTelevisionDoors', { targetHeight: 0.8 }),
    m('furniture-cardboardboxclosed', 'Картон Коробка закрытый', 'Мебель', 'furniture-kit', 'cardboardBoxClosed', { targetHeight: 1.2 }),
    m('furniture-cardboardboxopen', 'Картон Коробка открытый', 'Мебель', 'furniture-kit', 'cardboardBoxOpen', { targetHeight: 1.2 }),
    m('furniture-ceilingfan', 'Потолок вентилятор', 'Мебель', 'furniture-kit', 'ceilingFan', { targetHeight: 1.2 }),
    m('furniture-chair', 'Стул', 'Мебель', 'furniture-kit', 'chair', { targetHeight: 1.2 }),
    m('furniture-chaircushion', 'Стул подушка', 'Мебель', 'furniture-kit', 'chairCushion', { targetHeight: 1.2 }),
    m('furniture-chairdesk', 'Стул Письменный стол', 'Мебель', 'furniture-kit', 'chairDesk', { targetHeight: 1.2 }),
    m('furniture-chairmoderncushion', 'Стул современный подушка', 'Мебель', 'furniture-kit', 'chairModernCushion', { targetHeight: 1.2 }),
    m('furniture-chairmodernframecushion', 'Стул современный Рамка подушка', 'Мебель', 'furniture-kit', 'chairModernFrameCushion', { targetHeight: 1.2 }),
    m('furniture-chairrounded', 'Стул Rounded', 'Мебель', 'furniture-kit', 'chairRounded', { targetHeight: 1.2 }),
    m('furniture-coatrack', 'Пальто стойка', 'Мебель', 'furniture-kit', 'coatRack', { targetHeight: 1.2 }),
    m('furniture-coatrackstanding', 'Пальто стойка Standing', 'Мебель', 'furniture-kit', 'coatRackStanding', { targetHeight: 1.2 }),
    m('furniture-computerkeyboard', 'Компьютер Keyboard', 'Мебель', 'furniture-kit', 'computerKeyboard', { targetHeight: 0.8 }),
    m('furniture-computermouse', 'Компьютер Mouse', 'Мебель', 'furniture-kit', 'computerMouse', { targetHeight: 0.8 }),
    m('furniture-computerscreen', 'Компьютер Screen', 'Мебель', 'furniture-kit', 'computerScreen', { targetHeight: 0.8 }),
    m('furniture-desk', 'Письменный стол', 'Мебель', 'furniture-kit', 'desk', { targetHeight: 1.2 }),
    m('furniture-deskcorner', 'Письменный стол угол', 'Мебель', 'furniture-kit', 'deskCorner', { targetHeight: 1.2 }),
    m('furniture-doorway', 'Проём', 'Мебель', 'furniture-kit', 'doorway', { targetHeight: 1.2 }),
    m('furniture-doorwayfront', 'Проём перед', 'Мебель', 'furniture-kit', 'doorwayFront', { targetHeight: 1.2 }),
    m('furniture-doorwayopen', 'Проём открытый', 'Мебель', 'furniture-kit', 'doorwayOpen', { targetHeight: 1.2 }),
    m('furniture-dryer', 'Сушилка', 'Мебель', 'furniture-kit', 'dryer', { targetHeight: 1.2 }),
    m('furniture-floorcorner', 'Пол угол', 'Мебель', 'furniture-kit', 'floorCorner', { targetHeight: 1.2 }),
    m('furniture-floorcornerround', 'Пол угол круглый', 'Мебель', 'furniture-kit', 'floorCornerRound', { targetHeight: 1.2 }),
    m('furniture-floorfull', 'Пол полный', 'Мебель', 'furniture-kit', 'floorFull', { targetHeight: 1.2 }),
    m('furniture-floorhalf', 'Пол половина', 'Мебель', 'furniture-kit', 'floorHalf', { targetHeight: 1.2 }),
    m('furniture-hoodlarge', 'Hood большой', 'Мебель', 'furniture-kit', 'hoodLarge', { targetHeight: 1.2 }),
    m('furniture-hoodmodern', 'Hood современный', 'Мебель', 'furniture-kit', 'hoodModern', { targetHeight: 1.2 }),

    // === Еда === (50)
    m('food-advocado-half', 'Авокадо (половинка)', 'Еда', 'food-kit', 'advocado-half', { targetHeight: 0.5 }),
    m('food-apple-half', 'Яблоко (половинка)', 'Еда', 'food-kit', 'apple-half', { targetHeight: 0.4 }),
    m('food-apple', 'Яблоко', 'Еда', 'food-kit', 'apple', { targetHeight: 0.4 }),
    m('food-avocado', 'Авокадо', 'Еда', 'food-kit', 'avocado', { targetHeight: 0.5 }),
    m('food-bacon-raw', 'Сырой бекон', 'Еда', 'food-kit', 'bacon-raw', { targetHeight: 0.5 }),
    m('food-bacon', 'Бекон', 'Еда', 'food-kit', 'bacon', { targetHeight: 0.5 }),
    m('food-bag-flat', 'Пакет плоский', 'Еда', 'food-kit', 'bag-flat', { targetHeight: 0.5 }),
    m('food-bag', 'Пакет', 'Еда', 'food-kit', 'bag', { targetHeight: 0.5 }),
    m('food-banana', 'Банан', 'Еда', 'food-kit', 'banana', { targetHeight: 0.4 }),
    m('food-barrel', 'Бочка', 'Еда', 'food-kit', 'barrel', { targetHeight: 0.5 }),
    m('food-beet', 'Свёкла', 'Еда', 'food-kit', 'beet', { targetHeight: 0.4 }),
    m('food-bottle-ketchup', 'Кетчуп', 'Еда', 'food-kit', 'bottle-ketchup', { targetHeight: 0.7 }),
    m('food-bottle-musterd', 'Горчица', 'Еда', 'food-kit', 'bottle-musterd', { targetHeight: 0.7 }),
    m('food-bottle-oil', 'Масло', 'Еда', 'food-kit', 'bottle-oil', { targetHeight: 0.7 }),
    m('food-bowl-broth', 'Тарелка с бульоном', 'Еда', 'food-kit', 'bowl-broth', { targetHeight: 0.3 }),
    m('food-bowl-cereal', 'Тарелка с хлопьями', 'Еда', 'food-kit', 'bowl-cereal', { targetHeight: 0.3 }),
    m('food-bowl-soup', 'Миска Суп', 'Еда', 'food-kit', 'bowl-soup', { targetHeight: 0.3 }),
    m('food-bowl', 'Миска', 'Еда', 'food-kit', 'bowl', { targetHeight: 0.3 }),
    m('food-bread', 'Хлеб', 'Еда', 'food-kit', 'bread', { targetHeight: 0.5 }),
    m('food-broccoli', 'Брокколи', 'Еда', 'food-kit', 'broccoli', { targetHeight: 0.5 }),
    m('food-burger-cheese-double', 'Бургер Сыр двойной', 'Еда', 'food-kit', 'burger-cheese-double', { targetHeight: 0.5 }),
    m('food-burger-cheese', 'Бургер Сыр', 'Еда', 'food-kit', 'burger-cheese', { targetHeight: 0.5 }),
    m('food-burger-double', 'Бургер двойной', 'Еда', 'food-kit', 'burger-double', { targetHeight: 0.5 }),
    m('food-burger', 'Бургер', 'Еда', 'food-kit', 'burger', { targetHeight: 0.5 }),
    m('food-cabbage', 'Капуста', 'Еда', 'food-kit', 'cabbage', { targetHeight: 0.5 }),
    m('food-cake-birthday', 'Торт день рождения', 'Еда', 'food-kit', 'cake-birthday', { targetHeight: 0.7 }),
    m('food-cake-slicer', 'Торт кусок', 'Еда', 'food-kit', 'cake-slicer', { targetHeight: 0.7 }),
    m('food-cake', 'Торт', 'Еда', 'food-kit', 'cake', { targetHeight: 0.7 }),
    m('food-can-open', 'Банка открытый', 'Еда', 'food-kit', 'can-open', { targetHeight: 0.5 }),
    m('food-can-small', 'Банка маленький', 'Еда', 'food-kit', 'can-small', { targetHeight: 0.5 }),
    m('food-can', 'Банка', 'Еда', 'food-kit', 'can', { targetHeight: 0.5 }),
    m('food-candy-bar-wrapper', 'Конфета батончик обёртка', 'Еда', 'food-kit', 'candy-bar-wrapper', { targetHeight: 0.5 }),
    m('food-candy-bar', 'Конфета батончик', 'Еда', 'food-kit', 'candy-bar', { targetHeight: 0.5 }),
    m('food-carrot', 'Морковь', 'Еда', 'food-kit', 'carrot', { targetHeight: 0.4 }),
    m('food-carton-small', 'Пакет маленький', 'Еда', 'food-kit', 'carton-small', { targetHeight: 0.5 }),
    m('food-carton', 'Пакет', 'Еда', 'food-kit', 'carton', { targetHeight: 0.5 }),
    m('food-cauliflower', 'Цветная капуста', 'Еда', 'food-kit', 'cauliflower', { targetHeight: 0.5 }),
    m('food-celery-stick', 'Сельдерей Палка', 'Еда', 'food-kit', 'celery-stick', { targetHeight: 0.5 }),
    m('food-cheese-cut', 'Сыр cut', 'Еда', 'food-kit', 'cheese-cut', { targetHeight: 0.5 }),
    m('food-cheese-slicer', 'Сыр кусок', 'Еда', 'food-kit', 'cheese-slicer', { targetHeight: 0.5 }),
    m('food-cheese', 'Сыр', 'Еда', 'food-kit', 'cheese', { targetHeight: 0.5 }),
    m('food-cherries', 'Черешня', 'Еда', 'food-kit', 'cherries', { targetHeight: 0.5 }),
    m('food-chinese', 'Chinese', 'Еда', 'food-kit', 'chinese', { targetHeight: 0.5 }),
    m('food-chocolate-wrapper', 'Шоколад обёртка', 'Еда', 'food-kit', 'chocolate-wrapper', { targetHeight: 0.5 }),
    m('food-chocolate', 'Шоколад', 'Еда', 'food-kit', 'chocolate', { targetHeight: 0.5 }),
    m('food-chopstic-decorative', 'Chopstic декоративный', 'Еда', 'food-kit', 'chopstic-decorative', { targetHeight: 0.5 }),
    m('food-chopstick', 'Палочка', 'Еда', 'food-kit', 'chopstick', { targetHeight: 0.5 }),
    m('food-cocktail', 'Коктейль', 'Еда', 'food-kit', 'cocktail', { targetHeight: 0.5 }),
    m('food-coconut-half', 'Половинка кокоса', 'Еда', 'food-kit', 'coconut-half', { targetHeight: 0.5 }),
    m('food-coconut', 'Кокос', 'Еда', 'food-kit', 'coconut', { targetHeight: 0.5 }),

    // === Оружие === (40)
    m('blaster-blaster-a', 'Бластер a', 'Оружие', 'blaster-kit', 'blaster-a', { targetHeight: 1.2 }),
    m('blaster-blaster-b', 'Бластер b', 'Оружие', 'blaster-kit', 'blaster-b', { targetHeight: 1.2 }),
    m('blaster-blaster-c', 'Бластер c', 'Оружие', 'blaster-kit', 'blaster-c', { targetHeight: 1.2 }),
    m('blaster-blaster-d', 'Бластер d', 'Оружие', 'blaster-kit', 'blaster-d', { targetHeight: 1.2 }),
    m('blaster-blaster-e', 'Бластер e', 'Оружие', 'blaster-kit', 'blaster-e', { targetHeight: 1.2 }),
    m('blaster-blaster-f', 'Бластер f', 'Оружие', 'blaster-kit', 'blaster-f', { targetHeight: 1.2 }),
    m('blaster-blaster-g', 'Бластер g', 'Оружие', 'blaster-kit', 'blaster-g', { targetHeight: 1.2 }),
    m('blaster-blaster-h', 'Бластер h', 'Оружие', 'blaster-kit', 'blaster-h', { targetHeight: 1.2 }),
    m('blaster-blaster-i', 'Бластер i', 'Оружие', 'blaster-kit', 'blaster-i', { targetHeight: 1.2 }),
    m('blaster-blaster-j', 'Бластер j', 'Оружие', 'blaster-kit', 'blaster-j', { targetHeight: 1.2 }),
    m('blaster-blaster-k', 'Бластер k', 'Оружие', 'blaster-kit', 'blaster-k', { targetHeight: 1.2 }),
    m('blaster-blaster-l', 'Бластер l', 'Оружие', 'blaster-kit', 'blaster-l', { targetHeight: 1.2 }),
    m('blaster-blaster-m', 'Бластер m', 'Оружие', 'blaster-kit', 'blaster-m', { targetHeight: 1.2 }),
    m('blaster-blaster-n', 'Бластер n', 'Оружие', 'blaster-kit', 'blaster-n', { targetHeight: 1.2 }),
    m('blaster-blaster-o', 'Бластер o', 'Оружие', 'blaster-kit', 'blaster-o', { targetHeight: 1.2 }),
    m('blaster-blaster-p', 'Бластер p', 'Оружие', 'blaster-kit', 'blaster-p', { targetHeight: 1.2 }),
    m('blaster-blaster-q', 'Бластер q', 'Оружие', 'blaster-kit', 'blaster-q', { targetHeight: 1.2 }),
    m('blaster-blaster-r', 'Бластер r', 'Оружие', 'blaster-kit', 'blaster-r', { targetHeight: 1.2 }),
    m('blaster-bullet-foam-thick', 'Толстая пенопл. пуля', 'Оружие', 'blaster-kit', 'bullet-foam-thick', { targetHeight: 0.4 }),
    m('blaster-bullet-foam-tip-thick', 'Толстая пенопл. пуля с наконеч.', 'Оружие', 'blaster-kit', 'bullet-foam-tip-thick', { targetHeight: 0.4 }),
    m('blaster-bullet-foam-tip', 'Пенопл. пуля с наконеч.', 'Оружие', 'blaster-kit', 'bullet-foam-tip', { targetHeight: 0.4 }),
    m('blaster-bullet-foam', 'Пенопл. пуля', 'Оружие', 'blaster-kit', 'bullet-foam', { targetHeight: 0.4 }),
    m('blaster-clip-large', 'Скрепка большой', 'Оружие', 'blaster-kit', 'clip-large', { targetHeight: 1 }),
    m('blaster-clip-small', 'Скрепка маленький', 'Оружие', 'blaster-kit', 'clip-small', { targetHeight: 1 }),
    m('blaster-crate-medium', 'Ящик средний', 'Оружие', 'blaster-kit', 'crate-medium', { targetHeight: 1 }),
    m('blaster-crate-small', 'Ящик маленький', 'Оружие', 'blaster-kit', 'crate-small', { targetHeight: 1 }),
    m('blaster-crate-wide', 'Ящик широкий', 'Оружие', 'blaster-kit', 'crate-wide', { targetHeight: 1 }),
    m('blaster-grenade-a', 'Граната a', 'Оружие', 'blaster-kit', 'grenade-a', { targetHeight: 0.6 }),
    m('blaster-grenade-b', 'Граната b', 'Оружие', 'blaster-kit', 'grenade-b', { targetHeight: 0.6 }),
    m('blaster-scope-large-a', 'Scope большой a', 'Оружие', 'blaster-kit', 'scope-large-a', { targetHeight: 1 }),
    m('blaster-scope-large-b', 'Scope большой b', 'Оружие', 'blaster-kit', 'scope-large-b', { targetHeight: 1 }),
    m('blaster-scope-small', 'Scope маленький', 'Оружие', 'blaster-kit', 'scope-small', { targetHeight: 1 }),
    m('blaster-silencer-larger', 'Silencer larger', 'Оружие', 'blaster-kit', 'silencer-larger', { targetHeight: 1 }),
    m('blaster-silencer-small', 'Silencer маленький', 'Оружие', 'blaster-kit', 'silencer-small', { targetHeight: 1 }),
    m('blaster-smoke', 'Дым', 'Оружие', 'blaster-kit', 'smoke', { targetHeight: 1 }),
    m('blaster-target-detail', 'Мишень Деталь', 'Оружие', 'blaster-kit', 'target-detail', { targetHeight: 1 }),
    m('blaster-target-fragment-large', 'Мишень фрагмент большой', 'Оружие', 'blaster-kit', 'target-fragment-large', { targetHeight: 1 }),
    m('blaster-target-fragment-small', 'Мишень фрагмент маленький', 'Оружие', 'blaster-kit', 'target-fragment-small', { targetHeight: 1 }),
    m('blaster-target-large', 'Мишень большой', 'Оружие', 'blaster-kit', 'target-large', { targetHeight: 1 }),
    m('blaster-target-small', 'Мишень маленький', 'Оружие', 'blaster-kit', 'target-small', { targetHeight: 1 }),

    // === Праздники === (50)
    m('holiday-bench-short', 'Скамейка короткий', 'Праздники', 'holiday-kit', 'bench-short', { targetHeight: 1.5 }),
    m('holiday-bench', 'Скамейка', 'Праздники', 'holiday-kit', 'bench', { targetHeight: 1.5 }),
    m('holiday-cabin-corner-bottom', 'Хижина угол низ', 'Праздники', 'holiday-kit', 'cabin-corner-bottom', { targetHeight: 5 }),
    m('holiday-cabin-corner-logs', 'Хижина угол брёвна', 'Праздники', 'holiday-kit', 'cabin-corner-logs', { targetHeight: 5 }),
    m('holiday-cabin-corner', 'Хижина угол', 'Праздники', 'holiday-kit', 'cabin-corner', { targetHeight: 5 }),
    m('holiday-cabin-door-rotate', 'Хижина Дверь', 'Праздники', 'holiday-kit', 'cabin-door-rotate', { targetHeight: 5 }),
    m('holiday-cabin-doorway-center', 'Хижина проём центр', 'Праздники', 'holiday-kit', 'cabin-doorway-center', { targetHeight: 5 }),
    m('holiday-cabin-doorway-left', 'Хижина проём лев.', 'Праздники', 'holiday-kit', 'cabin-doorway-left', { targetHeight: 5 }),
    m('holiday-cabin-doorway-right', 'Хижина проём прав.', 'Праздники', 'holiday-kit', 'cabin-doorway-right', { targetHeight: 5 }),
    m('holiday-cabin-doorway', 'Хижина проём', 'Праздники', 'holiday-kit', 'cabin-doorway', { targetHeight: 5 }),
    m('holiday-cabin-fence', 'Хижина Забор', 'Праздники', 'holiday-kit', 'cabin-fence', { targetHeight: 5 }),
    m('holiday-cabin-overhang-door-rotate', 'Хижина с навесом Дверь', 'Праздники', 'holiday-kit', 'cabin-overhang-door-rotate', { targetHeight: 5 }),
    m('holiday-cabin-overhang-doorway', 'Хижина с навесом проём', 'Праздники', 'holiday-kit', 'cabin-overhang-doorway', { targetHeight: 5 }),
    m('holiday-cabin-roof-chimney', 'Хижина Крыша Дымоход', 'Праздники', 'holiday-kit', 'cabin-roof-chimney', { targetHeight: 5 }),
    m('holiday-cabin-roof-corner', 'Хижина Крыша угол', 'Праздники', 'holiday-kit', 'cabin-roof-corner', { targetHeight: 5 }),
    m('holiday-cabin-roof-dormer', 'Хижина Крыша мансарда', 'Праздники', 'holiday-kit', 'cabin-roof-dormer', { targetHeight: 5 }),
    m('holiday-cabin-roof-point', 'Хижина Крыша остриё', 'Праздники', 'holiday-kit', 'cabin-roof-point', { targetHeight: 5 }),
    m('holiday-cabin-roof-snow-chimney', 'Хижина Крыша Снег Дымоход', 'Праздники', 'holiday-kit', 'cabin-roof-snow-chimney', { targetHeight: 5 }),
    m('holiday-cabin-roof-snow-corner', 'Хижина Крыша Снег угол', 'Праздники', 'holiday-kit', 'cabin-roof-snow-corner', { targetHeight: 5 }),
    m('holiday-cabin-roof-snow-dormer', 'Хижина Крыша Снег мансарда', 'Праздники', 'holiday-kit', 'cabin-roof-snow-dormer', { targetHeight: 5 }),
    m('holiday-cabin-roof-snow-point', 'Хижина Крыша Снег остриё', 'Праздники', 'holiday-kit', 'cabin-roof-snow-point', { targetHeight: 5 }),
    m('holiday-cabin-roof-snow', 'Хижина Крыша Снег', 'Праздники', 'holiday-kit', 'cabin-roof-snow', { targetHeight: 5 }),
    m('holiday-cabin-roof-top', 'Хижина Крыша верх', 'Праздники', 'holiday-kit', 'cabin-roof-top', { targetHeight: 5 }),
    m('holiday-cabin-roof', 'Хижина Крыша', 'Праздники', 'holiday-kit', 'cabin-roof', { targetHeight: 5 }),
    m('holiday-cabin-wall-low', 'Хижина Стена низкий', 'Праздники', 'holiday-kit', 'cabin-wall-low', { targetHeight: 5 }),
    m('holiday-cabin-wall-roof-center', 'Хижина Стена Крыша центр', 'Праздники', 'holiday-kit', 'cabin-wall-roof-center', { targetHeight: 5 }),
    m('holiday-cabin-wall-roof', 'Хижина Стена Крыша', 'Праздники', 'holiday-kit', 'cabin-wall-roof', { targetHeight: 5 }),
    m('holiday-cabin-wall-wreath', 'Хижина Стена венок', 'Праздники', 'holiday-kit', 'cabin-wall-wreath', { targetHeight: 5 }),
    m('holiday-cabin-wall', 'Хижина Стена', 'Праздники', 'holiday-kit', 'cabin-wall', { targetHeight: 5 }),
    m('holiday-cabin-window-a', 'Хижина Окно a', 'Праздники', 'holiday-kit', 'cabin-window-a', { targetHeight: 5 }),
    m('holiday-cabin-window-b', 'Хижина Окно b', 'Праздники', 'holiday-kit', 'cabin-window-b', { targetHeight: 5 }),
    m('holiday-cabin-window-c', 'Хижина Окно c', 'Праздники', 'holiday-kit', 'cabin-window-c', { targetHeight: 5 }),
    m('holiday-cabin-window-large', 'Хижина Окно большой', 'Праздники', 'holiday-kit', 'cabin-window-large', { targetHeight: 5 }),
    m('holiday-candy-cane-green', 'Конфета cane зелёный', 'Праздники', 'holiday-kit', 'candy-cane-green', { targetHeight: 1.5 }),
    m('holiday-candy-cane-red', 'Конфета cane красный', 'Праздники', 'holiday-kit', 'candy-cane-red', { targetHeight: 1.5 }),
    m('holiday-festivus-pole', 'Festivus pole', 'Праздники', 'holiday-kit', 'festivus-pole', { targetHeight: 1.5 }),
    m('holiday-floor-stone', 'Пол Камень', 'Праздники', 'holiday-kit', 'floor-stone', { targetHeight: 1.5 }),
    m('holiday-floor-wood-snow', 'Пол дерево Снег', 'Праздники', 'holiday-kit', 'floor-wood-snow', { targetHeight: 0.8 }),
    m('holiday-floor-wood', 'Пол дерево', 'Праздники', 'holiday-kit', 'floor-wood', { targetHeight: 1.5 }),
    m('holiday-gingerbread-man', 'Имбирный пряник man', 'Праздники', 'holiday-kit', 'gingerbread-man', { targetHeight: 1.5 }),
    m('holiday-gingerbread-woman', 'Имбирный пряник woman', 'Праздники', 'holiday-kit', 'gingerbread-woman', { targetHeight: 1.5 }),
    m('holiday-hanukkah-dreidel', 'Ханука дрейдл', 'Праздники', 'holiday-kit', 'hanukkah-dreidel', { targetHeight: 1.5 }),
    m('holiday-hanukkah-menorah-candles', 'Ханука менора candles', 'Праздники', 'holiday-kit', 'hanukkah-menorah-candles', { targetHeight: 0.6 }),
    m('holiday-hanukkah-menorah', 'Ханука менора', 'Праздники', 'holiday-kit', 'hanukkah-menorah', { targetHeight: 1.5 }),
    m('holiday-kwanzaa-kikombe', 'Kwanzaa kikombe', 'Праздники', 'holiday-kit', 'kwanzaa-kikombe', { targetHeight: 1.5 }),
    m('holiday-kwanzaa-kinara-alternative', 'Kwanzaa kinara alternative', 'Праздники', 'holiday-kit', 'kwanzaa-kinara-alternative', { targetHeight: 1.5 }),
    m('holiday-kwanzaa-kinara', 'Kwanzaa kinara', 'Праздники', 'holiday-kit', 'kwanzaa-kinara', { targetHeight: 1.5 }),
    m('holiday-lantern-hanging', 'Фонарь подвесной', 'Праздники', 'holiday-kit', 'lantern-hanging', { targetHeight: 1.5 }),
    m('holiday-lantern', 'Фонарь', 'Праздники', 'holiday-kit', 'lantern', { targetHeight: 1.5 }),
    m('holiday-lights-colored', 'Свет цветной', 'Праздники', 'holiday-kit', 'lights-colored', { targetHeight: 1.5 }),

    // === Поезд === (модели holiday-kit: локомотив, вагоны, рельсы.
    // GLB-файлы уже в kubikon-assets/models/holiday-kit/ — регистрируем
    // в каталоге, чтобы можно было ставить на сцену и в раннер-играх).
    m('train-locomotive', 'Поезд: локомотив', 'Поезд', 'holiday-kit', 'train-locomotive', { targetHeight: 3 }),
    m('train-tender', 'Поезд: тендер', 'Поезд', 'holiday-kit', 'train-tender', { targetHeight: 3 }),
    m('train-wagon', 'Поезд: вагон', 'Поезд', 'holiday-kit', 'train-wagon', { targetHeight: 3 }),
    m('train-wagon-short', 'Поезд: вагон короткий', 'Поезд', 'holiday-kit', 'train-wagon-short', { targetHeight: 3 }),
    m('train-wagon-flat', 'Поезд: платформа', 'Поезд', 'holiday-kit', 'train-wagon-flat', { targetHeight: 2 }),
    m('train-wagon-flat-short', 'Поезд: платформа короткая', 'Поезд', 'holiday-kit', 'train-wagon-flat-short', { targetHeight: 2 }),
    m('train-wagon-logs', 'Поезд: вагон с брёвнами', 'Поезд', 'holiday-kit', 'train-wagon-logs', { targetHeight: 3 }),
    m('trainset-rail-straight', 'Рельсы прямые', 'Поезд', 'holiday-kit', 'trainset-rail-straight', { targetHeight: 0.4 }),
    m('trainset-rail-detailed-straight', 'Рельсы прямые детальные', 'Поезд', 'holiday-kit', 'trainset-rail-detailed-straight', { targetHeight: 0.4 }),
    m('trainset-rail-bend', 'Рельсы поворот', 'Поезд', 'holiday-kit', 'trainset-rail-bend', { targetHeight: 0.4 }),
    m('trainset-rail-corner', 'Рельсы угол', 'Поезд', 'holiday-kit', 'trainset-rail-corner', { targetHeight: 0.4 }),

    // === Выживание === (50)
    m('survival-barrel-open', 'Бочка открытый', 'Выживание', 'survival-kit', 'barrel-open', { targetHeight: 1 }),
    m('survival-barrel', 'Бочка', 'Выживание', 'survival-kit', 'barrel', { targetHeight: 1 }),
    m('survival-bedroll-frame', 'Спальник рама', 'Выживание', 'survival-kit', 'bedroll-frame', { targetHeight: 1 }),
    m('survival-bedroll-packed', 'Свёрнутый коврик', 'Выживание', 'survival-kit', 'bedroll-packed', { targetHeight: 1 }),
    m('survival-bedroll', 'Спальник', 'Выживание', 'survival-kit', 'bedroll', { targetHeight: 1 }),
    m('survival-bottle-large', 'Бутылка большой', 'Выживание', 'survival-kit', 'bottle-large', { targetHeight: 1 }),
    m('survival-bottle', 'Бутылка', 'Выживание', 'survival-kit', 'bottle', { targetHeight: 1 }),
    m('survival-box-large-open', 'Коробка большой открытый', 'Выживание', 'survival-kit', 'box-large-open', { targetHeight: 0.8 }),
    m('survival-box-large', 'Коробка большой', 'Выживание', 'survival-kit', 'box-large', { targetHeight: 0.8 }),
    m('survival-box-open', 'Коробка открытый', 'Выживание', 'survival-kit', 'box-open', { targetHeight: 0.8 }),
    m('survival-box', 'Коробка', 'Выживание', 'survival-kit', 'box', { targetHeight: 0.8 }),
    m('survival-bucket', 'Ведро', 'Выживание', 'survival-kit', 'bucket', { targetHeight: 0.8 }),
    m('survival-campfire-fishing-stand', 'Костёр рыболов. Подставка', 'Выживание', 'survival-kit', 'campfire-fishing-stand', { targetHeight: 1 }),
    m('survival-campfire-pit', 'Костёр яма', 'Выживание', 'survival-kit', 'campfire-pit', { targetHeight: 1 }),
    m('survival-campfire-stand', 'Костёр Подставка', 'Выживание', 'survival-kit', 'campfire-stand', { targetHeight: 1 }),
    m('survival-chest', 'Сундук', 'Выживание', 'survival-kit', 'chest', { targetHeight: 0.8 }),
    m('survival-fence-doorway', 'Забор проём', 'Выживание', 'survival-kit', 'fence-doorway', { targetHeight: 1 }),
    m('survival-fence-fortified', 'Забор укреплённый', 'Выживание', 'survival-kit', 'fence-fortified', { targetHeight: 1 }),
    m('survival-fence', 'Забор', 'Выживание', 'survival-kit', 'fence', { targetHeight: 1 }),
    m('survival-fish-large', 'Рыба большой', 'Выживание', 'survival-kit', 'fish-large', { targetHeight: 1 }),
    m('survival-fish', 'Рыба', 'Выживание', 'survival-kit', 'fish', { targetHeight: 1 }),
    m('survival-floor-hole', 'Дыра в полу', 'Выживание', 'survival-kit', 'floor-hole', { targetHeight: 1 }),
    m('survival-floor-old', 'Пол старый', 'Выживание', 'survival-kit', 'floor-old', { targetHeight: 1 }),
    m('survival-floor', 'Пол', 'Выживание', 'survival-kit', 'floor', { targetHeight: 1 }),
    m('survival-grass-large', 'Высокая трава', 'Выживание', 'survival-kit', 'grass-large', { targetHeight: 1 }),
    m('survival-grass', 'Трава', 'Выживание', 'survival-kit', 'grass', { targetHeight: 1 }),
    m('survival-metal-panel-narrow', 'Metal panel узкий', 'Выживание', 'survival-kit', 'metal-panel-narrow', { targetHeight: 1 }),
    m('survival-metal-panel-screws-half', 'Metal panel screws половина', 'Выживание', 'survival-kit', 'metal-panel-screws-half', { targetHeight: 1 }),
    m('survival-metal-panel-screws-narrow', 'Metal panel screws узкий', 'Выживание', 'survival-kit', 'metal-panel-screws-narrow', { targetHeight: 1 }),
    m('survival-metal-panel-screws', 'Metal panel screws', 'Выживание', 'survival-kit', 'metal-panel-screws', { targetHeight: 1 }),
    m('survival-metal-panel', 'Metal panel', 'Выживание', 'survival-kit', 'metal-panel', { targetHeight: 1 }),
    m('survival-patch-grass-large', 'Patch Высокая трава', 'Выживание', 'survival-kit', 'patch-grass-large', { targetHeight: 1 }),
    m('survival-patch-grass', 'Patch Трава', 'Выживание', 'survival-kit', 'patch-grass', { targetHeight: 1 }),
    m('survival-resource-planks', 'Resource planks', 'Выживание', 'survival-kit', 'resource-planks', { targetHeight: 1 }),
    m('survival-resource-stone-large', 'Resource Камень большой', 'Выживание', 'survival-kit', 'resource-stone-large', { targetHeight: 1 }),
    m('survival-resource-stone', 'Resource Камень', 'Выживание', 'survival-kit', 'resource-stone', { targetHeight: 1 }),
    m('survival-resource-wood', 'Resource дерево', 'Выживание', 'survival-kit', 'resource-wood', { targetHeight: 1 }),
    m('survival-rock-a', 'Камень a', 'Выживание', 'survival-kit', 'rock-a', { targetHeight: 1 }),
    m('survival-rock-b', 'Камень b', 'Выживание', 'survival-kit', 'rock-b', { targetHeight: 1 }),
    m('survival-rock-c', 'Камень c', 'Выживание', 'survival-kit', 'rock-c', { targetHeight: 1 }),
    m('survival-rock-flat-grass', 'Камень плоский Трава', 'Выживание', 'survival-kit', 'rock-flat-grass', { targetHeight: 1 }),
    m('survival-rock-flat', 'Камень плоский', 'Выживание', 'survival-kit', 'rock-flat', { targetHeight: 1 }),
    m('survival-rock-sand-a', 'Камень Песок a', 'Выживание', 'survival-kit', 'rock-sand-a', { targetHeight: 1 }),
    m('survival-rock-sand-b', 'Камень Песок b', 'Выживание', 'survival-kit', 'rock-sand-b', { targetHeight: 1 }),
    m('survival-rock-sand-c', 'Камень Песок c', 'Выживание', 'survival-kit', 'rock-sand-c', { targetHeight: 1 }),
    m('survival-signpost-single', 'Signpost одинарный', 'Выживание', 'survival-kit', 'signpost-single', { targetHeight: 1 }),
    m('survival-signpost', 'Signpost', 'Выживание', 'survival-kit', 'signpost', { targetHeight: 1 }),
    m('survival-structure-canvas', 'Structure canvas', 'Выживание', 'survival-kit', 'structure-canvas', { targetHeight: 1 }),
    m('survival-structure-floor', 'Structure пол', 'Выживание', 'survival-kit', 'structure-floor', { targetHeight: 1 }),
    m('survival-structure-metal-doorway', 'Structure metal проём', 'Выживание', 'survival-kit', 'structure-metal-doorway', { targetHeight: 1 }),

    // === Арена === (50)
    m('mini-arena-banner', 'Знамя', 'Арена', 'mini-arena', 'banner', { targetHeight: 1.5 }),
    m('mini-arena-block', 'Блок', 'Арена', 'mini-arena', 'block', { targetHeight: 1.2 }),
    m('mini-arena-border-corner', 'Бордюр угол', 'Арена', 'mini-arena', 'border-corner', { targetHeight: 1.2 }),
    m('mini-arena-border-straight', 'Бордюр Прямой участок', 'Арена', 'mini-arena', 'border-straight', { targetHeight: 1.2 }),
    m('mini-arena-bricks', 'Кирпичи', 'Арена', 'mini-arena', 'bricks', { targetHeight: 1.2 }),
    m('mini-arena-character-soldier', 'Персонаж Солдат', 'Арена', 'mini-arena', 'character-soldier', { targetHeight: 1.2 }),
    m('mini-arena-column-damaged', 'Колонна повреждённый', 'Арена', 'mini-arena', 'column-damaged', { targetHeight: 2 }),
    m('mini-arena-column', 'Колонна', 'Арена', 'mini-arena', 'column', { targetHeight: 2 }),
    m('mini-arena-floor-detail', 'Пол Деталь', 'Арена', 'mini-arena', 'floor-detail', { targetHeight: 0.4 }),
    m('mini-arena-floor', 'Пол', 'Арена', 'mini-arena', 'floor', { targetHeight: 0.4 }),
    m('mini-arena-stairs-corner-inner', 'Лестница угол внутр.', 'Арена', 'mini-arena', 'stairs-corner-inner', { targetHeight: 1 }),
    m('mini-arena-stairs-corner', 'Лестница угол', 'Арена', 'mini-arena', 'stairs-corner', { targetHeight: 1 }),
    m('mini-arena-stairs', 'Лестница', 'Арена', 'mini-arena', 'stairs', { targetHeight: 1 }),
    m('mini-arena-statue', 'Статуя', 'Арена', 'mini-arena', 'statue', { targetHeight: 3 }),
    m('mini-arena-tree', 'Дерево', 'Арена', 'mini-arena', 'tree', { targetHeight: 1.2 }),
    m('mini-arena-trophy', 'Кубок', 'Арена', 'mini-arena', 'trophy', { targetHeight: 1 }),
    m('mini-arena-wall-corner', 'Стена угол', 'Арена', 'mini-arena', 'wall-corner', { targetHeight: 2 }),
    m('mini-arena-wall-gate', 'Стена Ворота', 'Арена', 'mini-arena', 'wall-gate', { targetHeight: 2 }),
    m('mini-arena-wall', 'Стена', 'Арена', 'mini-arena', 'wall', { targetHeight: 2 }),
    m('mini-arena-weapon-rack', 'Оружие стойка', 'Арена', 'mini-arena', 'weapon-rack', { targetHeight: 1.5 }),
    m('mini-arena-weapon-spear', 'Оружие Копьё', 'Арена', 'mini-arena', 'weapon-spear', { targetHeight: 1.5 }),
    m('mini-arena-weapon-sword', 'Оружие Меч', 'Арена', 'mini-arena', 'weapon-sword', { targetHeight: 1.5 }),
    m('conveyor-arrow-basic-rounded', 'Стрела basic rounded', 'Арена', 'conveyor-kit', 'arrow-basic-rounded', { targetHeight: 0.6 }),
    m('conveyor-arrow-basic', 'Стрела basic', 'Арена', 'conveyor-kit', 'arrow-basic', { targetHeight: 0.6 }),
    m('conveyor-arrow-rounded', 'Стрела rounded', 'Арена', 'conveyor-kit', 'arrow-rounded', { targetHeight: 0.6 }),
    m('conveyor-arrow', 'Стрела', 'Арена', 'conveyor-kit', 'arrow', { targetHeight: 0.6 }),
    m('conveyor-box-large', 'Коробка большой', 'Арена', 'conveyor-kit', 'box-large', { targetHeight: 1 }),
    m('conveyor-box-long', 'Коробка длинный', 'Арена', 'conveyor-kit', 'box-long', { targetHeight: 1 }),
    m('conveyor-box-small', 'Коробка маленький', 'Арена', 'conveyor-kit', 'box-small', { targetHeight: 1 }),
    m('conveyor-box-wide', 'Коробка широкий', 'Арена', 'conveyor-kit', 'box-wide', { targetHeight: 1 }),
    m('conveyor-conveyor-bars-fence', 'Конвейер bars Забор', 'Арена', 'conveyor-kit', 'conveyor-bars-fence', { targetHeight: 0.4 }),
    m('conveyor-conveyor-bars-high', 'Конвейер bars высокий', 'Арена', 'conveyor-kit', 'conveyor-bars-high', { targetHeight: 0.4 }),
    m('conveyor-conveyor-bars-sides', 'Конвейер bars sides', 'Арена', 'conveyor-kit', 'conveyor-bars-sides', { targetHeight: 0.4 }),
    m('conveyor-conveyor-bars-stripe-fence', 'Конвейер bars stripe Забор', 'Арена', 'conveyor-kit', 'conveyor-bars-stripe-fence', { targetHeight: 0.4 }),
    m('conveyor-conveyor-bars-stripe-high', 'Конвейер bars stripe высокий', 'Арена', 'conveyor-kit', 'conveyor-bars-stripe-high', { targetHeight: 0.4 }),
    m('conveyor-conveyor-bars-stripe-side', 'Конвейер bars stripe бок', 'Арена', 'conveyor-kit', 'conveyor-bars-stripe-side', { targetHeight: 0.4 }),
    m('conveyor-conveyor-bars-stripe', 'Конвейер bars stripe', 'Арена', 'conveyor-kit', 'conveyor-bars-stripe', { targetHeight: 0.4 }),
    m('conveyor-conveyor-bars', 'Конвейер bars', 'Арена', 'conveyor-kit', 'conveyor-bars', { targetHeight: 0.4 }),
    m('conveyor-conveyor-cross', 'Конвейер крест', 'Арена', 'conveyor-kit', 'conveyor-cross', { targetHeight: 0.4 }),
    m('conveyor-conveyor-junction-t', 'Конвейер Развилка t', 'Арена', 'conveyor-kit', 'conveyor-junction-t', { targetHeight: 0.4 }),
    m('conveyor-conveyor-long-part-end', 'Конвейер длинный part конец', 'Арена', 'conveyor-kit', 'conveyor-long-part-end', { targetHeight: 0.4 }),
    m('conveyor-conveyor-long-part-middle', 'Конвейер длинный part middle', 'Арена', 'conveyor-kit', 'conveyor-long-part-middle', { targetHeight: 0.4 }),
    m('conveyor-conveyor-long-sides-part-end', 'Конвейер длинный sides part конец', 'Арена', 'conveyor-kit', 'conveyor-long-sides-part-end', { targetHeight: 0.4 }),
    m('conveyor-conveyor-long-sides-part-middle', 'Конвейер длинный sides part middle', 'Арена', 'conveyor-kit', 'conveyor-long-sides-part-middle', { targetHeight: 0.4 }),
    m('conveyor-conveyor-long-sides', 'Конвейер длинный sides', 'Арена', 'conveyor-kit', 'conveyor-long-sides', { targetHeight: 0.4 }),
    m('conveyor-conveyor-long-stripe-sides-part-end', 'Конвейер длинный stripe sides part конец', 'Арена', 'conveyor-kit', 'conveyor-long-stripe-sides-part-end', { targetHeight: 0.4 }),
    m('conveyor-conveyor-long-stripe-sides-part-middle', 'Конвейер длинный stripe sides part middle', 'Арена', 'conveyor-kit', 'conveyor-long-stripe-sides-part-middle', { targetHeight: 0.4 }),
    m('conveyor-conveyor-long-stripe-sides', 'Конвейер длинный stripe sides', 'Арена', 'conveyor-kit', 'conveyor-long-stripe-sides', { targetHeight: 0.4 }),
    m('conveyor-conveyor-long-stripe', 'Конвейер длинный stripe', 'Арена', 'conveyor-kit', 'conveyor-long-stripe', { targetHeight: 0.4 }),
    m('conveyor-conveyor-long', 'Конвейер длинный', 'Арена', 'conveyor-kit', 'conveyor-long', { targetHeight: 0.4 }),

    // === Персонажи === (33)
    m('mini-characters-character-female-a', 'Аня', 'Персонажи', 'mini-characters', 'character-female-a', { targetHeight: 1.7 }),
    m('mini-characters-character-female-b', 'Маша', 'Персонажи', 'mini-characters', 'character-female-b', { targetHeight: 1.7 }),
    m('mini-characters-character-female-c', 'Лена', 'Персонажи', 'mini-characters', 'character-female-c', { targetHeight: 1.7 }),
    m('mini-characters-character-female-d', 'Катя', 'Персонажи', 'mini-characters', 'character-female-d', { targetHeight: 1.7 }),
    m('mini-characters-character-female-e', 'Оля', 'Персонажи', 'mini-characters', 'character-female-e', { targetHeight: 1.7 }),
    m('mini-characters-character-female-f', 'Настя', 'Персонажи', 'mini-characters', 'character-female-f', { targetHeight: 1.7 }),
    m('mini-characters-character-male-a', 'Костя', 'Персонажи', 'mini-characters', 'character-male-a', { targetHeight: 1.7 }),
    m('mini-characters-character-male-b', 'Максим', 'Персонажи', 'mini-characters', 'character-male-b', { targetHeight: 1.7 }),
    m('mini-characters-character-male-c', 'Дима', 'Персонажи', 'mini-characters', 'character-male-c', { targetHeight: 1.7 }),
    m('mini-characters-character-male-d', 'Саша', 'Персонажи', 'mini-characters', 'character-male-d', { targetHeight: 1.7 }),
    m('mini-characters-character-male-e', 'Артём', 'Персонажи', 'mini-characters', 'character-male-e', { targetHeight: 1.7 }),
    m('mini-characters-character-male-f', 'Лёша', 'Персонажи', 'mini-characters', 'character-male-f', { targetHeight: 1.7 }),

    // === ДЕТСКАЯ ПЛОЩАДКА (Poly Pizza, CC-BY 3.0) ===
    // Используются в L2 «Игры в кальмара» (Дальгона). Атрибуция авторов
    // в /public/playground-kit/CREDITS.txt.
    mu('pg-slide-google',     'Горка (Poly)',     'Площадка',
       '/playground-kit/slide_google.glb',     { targetHeight: 4 }),
    mu('pg-swing-google',     'Качели (Google)',  'Площадка',
       '/playground-kit/swing_set_google.glb', { targetHeight: 3.5 }),
    mu('pg-seesaw',           'Качели-балансир',  'Площадка',
       '/playground-kit/seesaw_2.glb',         { targetHeight: 1.5 }),
    mu('pg-carousel',         'Карусель',         'Площадка',
       '/playground-kit/merry_go_round.glb',   { targetHeight: 2.5 }),
    mu('pg-jungle-gym',       'Лазалка-комплекс', 'Площадка',
       '/playground-kit/jungle_gym.glb',       { targetHeight: 4 }),
    // Kenney CC0 — старинная скамейка с кладбища (выбрана МИНом)
    m('pg-bench',             'Скамья парковая',  'Площадка', 'graveyard-kit', 'bench',
      { targetHeight: 1.2 }),
    // Двойной фонарь с кладбища
    m('pg-lamp-double',       'Фонарь двойной',   'Площадка', 'graveyard-kit', 'lightpost-double',
      { targetHeight: 4 }),
    // Детальное дерево из nature-kit
    m('pg-tree-detailed',     'Дерево детальное', 'Площадка', 'nature-kit', 'tree_detailed',
      { targetHeight: 4 }),
    // Куст детальный
    m('pg-bush-detailed',     'Куст',             'Площадка', 'nature-kit', 'plant_bushDetailed',
      { targetHeight: 1.2 }),
    // Забор из досок
    m('pg-fence-planks',      'Забор',            'Площадка', 'nature-kit', 'fence_planks',
      { targetHeight: 1.5 }),

    // === ЛЕГО-СЕТ (задача 09) — паритет со студией ===
    mc('lego-brick-1x1', 'Лего 1×1',  'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 1, sy: 1, sz: 1, color: '#e02a2a', material: 'studs', dy: 0.5 },
    ]),
    mc('lego-brick-1x2', 'Лего 1×2',  'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 2, sy: 1, sz: 1, color: '#2a6fe0', material: 'studs', dy: 0.5 },
    ]),
    mc('lego-brick-1x4', 'Лего 1×4',  'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 4, sy: 1, sz: 1, color: '#f0c020', material: 'studs', dy: 0.5 },
    ]),
    mc('lego-brick-2x2', 'Лего 2×2',  'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 2, sy: 1, sz: 2, color: '#35ba5c', material: 'studs', dy: 0.5 },
    ]),
    mc('lego-brick-2x4', 'Лего 2×4',  'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 4, sy: 1, sz: 2, color: '#e07a30', material: 'studs', dy: 0.5 },
    ]),
    mc('lego-brick-2x8', 'Лего 2×8',  'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 8, sy: 1, sz: 2, color: '#9b5cf0', material: 'studs', dy: 0.5 },
    ]),
    mc('lego-plate-1x1', 'Плита 1×1', 'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 1, sy: 0.35, sz: 1, color: '#cfd2d6', material: 'studs', dy: 0.175 },
    ]),
    mc('lego-plate-1x2', 'Плита 1×2', 'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 2, sy: 0.35, sz: 1, color: '#cfd2d6', material: 'studs', dy: 0.175 },
    ]),
    mc('lego-plate-2x2', 'Плита 2×2', 'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 2, sy: 0.35, sz: 2, color: '#cfd2d6', material: 'studs', dy: 0.175 },
    ]),
    mc('lego-plate-4x4', 'Плита 4×4', 'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 4, sy: 0.35, sz: 4, color: '#9aa0a6', material: 'studs', dy: 0.175 },
    ]),
    mc('lego-slope-30', 'Скат 30°', 'Лего-сет', [
        { kind: 'primitive', type: 'wedge', sx: 2, sy: 1, sz: 2, color: '#e02a2a', material: 'studs', dy: 0.5 },
    ]),
    mc('lego-slope-45', 'Скат 45°', 'Лего-сет', [
        { kind: 'primitive', type: 'wedge', sx: 2, sy: 2, sz: 2, color: '#2a6fe0', material: 'studs', dy: 1 },
    ]),
    mc('lego-slope-60', 'Скат 60°', 'Лего-сет', [
        { kind: 'primitive', type: 'wedge', sx: 2, sy: 3, sz: 2, color: '#f0c020', material: 'studs', dy: 1.5 },
    ]),
    mc('lego-tree', 'Лего-дерево', 'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 1, sy: 3, sz: 1, color: '#8a5a2b', material: 'studs', dy: 1.5 },
        { kind: 'primitive', type: 'cube', sx: 3, sy: 2, sz: 3, color: '#35ba5c', material: 'studs', dy: 4 },
        { kind: 'primitive', type: 'cube', sx: 2, sy: 1.5, sz: 2, color: '#2e9e4c', material: 'studs', dy: 5.5 },
    ], { targetHeight: 6 }),
    mc('lego-bush', 'Лего-куст', 'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 2, sy: 1, sz: 2, color: '#2e9e4c', material: 'studs', dy: 0.5 },
        { kind: 'primitive', type: 'cube', sx: 1, sy: 1, sz: 1, color: '#35ba5c', material: 'studs', dy: 1.3, dx: 0.4 },
        { kind: 'primitive', type: 'cube', sx: 1, sy: 1, sz: 1, color: '#35ba5c', material: 'studs', dy: 1.3, dx: -0.5, dz: 0.3 },
    ], { targetHeight: 1.8 }),
    mc('lego-house-small', 'Лего-дом', 'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 6, sy: 4, sz: 6, color: '#e02a2a', material: 'studs', dy: 2 },
        { kind: 'primitive', type: 'wedge', sx: 7, sy: 2.5, sz: 7, color: '#2a6fe0', material: 'studs', dy: 5.25 },
        { kind: 'primitive', type: 'cube', sx: 1.4, sy: 2.4, sz: 0.3, color: '#f0c020', material: 'studs', dy: 1.2, dz: -3.05 },
        { kind: 'primitive', type: 'cube', sx: 1.2, sy: 1.2, sz: 0.3, color: '#9ad0ff', material: 'studs', dy: 2.6, dz: -3.05, dx: 1.8 },
    ], { targetHeight: 6.5 }),
    mc('lego-car-racer', 'Лего-машина', 'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 6, sy: 1, sz: 3, color: '#e02a2a', material: 'studs', dy: 0.9 },
        { kind: 'primitive', type: 'cube', sx: 2.5, sy: 1.2, sz: 2.6, color: '#2a6fe0', material: 'studs', dy: 1.9, dx: 0.6 },
        { kind: 'primitive', type: 'cylinder', sx: 1, sy: 0.6, sz: 1, color: '#222428', material: 'studs', dy: 0.5, dx: 1.8, dz: 1.6, rz: Math.PI / 2 },
        { kind: 'primitive', type: 'cylinder', sx: 1, sy: 0.6, sz: 1, color: '#222428', material: 'studs', dy: 0.5, dx: 1.8, dz: -1.6, rz: Math.PI / 2 },
        { kind: 'primitive', type: 'cylinder', sx: 1, sy: 0.6, sz: 1, color: '#222428', material: 'studs', dy: 0.5, dx: -1.8, dz: 1.6, rz: Math.PI / 2 },
        { kind: 'primitive', type: 'cylinder', sx: 1, sy: 0.6, sz: 1, color: '#222428', material: 'studs', dy: 0.5, dx: -1.8, dz: -1.6, rz: Math.PI / 2 },
    ], { targetHeight: 2.5 }),
    mc('lego-stairs', 'Лего-ступеньки', 'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 3, sy: 1, sz: 1.2, color: '#cfd2d6', material: 'studs', dy: 0.5, dz: 1.8 },
        { kind: 'primitive', type: 'cube', sx: 3, sy: 2, sz: 1.2, color: '#cfd2d6', material: 'studs', dy: 1.0, dz: 0.6 },
        { kind: 'primitive', type: 'cube', sx: 3, sy: 3, sz: 1.2, color: '#cfd2d6', material: 'studs', dy: 1.5, dz: -0.6 },
        { kind: 'primitive', type: 'cube', sx: 3, sy: 4, sz: 1.2, color: '#cfd2d6', material: 'studs', dy: 2.0, dz: -1.8 },
    ], { targetHeight: 4 }),
    mc('lego-minifig', 'Лего-человечек', 'Лего-сет', [
        { kind: 'primitive', type: 'cube', sx: 1.4, sy: 0.6, sz: 0.9, color: '#f0c020', material: 'studs', dy: 0.3 },
        { kind: 'primitive', type: 'cube', sx: 1.2, sy: 1.6, sz: 0.8, color: '#2a6fe0', material: 'studs', dy: 1.4 },
        { kind: 'primitive', type: 'cube', sx: 0.4, sy: 1.4, sz: 0.4, color: '#f0c020', material: 'studs', dy: 1.4, dx: 0.85 },
        { kind: 'primitive', type: 'cube', sx: 0.4, sy: 1.4, sz: 0.4, color: '#f0c020', material: 'studs', dy: 1.4, dx: -0.85 },
        { kind: 'primitive', type: 'cube', sx: 1.1, sy: 1.0, sz: 0.85, color: '#f5c84a', material: 'studs', dy: 2.7 },
        { kind: 'primitive', type: 'cylinder', sx: 0.9, sy: 0.5, sz: 0.9, color: '#e02a2a', material: 'studs', dy: 3.4 },
    ], { targetHeight: 3.8 }),

// TOTAL: 644

];

// Авто-проставляем gameplay для всех моделей в категории «Оружие» —
// бластеры (ranged), мечи/копья (melee), щиты пропускаем.
for (const m of MODEL_TYPES) {
    if (m.category !== 'Оружие') continue;
    if (m.gameplay) continue;            // уже задан вручную
    const id = m.id;
    if (id.startsWith('shield')) continue;
    if (id.startsWith('blaster-blaster-')) {
        m.gameplay = {
            type: 'weapon-ranged',
            isWeapon: true,
            weaponKind: 'ranged',
            description: 'Дальнобойное оружие. Нажми «Добавить в инвентарь» чтобы выдать игроку.',
            defaultParams: {
                damage: 25, fireRate: 0.18, range: 80,
                magazine: 30, reserve: 120, reloadTime: 1.6, auto: true,
            },
            // Базовые настройки. Подкручиваются через window.weapon3rd(...).
            viewModel: {
                scale3rd: 1.2, scale1st: 0.7,
                position3rd: { x: 0, y: 0, z: 0 },
                rotation3rd: { x: 0, y: 0, z: 0 },
            },
        };
    } else if (id === 'weapon-sword') {
        m.gameplay = {
            type: 'weapon-melee', isWeapon: true, weaponKind: 'melee',
            description: 'Меч. ЛКМ — широкий взмах.',
            defaultParams: { damage: 40, fireRate: 0.55, range: 2.4, meleeArc: 1.2, auto: false },
            viewModel: {
                scale3rd: 1.4, scale1st: 1.0,
                position3rd: { x: 0, y: 0, z: 0 },
                rotation3rd: { x: 0, y: 0, z: 0 },
            },
        };
    } else if (id === 'weapon-spear') {
        m.gameplay = {
            type: 'weapon-melee', isWeapon: true, weaponKind: 'melee',
            description: 'Копьё. ЛКМ — выпад вперёд.',
            defaultParams: { damage: 55, fireRate: 0.85, range: 3.2, meleeArc: 0.6, auto: false },
            viewModel: {
                scale3rd: 1.4, scale1st: 1.0,
                position3rd: { x: 0, y: 0, z: 0 },
                rotation3rd: { x: 0, y: 0, z: 0 },
            },
        };
    }
}

export const MODEL_CATEGORIES = Array.from(new Set(MODEL_TYPES.map(m => m.category)));

export function getModelType(id) {
    return MODEL_TYPES.find(m => m.id === id) || null;
}
