### Couch Models Couch models should accept domain models during construction and offer a ToDomainModel method which constructs a domain model. In this way, domain models have the freedom to define their valid states.