Shared¶
Purpose¶
Owns reusable editor UI building blocks shared across Snap Studio Pro panels.
This territory contains common IMGUI controls, reusable panel sections, shared interaction helpers, drag-and-drop systems, progress displays, reusable capture UI, theme-aware styling helpers, and lightweight editor UX infrastructure.
Shared exists to reduce duplicated editor UI behaviour across the Snap Studio Pro editor.
Owns¶
- Shared IMGUI helpers
- Shared reusable controls
- Shared panel validation utilities
- Shared drag-and-drop systems
- Shared progress UI
- Shared capture-facing UI sections
- Shared editor visual effects
- Shared panel styling/theme helpers
- Reusable editor interaction utilities
Does NOT Own¶
- Feature workflow orchestration
- Rendering implementation
- Preview scene lifecycle ownership
- Export execution
- Pipeline implementation
- Feature-domain business logic
Allowed Dependencies¶
Shared systems may depend on:
- Unity Editor IMGUI APIs
- Shared styles/themes
- Lightweight abstractions/contracts
- Preview facades where required
- Shared models/settings
Shared should avoid depending on:
- rendering implementation systems
- export execution systems
- feature orchestration systems
- preview lifecycle systems
Notes¶
Shared is reusable editor UI infrastructure territory.
It owns: - reusable widgets - editor interaction helpers - reusable UI sections - visual editor effects - lightweight panel-state helpers
It does NOT own: - rendering - export workflows - capture execution - feature orchestration
If a shared helper becomes heavily coupled to one workflow or feature domain, it likely belongs in that owning territory instead.
The goal is: - reducing duplicated editor UI code - improving consistency - centralizing reusable UX behaviour
without creating hidden workflow systems.
Future Candidates¶
- Continue extracting reusable editor interaction patterns where duplication appears.
- Avoid turning Shared into a generic dumping ground.
- Keep shared systems lightweight, presentation-focused, and reusable.
- Maintain clear separation between reusable UI infrastructure and feature orchestration.