For a service to be used as a system of record, it has to be flexible enough to represent the system it's modeling.

Real systems are invariably messy.

That implies you need at the very last escape hatches and flexibility, even if you have well-paved cowpaths.