 }
 
 public protocol SnapshotHoldingObject : SnapshotObject {
-  // TBD: Snapshot Management is an ActiveRecord only thing?! Regular EOs use
-  //      the EditingContext?
-
+  // Snapshot Management is an ActiveRecord only thing. Regular EOs use
+  // the ObjectStore for snapshotting.
+  
+  /**
+   * The snapshot associated with the object.
+   */
   var snapshot : Snapshot? { get }
+
+  /**
+   * Revert all the changes recorded in the object's snapshot.
+   */
+  func revert()
 }
 
 /**

  }
}


public protocol DatabaseObjectValidation {
  

  
  /* snapshot management */
  
  @discardableResult
  func updateFromSnapshot(_ snap: Snapshot) -> Bool {
    takeStoredValues(snap)
    return true
  }
