What's Changed
**Implemented Stories**
- [x] **Initialize Game Components**
- [x] The Game Loop initializes the Interpreter and View.
- [x] The Pydispatch bus is set up to mediate events between components.
- [x] **Manage Game Flow**
- [x] The Game Loop invokes the Interpreter to perform game steps.
- [x] The Game Loop checks for `Exit_Game` events after each step.
- [x] The Game Loop terminates the game if an `Exit_Game` event is received.
- [x] **Choices Flow**
- [x] The Interpreter sends `Put_Choice` events with options.
- [x] The View receives `Put_Choice` events and presents the options to the player.
- [x] The View captures user input when a `Put_Choice` event is active.
- [x] The View sends a `Make_Choice` event with the player's choice to the Interpreter.
- [x] The Interpreter receives the `Make_Choice` event and processes the choice.
- [x] **Exit Flow**
- [x] The View allows the player to trigger an exit command.
- [x] The Interpreter processes the exit command and dispatches an `Exit_Game` event.
- [x] The Game Loop receives the `Exit_Game` event, performs cleanup, and shuts down the game.
- [x] **CLI Entrypoint**
- [x] The CLI Supports manual testing of implemented stories
- [x] The CLI runs from terminal via `IFEngine` or `python -m engine.main`
- [x] **Logging Story**
- [x] Debug Log traces entry and decision points for `Interpereter`, `View`, and `Game`
- [x] Log messages clearly indicate module of origin: `[View] User picked choice north"`
- [x] Log is configured via `pyproject.toml`
**Full Changelog**: https://github.com/maxsu/IFProject/compare/0.0.1.pre-2...0.0.1.pre-3