@Nullable LocalUndoRedoSnapshot getUndoRedoSnapshotForDocument(DocumentReference reference) {
    HashMap<ClientId, PerClientLocalUndoRedoSnapshot> map = new HashMap<>();
    for (ClientState state : getAllClientStates()) {
      PerClientLocalUndoRedoSnapshot perClientSnapshot = state.getUndoRedoSnapshotForDocument(reference);
      if (perClientSnapshot == null)
        return null;

      map.put(state.myClientId, perClientSnapshot);
    }

    return new LocalUndoRedoSnapshot(
      map,
      mySharedUndoStacksHolder.getStack(reference).snapshot(),
      mySharedRedoStacksHolder.getStack(reference).snapshot()
    );
  }
@Nullable LocalUndoRedoSnapshot getUndoRedoSnapshotForDocument(DocumentReference reference)