• Nikitos's avatar
    Справочник внутренних биндингов дополнен: allowlist стал пустым
    · ab6bd259
    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