Window¶
Purpose¶
Owns the main editor-window shell, editor lifecycle coordination, navigation helpers, window layout systems, maintenance windows, and editor-facing utility windows used throughout Snap Studio Pro.
This territory contains the application-shell layer of Snap Studio Pro.
Owns¶
- Main editor window lifecycle
- Window layout orchestration
- Workspace tab routing
- Window repaint coordination
- Editor window startup/shutdown behaviour
- Window navigation helpers
- Editor popup/dialog windows
- Editor maintenance windows
- Window-specific preferences
- Window-level hotkey handling
Does NOT Own¶
- Rendering implementation
- Preview scene lifecycle ownership
- Export execution
- Feature-domain workflows
- Thumbnail rendering implementation
- Rendering pipeline ownership
Allowed Dependencies¶
Window may depend on:
- Panels
- Preview facades
- Feature services/controllers
- Infrastructure services
- Diagnostics/logging
- Thumbnail infrastructure
- Unity Editor window APIs
Window should avoid depending directly on:
- low-level rendering implementation systems
- pipeline-specific rendering internals
- feature implementation internals where avoidable
Notes¶
Window is intentionally orchestration-heavy.
It owns: - application-shell coordination - layout routing - window lifecycle management - tab selection - repaint coordination - editor navigation flow
PrefabPreviewWindow intentionally acts as the editor application shell for Snap Studio Pro.
That means it is expected to: - create panels - route UI - coordinate layout - manage editor-window lifecycle - connect major editor systems together
This is acceptable because Window is composition territory, not feature-domain territory.
Future Candidates¶
- Keep editor-window orchestration explicit and readable.
- Continue separating feature implementation from window lifecycle behaviour.
- Avoid hiding window composition behind reflection or service-locator patterns.
- Maintain clear ownership boundaries between Window, Panels, Preview, and Features.