Expand description
export_game_core_abi! — генерирует #[wasm_bindgen] impl для игрового
GameCore, снимая ~25-метод boilerplate, зафиксированный §3.4 PLAN.md.
Все методы ниже — механические 1:1-делегации в уже generic
EngineSim<G>/SnapshotPacker, чья сигнатура зафиксирована трейтом
crate::sim::GameSim<G> независимо от конкретной игры — не дизайн под
гипотетическую вторую игру, а извлечение уже существующего соответствия
(см. PLAN_4_details.md §5).
Контракт: тип-цель обязан иметь поля state: vimp_engine_core::game::EngineSim<G>
(под именем EngineSim<...>, конкретный G — забота игрового crate) и
packer: vimp_engine_core::snapshot::SnapshotPacker, и раскрываться в
модуле, где уже подключён wasm-bindgen как зависимость (пути ниже
квалифицированы через ::wasm_bindgen, поэтому не зависят от локальных
use, но зависят от наличия крейта в Cargo.toml вызывающей стороны).
new (парсинг игрового конфига) и не-#[wasm_bindgen] тестовые
аксессоры в макрос не входят — остаются рукописными в game-crate.