For audit purposes we would like to ensure the Plan from which an Assembly is initiated is immutable. In general it may be best to ensure that all entities within the domain model are "copy-on-write", and we can have a generic way of accessing versions of entities through the API.