Shared

Purpose:

  • Shared types
  • Deterministic utilities
  • Rules reused across layers

Constraints:

  • Keep dependencies minimal
  • Avoid infra decisions at this stage