@override Future<T?> get future => _isResolved ? Future.value(_first) : _firstFuture.then((value) => value!);