Skip to content

Features

Purpose

The Features folder owns Snap Studio Pro’s editor-facing domain workflows.

This territory contains the high-level feature systems responsible for capture workflows, animation export, directional capture, lighting configuration, background workflows, prefab management, thumbnail generation, overlays, sprite assembly, and other editor production features.

Features are allowed to coordinate workflows.

This is intentional.

Owns

  • Editor production workflows
  • Export orchestration
  • Capture orchestration
  • Animation workflows
  • Directional capture workflows
  • Prefab/domain workflows
  • Lighting workflows
  • Background application/persistence workflows
  • Thumbnail generation workflows
  • Overlay workflows
  • Sprite assembly workflows
  • Feature-specific preferences and request models

Does NOT Own

  • Low-level rendering implementation
  • Editor window lifecycle/navigation
  • Core rendering pipeline implementation
  • Preview scene lifecycle ownership
  • Generic infrastructure ownership
  • Panel UI layout ownership

Allowed Dependencies

Features may depend on:

  • Preview
  • Rendering abstractions
  • Models
  • Enums
  • Infrastructure services
  • Core abstractions
  • Pipeline routing systems where necessary

Features are allowed to orchestrate across multiple lower-level systems.

Notes

Features is intentionally workflow-heavy territory.

This is where Snap Studio Pro’s editor-facing production logic lives.

Features decide: - what workflows occur - when workflows occur - how editor production flows are coordinated

Rendering decides: - how pixels are produced

Preview decides: - how live preview environments are coordinated

Panels decide: - how editor UI is drawn and interacted with

This separation is one of the core architectural rules of Snap Studio Pro.

The goal is pragmatic orchestration, not artificial purity.

Coordinator-heavy services are acceptable here when they represent real editor workflows.

Avoid introducing abstraction layers that exist only for architectural aesthetics.

Future Candidates

  • Continue protecting workflow ownership boundaries.
  • Avoid pushing low-level rendering implementation into Features.
  • Avoid allowing panel/UI orchestration to leak deeply into feature systems.
  • Keep request models lightweight and workflow-focused.
  • Continue preferring focused services over god classes where behaviour boundaries are clear.