anchor.diff:      return data;
     }
   
  -  final TraceEvent _startEvent;
  -  TraceEvent _endEvent;
  +  final TraceEvent? _startEvent;
  +  TraceEvent? _endEvent;
   
     /// For timeline event, HTTP request/response body logging is disabled.
     /// see https://dart-review.googlesource.com/c/sdk/+/189881
     @override
  -  final String requestBody = null;
  +  final String? requestBody = null;
   
     // TODO(kenz): https://github.com/flutter/devtools/issues/3244
     // Cleanup `TimelineHttpRequestData` and tests in order to allow for :
     // 'final String responseBody = null'
     @override
  -  final String responseBody;
  +  final String? responseBody;
   
     // Do not add to this list directly! Call `_addInstantEvents` which is
     // responsible for calculating the time offsets of each event.
     final List<HttpInstantEvent> _instantEvents = [];
   
     @override
  -  Duration get duration {
  +  Duration? get duration {
       if (inProgress || !isValid) return null;
       // Timestamps are in microseconds
       final range = TimeRange()
  -      ..start = Duration(microseconds: _startEvent.timestampMicros)
  -      ..end = Duration(microseconds: _endEvent.timestampMicros);
  +      ..start = Duration(microseconds: _startEvent!.timestampMicros!)
  +      ..end = Duration(microseconds: _endEvent!.timestampMicros!);
       return range.duration;
     }
   
  
positive.code: 
    bool get _hasError => _request.request?.hasError ?? false;
  
    int get _endTime => _hasError ? _request.endTime : _request.response.endTime;
  
    @override
    Duration get duration {
      if (inProgress || !isValid) return null;
      // Timestamps are in microseconds
      final range = TimeRange()
        ..start = Duration(microseconds: _request.startTime)
        ..end = Duration(microseconds: _endTime);
      return range.duration;
    }
  
  
negative.code: 
    /// The response headers for the HTTP request.
    @override
    Map<String, dynamic>? get responseHeaders {
      // The request may still be in progress, in which case we don't display any
      // headers, or the request may be invalid, in which case we also don't
      // display any headers.
      if (inProgress || !isValid) return null;
      return _endEvent!.args![HttpRequestData._responseHeadersKey];
    }
  
    /// A string representing the status of the request.
  