# M02-GMP-INPUT-PROFILE-335-001 — WoW 3.3.5a input profile ## Ownership - Target: M02 - Program: GMP/QAR - Owner/Agent ID: sindo-main-codex - Branch: `work/sindo-main-codex/m02-input-profile-335` - Lease expires UTC: 2026-07-17 - Integrator: M02 milestone integrator ## Outcome Add a profile-aware, remappable `Blizzlike335` input path whose default movement bindings match the extracted build-12340 binding table while preserving the existing `RenderSandbox` controls. Add deterministic turn intent and keyboard turn consumption at the server-contract default turn rate. ## Non-goals - Implement jump/fall/swim, network prediction or server reconciliation. - Claim complete movement or camera parity from binding and turn-rate evidence. - Persist user keybindings or build keybinding UI. - Commit proprietary extracted client files. - Mark M02 complete or edit its checklist/Evidence. ## Paths - Exclusive: `src/tests/fixtures/player_input_profile_335.json`, this claim - Shared/hotspots: `project.godot`, `src/domain/input/move_intent.gd`, `src/gameplay/input/player_input_actions.gd`, `src/gameplay/input/player_input_source.gd`, `src/gameplay/movement/local_player_movement_controller.gd`, `src/scenes/player/third_person_wow_controller.gd`, `src/scenes/player/third_person_camera_rig.gd`, player/movement verifiers and regression scene, `docs/modules/player-input.md`, `docs/modules/local-player-movement.md`, `docs/modules/third-person-camera.md` - Generated/ignored: local `.godot`, native DLL and proprietary extracted corpus ## Contracts and data - `MoveIntent` gains an immutable, clamped signed turn axis. - `PlayerInputSource` selects explicit sandbox or compatibility action sets at construction and routes compatibility A/D to strafe while camera rotation is held. - `LocalPlayerMovementController` converts turn intent into a deterministic yaw delta without reading engine input or owning a scene transform. - A sanitized JSON fixture records selected binding facts, source hashes and the pinned TrinityCore 3.3.5 server-contract commit. ## Dependencies - Requires: merged sandbox capability package on master `c3094c9`. - Blocks: final M02 integration audit and milestone closeout. - External state: local extracted build-12340 binding files are evidence inputs only; committed tests are reproducible without them. ## Verification - Fixture schema/provenance and selected default-binding regression. - Pure profile composition, A/D turn, Q/E strafe and camera-held A/D strafe cases. - Deterministic turn-rate and controller integration regression. - Existing M02 and repository gates remain required. ## Documentation deliverables - Updated input/movement public API, profile matrix, data flow, sequence, failure/recovery, fidelity provenance and source maps. ## Simplicity and naming - Important names: `turn_axis`, `BLIZZLIKE_STRAFE_LEFT`, `TURN_LEFT`. - Simplest approach: one profile selection at composition plus one scalar intent. - Rejected complexity: input-context framework, command bus and persisted binding store. - Unavoidable complexity: compatibility A/D behavior depends on camera-rotate state. - Measured optimization evidence: not applicable. ## Status - State: active - Done: audited current mappings and captured build-12340/source-core provenance - Next: implement contracts, profile mapping, regression fixtures and docs - Blocked by: