- Moved peewee/fastapi imports inside methods to enable testing without DB
- Added InMemoryQueryResult for mock-compatible filtering/sorting
- Updated interfaces with @runtime_checkable for isinstance() checks
- Fixed get_or_none() to accept keyword arguments
- _player_to_dict() now handles both dicts and Peewee models
Result: All 14 tests pass without database connection.
Service can now be fully tested with MockPlayerRepository.