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.