-
Nikitos создал
Шесть engine.*-биндингов ($ .bodyGeneration, contactStay, physicsErrors, clearPhysicsErrors, setContactStay, setSnap) описаны в docs/internal/NATIVE.md новым подразделом «Контакты, ошибки физики и снаппинг вершин»: биндинг → что делает C → как видно из $ → чем проверено. Факты с живого движка: - engine.bodyGeneration(body) → uint32 поколение тела (у героя 2); $ сверяет genA/genB событий контакта и отбрасывает запись, если тело уничтожено и id переиспользован; - engine.contactStay(body) → false до включения, true после; setContactStay (body, true) → undefined (фаза stay opt-in: по умолчанию только begin/end/hit); - engine.physicsErrors() → {total: 0, overflow: false, errors: []}, код ошибки строкой (shape_invalid/body_limit/shape_index/unknown) — это ровно то, что отдаёт $.physics.errors(); - engine.clearPhysicsErrors() → undefined ($.physics.clear/report); - engine.setSnap(true) → true, renderInfo().viewport.snap = true; из $ это $.gfx.snap(on). В четырёх существующих строках таблицы дописаны полные имена, чтобы ссылки были буквальными. ПОБОЧНЫЙ ЭФФЕКТ: строка allowlist, ссылающаяся на реальный раздел справочника, стала мёртвой (гейт считает такое имя задокументированным) — поэтому сняты все десять строк engine.*, и в tests/api_docs_allowlist.txt теперь НОЛЬ строк исключений (остались шапка и история закрытого). То есть 3040 публичных имён гейт видит как задокументированные без единого исключения: любое новое имя без документации теперь падает сразу.ab6bd259