Models¶
Purpose¶
Owns editor-facing data models used by Snap Studio Pro preview, capture, export, background, and overlay workflows.
This territory contains serializable state containers, configuration models, and lightweight data-transfer objects used throughout the editor.
Models exist to represent data.
Models should not own workflow execution, rendering logic, export orchestration, or editor UI behaviour.
Owns¶
- Background configuration models
- Preview background state models
- Capture configuration models
- Overlay configuration models
- Overlay positioning models
- Serializable editor data containers
- State-transfer objects
- Preset-friendly configuration data
Does NOT Own¶
- Rendering implementation
- Preview implementation
- Export workflows
- Capture execution
- UI rendering
- Preset persistence
- Service orchestration
- Editor window ownership
Allowed Dependencies¶
Models may depend on:
- Unity primitive types
- Unity ScriptableObject types
- Shared enums
- Shared serializable data
Models should avoid depending directly on:
- Rendering systems
- Preview systems
- Export systems
- Capture systems
- Editor panels
- Service implementations
Notes¶
Models are intentionally lightweight.
Their responsibility is to describe editor state, not execute behaviour.
Examples include:
- CaptureSettings
- OverlaySettings
- BackgroundSettingsData
- PreviewBackgroundSettings
Models may contain helper methods for:
- cloning
- copying state
- calculating derived values
but should avoid becoming workflow controllers or service layers.
If a class begins coordinating systems or performing editor operations, ownership likely belongs elsewhere.
Future Candidates¶
- Export request models
- Preview state models
- Preset transfer models
- Session persistence models
- Capture result models