# Movement & Collision Conformance Crib ## Phase Active phase: **L.2 - Movement & Collision Conformance**. Plan: `docs/plans/2026-04-29-movement-collision-conformance.md`. Roadmap: `docs/plans/2026-04-11-roadmap.md`. ## One-Sentence Framing B.3 shipped the MVP resolver foundation; L.2 is the holistic conformance program for physics, collision, buildings, edge/wall sliding, cell ownership, movement packets, and server correction. ## Active Movement Spine ```text InputDispatcher / PlayerMovementController -> MotionInterpreter + local body prediction -> PhysicsEngine.ResolveWithTransition -> TransitionTypes + BSPQuery + ShadowObjectRegistry -> ResolveResult contact/cell state -> MoveToState / AutonomousPosition outbound messages -> WorldSession server echo or correction diagnostics ``` ## Lane Ownership - L.2a: truth probes, diagnostics, fixture capture. - L.2b: movement wire/contact truth, cell id on packets, correction handling. - L.2c: transition parity, edge-slide, cliff-slide, precipice-slide, `NegPolyHit`. - L.2d: `CSphere` / `CCylSphere`, live entity shapes, building object identity. - L.2e: outdoor seams, `CELLARRAY`, `find_cell_list`, adjacent-cell checks, `cell_bsp`, building entry/exit boundaries. - L.2f: real-DAT fixtures and live retail-observer conformance. ## Non-Negotiables - Grep named retail before changing AC-specific physics or movement behavior. - Do not treat ACE accepting a position as proof of retail collision parity. - Do not reintroduce rewrite-from-zero collision guidance. Continue the partial retail port by L.2 lanes. - G.3 dungeon/portal delivery waits on L.2e for trustworthy cell/building ownership. - L.1 animation work must coordinate with L.2 when root motion or observer movement changes the predicted body path.