Skip to content

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