The full preview rows (including unselected) for audit/logging.
Selected fields with their snapshot values, ready for BaseEntity.Set.
Mode indicates UPDATE (live) vs INSERT (undelete).
Optional user-entered reason; persisted to RecordChange.RestoreReason.
ID of the source RecordChange row whose state is being restored.
Event payload emitted after the user has confirmed a restore.
The host component is responsible for applying the snapshot to a BaseEntity instance, calling BaseEntity.SetRestoreContext, and invoking Save(). This component never touches the database directly so it remains usable in any consumer context.