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.
- _main_load_last_solo_map: MIN clamp on the terminator index (house rule 18)
- _main_get_window_count: named single-window predicate and a PIN of the
local player count (reopens its park)
- _observer_update_command: timer/last-timer/flag pointer walk mirroring
the exact sibling observer_update_velocities (reopens its park)
Rejected: _observer_update_positions (same-value carrier copy of
remaining_time), _main_crash (January writes through a null pointer),
_effect_generate_part (mismatched csprintf varargs).
Stable diff: 0 regressions; parks 236 -> 234.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
symbols.json names the observer maximum-acceleration table, sine_region_angle and the parameter / derivative real-count tables (HCEA names, static; separate statics proven by the 2-byte alignment gap). Writes the unwritten collision_test_differential and reopens collision_test_with_t (single result flag), check_penetration, postcheck and the acceleration/velocity/polynomial integrators. 6 parks removed. Adversarially verified in wave D; full build of the combined object_lights + observer set: 0 regressions, parks 391/0/0.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>