**Refactor:**
> Introduced RootService as composition root with explicit startup/shutdown order
> Introduced PlayerContext system unifying 18 scattered state maps with lifecycle state machine
> Introduced EventBus domain event system decoupling MinigameManager cross-domain calls
> Extracted infrastructure services: VersionService, EconomyService, SeasonsService, NmsAdapter, MaterialResolver
> Split GameSession into FishSelector, FishMovementSimulator, MinigameRenderer, FishValueCalculator
> Split Cmd into SellCommandHandler, GiveCommandHandler, CompeteCommandHandler, ConfigCommandHandler, AdminCommandHandler
> Split Fish into ChargeProgressTracker, HookProjectile, BiteCheckScheduler, FishItemFactory, FishAnimationService, FishBroadcastService
> Split GUI into GUICommons, HookMaterialGUIHandler, FishDexGUIHandler, CompetitionGUIHandler
**Fix:**
> Fixed startup NPE caused by MessageManager not initialized before Config
> Fixed Compete init NPE caused by scheduler not injected before manager construction
> Fixed BukkitRunnable cancel throwing "Not scheduled yet" on scheduler fallback path
> Fixed all log language keys silently falling back to hardcoded defaults
> Fixed hardcoded log messages across the codebase
> Fixed GUI permission check log output in non-debug mode
**Improve:**
> Removed 9 empty dead code files causing cross-package name confusion
> Removed ~1000 lines of dead code from GUI
> Fixed XSeries rule violations in EntityBatchProcessor
> Cleaned duplicate imports