Returns a new state if state needs to be updated before start is called.
Future<State?> prepare(State state) { return Future.value(); }