# Phase 1: Миграция всех симуляций на манифесты **Status:** ⬜ Not Started **Parent plan:** [PLAN.md](./PLAN.md) **Domain:** frontend ## Objective Перевести все ~49 симуляций на сам/регистрацию через `LabRegistry`. Перенести данные (catalogue meta, preview, theory) и поведение (open/stop/destroy) в манифесты. Удалить legacy-структуры. Сохранить глобальные имена через shim. ## Tasks - [ ] Для каждой симуляции зарегистрировать манифест (метаданные из SIMS, preview из P_*, theory из THEORY, open/stop/destroy из _openXxx + _pauseAllSims/closeSim веток). - [ ] Удалить массив `SIMS` (lab-glue.js) и объект `THEORY` (lab-init.js). - [ ] Удалить if-цепочку `openSim`, `_pauseAllSims`, switch в `closeSim`, `ALL_SIM_BODIES`/`ALL_CTRL_BARS`. - [ ] lab-init.js усохнуть до generic-логики (openSim/closeSim через реестр). - [ ] Shim глобальных имён (gSim, pSim, …) — их дёргают deep-link/поиск/инлайн-обработчики. - [ ] Сохранить обратную совместимость id (magnetic/coulomb→emfield, thinlens/mirrors/refraction→opticsbench, stereo:fig, hydrostatics:arg, molphys:arg, chemistry:arg, dynamics:arg, emfield:mode, opticsbench:mode). ## Files to Modify/Create - Все `frontend/js/labs/*.js` симуляции — добавить `LabRegistry.register(...)`. - `frontend/js/labs/lab-glue.js`, `frontend/js/labs/lab-init.js` — удалить legacy. ## Acceptance Criteria - Все симуляции открываются/работают как раньше (паритет). - Удалены все 6 точек дублирования из CONTEXT.md. - Deep-links и алиасы работают. ## Notes - Мигрировать пачками (по категориям) с проверкой паритета после каждой пачки (Big Bang допускает временную поломку между пачками). - Превью с зависимостями (random в P_ELECTROLYSIS) перенести как есть. ## Review Checklist - [ ] Ни одна симуляция не потеряна - [ ] Глобальные shim'ы на месте - [ ] Алиасы/deep-links работают - [ ] Legacy полностью удалён ## Handoff to Next Phase