Implemented by models that use the RequiresApprovalWhenChanges concern: models whose changes can be captured as a pending Modification instead of being saved directly.

Implemented by models that use the ApprovesChanges concern: models that can cast an approval/disapproval on a pending Modification.

Implemented by models whose creation can need approval. They also use the RequiresApprovalWhenChanges concern, which handles the two available modes: