Core¶
Purpose¶
Owns foundational rendering, lighting, camera, and shared utility primitives used throughout Snap Studio Pro.
This territory contains low-level shared editor-domain building blocks that are reused across preview, rendering, export, thumbnail, and pipeline systems.
Core is intentionally stable and lightweight.
Owns¶
- Core rendering contracts
- Camera management primitives
- Lighting management primitives
- Global volume contracts
- Shared utility helpers
- Shared foundational settings models
- Shared transform/bounds helpers
Does NOT Own¶
- Workflow orchestration
- Preview scene lifecycle ownership
- Export orchestration
- Panel UI layout ownership
- Feature-domain workflows
- Rendering pipeline implementations
Allowed Dependencies¶
Core should remain lightweight and should depend only on:
- Unity primitives/APIs
- Lightweight shared models/types where necessary
Core should avoid depending on:
- Preview systems
- Export systems
- Panel systems
- Window lifecycle systems
- Feature orchestration systems
Notes¶
Core exists to provide stable foundational building blocks shared across the Snap Studio Pro editor architecture.
Core owns: - contracts - primitives - shared utilities - foundational helpers
Features own: - workflows
Preview owns: - live preview coordination
Rendering/Pipelines own: - rendering implementation
This distinction helps prevent foundational systems from becoming workflow-heavy orchestration layers.
Utilities in Core should remain: - reusable - lightweight - predictable
Avoid turning Core into: - a dumping ground - a hidden workflow layer - a second abstraction system
Future Candidates¶
- Keep Core stable and foundational.
- Avoid introducing workflow orchestration into Core.
- Maintain lightweight utility/helper responsibilities.
- Continue treating Core as shared infrastructure primitives rather than feature territory.