A Stream of state changes
@override Stream<S> get stream { _controller ??= StreamController.broadcast(sync: true); return _controller!.stream; }