Lane D refresh packet 1: items and projectiles, +9,856 padded bytes strict
exact (4 functions), zero stable-verdict regressions.
- items.c: _item_update exact. Removes the invented storage unions and
punning casts; uses real point_from_line3d/dot_product3d helpers and
scoped locals. January items.obj references _point_from_line3d out of
line, so the COMDAT emission meets the owner ruling.
- projectiles.c: _projectile_update, _projectile_collision and
_projectile_collision_test_line exact. Debug-build (/Od) attested shapes:
the detonation-timer case fall-through, the `(moved = TRUE) &&` condition
and the duplicate magnitude_squared3d call. January projectiles.obj
references _point_from_line3d and _collision_test_line out of line; both
COMDATs are byte-identical to January's folded copies.
- parked.json: unpark _item_update (now exact).
Gate: ninja PASS, parks 150 active / 0 stale / 0 invalid, admission 0
contradicted / 0 revoked, fake scan 0 leads, castcheck clean.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Integrate verified source and data progress; exclude unproven COMMON ownership, held UB/asm forms, and address-named data credit. Stable sweep: 23 exact functions gained, zero lost.