-
Nikitos создал
Сначала контракт, потом код (docs/highlevel/world.md §1.2 переписан с «чего нет» на факт): - `$.world.remove(target)` — цель обязательна (R2D_WORLD_REMOVE_NO_TARGET), промах R2D_WORLD_REMOVE_MISS; возвращает число узлов вместе с детьми. Замер: remove('#hero') → 1, all 15→14, тел 12→11; remove($('.goblin')) → 3. - `$.world.clear({ui})` — игровые узлы; persistent/HUD/стены bounds() живы: 15 узлов → 7, тел 12 → 6; {ui:true} снимает и UI; повторный clear() → 0. - `$.world.destroy()` — полный перезапуск: всё + границы/фон/гравитация 0/2000/timeScale 1/pause off → {nodes:6, bodies:0, ui:0, persistent:2}. - `$.collision.of('#hero')` → 'player' (было null): селектор разворачивается. - `$.grid.get` не заводим: канонический геттер `$.grid.at(g,cx,cy,fallback)`, count(g,value) уже был; тест фиксирует решение (14 проверок). D8-I1 (часть): `.parallax(null)` снова держится — было фактор 0.5 и звезда 60→160, стало null и 60→60 (10 проверок). Полный перенос смещения в render.js остаётся долгом. Красные до правки: world_api 45, collision_of 5, layers_parallax 2.6643c289