## ADDED Requirements

### Requirement: Docking is enabled at compile time

The build system SHALL define `IMGUI_HAS_DOCK` prior to compiling any translation unit that includes `imgui.h`.

#### Scenario: ImGui compiled with docking support
- **WHEN** the project is compiled with CMake
- **THEN** `IMGUI_HAS_DOCK` is defined for all imgui source files and any file including `imgui.h`

### Requirement: Docking is enabled at runtime

The application SHALL set `ImGuiConfigFlags_DockingEnable` in the ImGui IO configuration during initialization.

#### Scenario: Docking flag set on startup
- **WHEN** the application starts and `ImGuiContext::Initialize()` is called
- **THEN** `io.ConfigFlags` includes `ImGuiConfigFlags_DockingEnable`

### Requirement: Main dockspace spans the application window

The application SHALL create a full-viewport dockspace via `ImGui::DockSpaceOverViewport()` at the start of each frame's UI rendering.

#### Scenario: Dockspace created each frame
- **WHEN** `Application::RenderUI()` executes
- **THEN** `ImGui::DockSpaceOverViewport()` is called after `NewFrame()` and before any panel `Begin/End` calls

#### Scenario: Dockspace fills the entire viewport
- **WHEN** the application window is resized
- **THEN** the dockspace automatically fills the new window dimensions

### Requirement: All panels are dockable

All application panels SHALL be created as dockable ImGui windows that integrate with the dockspace.

#### Scenario: Panel windows use standard Begin/End
- **WHEN** any panel window is rendered
- **THEN** its `ImGui::Begin()` call does not include `SetNextWindowPos` or `SetNextWindowSize` calls
- **AND** the window can be dragged, docked, tabbed, or floated by the user

#### Scenario: Core panels cannot be collapsed
- **WHEN** the Scene Hierarchy, Layer Panel, Viewport, or Property Panel windows are rendered
- **THEN** each window is created with `ImGuiWindowFlags_NoCollapse`

### Requirement: Window visibility toggles persist

Existing View menu toggles for Stage Info and Demo Window SHALL continue to control window visibility.

#### Scenario: Toggle Stage Info visibility
- **WHEN** the user clicks "Stage Info" in the View menu
- **THEN** the Stage Info window appears or disappears
- **AND** the toggle state is reflected by the checkmark in the menu item

#### Scenario: Toggle Demo Window visibility
- **WHEN** the user clicks "ImGui Demo" in the View menu
- **THEN** the ImGui Demo Window appears or disappears
- **AND** the toggle state is reflected by the checkmark in the menu item

### Requirement: Dock layout persists across sessions

The docking layout SHALL be saved to and restored from `imgui.ini` automatically by ImGui's built-in persistence.

#### Scenario: Layout restored on restart
- **WHEN** the user arranges panels into a custom docking layout and restarts the application
- **THEN** the previous docking layout is restored