What problem does it solve? Gameplay code that queries Unity input directly becomes untestable, hard to port between keyboard, gamepad, and touch, and tightly coupled to hardware. This Skill provides an architecture pattern that routes all input through an IInputProvider abstraction layer. ## Core Features & Use Cases - Input Abstraction Layer: Defines an IInputProvider interface so no gameplay system queries InputAction directly, enabling mocking in unit tests and input recording/replay. - Action Map Design: Organizes Gameplay and UI action maps in the .inputactions asset with code-driven context switching for gameplay, pause menus, cutscenes, and dialogue. - Mobile Touch Patterns: Implements virtual joysticks, touch action buttons via IPointerDownHandler, and swipe detection using EnhancedTouch from the new Input System. - Use Case: When building a cross-platform Unity game, use this Skill to design the input architecture so the same gameplay code runs on PC keyboard, console gamepad, and mobile touch without modification. ## Quick Start Design the input handling architecture for my Unity game using the new Input System with an IInputProvider abstraction and separate Gameplay and UI action maps.