Replacing booleans and enums with dates

It's imperative for a domain model to contain enough data to enforce domain invariants. A good domain model may capture even more information related to the business processes being handled by the system (it's a bit different when you use event sourcing, but it's out of the scope of this…