- Исправлен баг `GameManager.NewGame()`: в режиме бесплатной игры (`payment.freeGame = true`) больше не выполняется проверка/списание баланса.
- Добавлен явный guard для free-play перед `Balance.CanStartGame()` и `Balance.SpendBalance(...)`, чтобы не было нежелательных списаний.
- Устранена ошибка закрытия лог-файла `Cannot access a disposed object`:
- `FileLogger` переведен на безопасный паттерн `Dispose(bool)` с идемпотентностью;
- добавлена защита от повторного закрытия/записи в уже закрытый поток;
- финализатор `FileLogger` больше не выполняет managed-cleanup.
- Устранен риск повторной очистки в `CompositeLogger`:
- добавлен флаг `_disposed`;
- `Dispose(bool)` теперь выполняется только один раз;
- финализатор вызывает `Dispose(false)` вместо полного `Dispose()`.
- Created AdvancedLoggingExample class demonstrating composite and file loggers
- Implemented multi-file logging setup with separate error and full logs
- Added game event and performance logging methods
- Included key input handling for log operations (flush, clear)
- Setup proper resource disposal on application quit