# 🔒 CODE FREEZE NOTICE ## Date: March 29, 2026 ## Duration: Core Separation Refactor ### Reason Implementing Command Pattern and Observer Pattern to decouple UI and logic interfaces. ### Scope This refactor will: 1. Extract TUI code from `core` module into standalone UI module 2. Implement Command Pattern for all user interactions 3. Implement Observer Pattern for state change notifications 4. Make `core` completely UI-agnostic 5. Enable multiple simultaneous UIs (TUI + future ScalaFX GUI) ### Module Structure (Target) ``` modules/ core/ # Pure game logic, Command, Observer traits, CommandInvoker api/ # Data models (unchanged) ui/ # TUI and GUI implementations (both depend only on core) ``` ### Expected Impact - All regression tests must pass - Build must succeed with new module structure - Core contains zero UI references - TUI and potential GUI can run independently or simultaneously ### Blocked Changes Do not: - Add new features to `core` - Modify `core` API before Message & Observer traits are implemented - Create direct dependencies between UI modules - Add UI code to `core` Keep developing in separate branches until refactor is complete. --- Status: **IN PROGRESS** ✏️