callback to be executed before notifying listeners. It the returned value is the same as the last one, the rebuild process is interrupted.
final Object? Function(SnapState<T>? model)? watch;