Marcer GameDVD Launcher v0.9.3 - Major refactoring with configurable color scheme and centralized code organization
- Refactor: Decompose LauncherApp ~300-line class into separate InputController for key handling and ReloadGameEntries; Lifecycle & Main-loop remain in AppHost
- Centralize hardcoded magic strings/constants: FavoritesRootName, DefaultFileName, DefaultTitle, scroll fractions, AvailableLines helper; remove redundant ArgsTemplate fallback
- Make color scheme configurable via 'Colors' section in launcher.config.json with Enum.TryParse<ConsoleColor> + default fallback
- Update MenuRenderer: remove dead maxRow logic, unify cache sizing via EnsureCache
- Document intentional error swallowing in FavoritesService.Save/UIErrorService
- Update README + AGENTS.md with configurable color docs
- Update launcher.config.example.json with new Colors section
- Update README.md with /create-release command
Release v0.9.2: MIT License + automated release notes
- Add MIT License to project root and license headers across all source files (C#, shell, batch)
- Include LICENSE in publish output via .csproj so it ships in release ZIPs
- Update GitHub Actions to latest versions (checkout v7, setup-dotnet v6, upload/download-artifact v7/v8, action-gh-release v3)
- Release workflow now uses the commit message body as release notes (via /create-release command)
- Add renovate.json for automated dependency updates
- Fix demo.sh setup script
- Update README.md and AGENTS.md with License sections and refreshed module overview
- Add .gitignore entry for Python virtual environments (.venv/)