What problem does it solve? Managing game state across Phaser game objects, scenes, and the global registry often leads to tightly coupled code and missed state updates. This Skill provides guidance on using Phaser's DataManager to store custom key-value data with automatic change events, enabling reactive data binding between game systems. ## Core Features & Use Cases - Three-Level Data Storage: Store data per-GameObject (setData/getData), per-Scene (this.data), or globally across all scenes (this.registry). - Event-Driven Updates: Listen to setdata, changedata, changedata-{key}, and removedata events to react to state changes without polling. - Helper Operations: Use inc, toggle, merge, query, pop, and freeze for common state manipulation patterns. - Use Case: Build a HUD that automatically updates when the player's score changes by listening to changedata-score on the global registry, with proper listener cleanup on scene shutdown. ## Quick Start Show me how to store player health on a Phaser sprite and update a health bar whenever the value changes.