We currently have internally creation/modification/deletion commands. The modification additionally knows copy/move to another resource.
This could be streamlined by treating everything as a modification:
- A creation is a modification that just doesn't refer to anything
- A modification is what it is
- A deletion is a modification that removes things.
- The entity store would then just persist modifications (whatever they do).
Preprocessors would then just transform those modifications.
It's not a huge difference, but code wise I think it would clean things up quite a bit, and it would work with the revision system as 1 modification = 1 revision.