systems
Refactor the sample game logic by moving encounter-related logic from
the monolithic `progress` system into a dedicated `encounter` module.
This includes:
- Moving combat state construction and run state management to
`system/encounter`.
- Decoupling player stats and inventory from the general progress
logic.
- Improving type safety for `EncounterData` using generics.
- Adding navigation helpers to the map system.
- Cleaning up imports and improving code formatting.