Real Decision
Problem
Passing ActiveRecord models across layers leaks persistence concerns into business logic and APIs.
Decision
Introduced immutable DTOs as the contract between controllers, services and repositories. Validation, mapping and transport concerns remain separated from domain behavior.