Skip to content

Contracts

Purpose

Defines preview-facing contracts used by rendering, capture, and preview-adjacent systems.

This territory exists to expose stable preview interaction surfaces without leaking full Preview implementation details into downstream systems.

Owns

  • Preview context contracts
  • Shared preview-facing access surfaces
  • Stable integration seams for preview consumers

Does NOT Own

  • Preview implementation logic
  • Rendering implementation
  • Scene lifecycle ownership
  • Capture execution
  • UI logic
  • Workflow orchestration

Allowed Dependencies

Contracts should depend only on:

  • Unity primitives/types
  • Minimal shared models or abstractions where necessary

Contracts should avoid depending on: - Panels - Rendering implementations - Feature orchestration - Pipeline-specific systems

Notes

This folder exists to reduce coupling between Preview internals and systems that need limited access to preview state or scene objects.

The goal is controlled exposure.

Consumers should depend on contracts instead of reaching directly into Preview implementation classes wherever practical.

Contracts should remain lightweight and stable.

Avoid turning this folder into: - interface spam - fake abstraction layers - premature extensibility systems

Only introduce contracts when they represent a meaningful architectural seam.

Future Candidates

  • Keep contracts focused on real integration boundaries.
  • Avoid mirroring entire implementation APIs through interfaces.
  • Maintain minimal dependency direction wherever possible.