docs: @Nullable
    public static CurrentLegAnnotation createCurrentAnnotation(CurrentLegAnnotation currentLegAnnotation,
                                                        RouteLeg leg, double legDistanceRemaining) {
      LegAnnotation legAnnotation = leg.annotation();
      if (legAnnotation == null) {
        return null;
      }
      List<Double> distanceList = legAnnotation.distance();
      if (distanceList == null || distanceList.isEmpty()) {
        return null;
      }
  
      CurrentLegAnnotation.Builder annotationBuilder = CurrentLegAnnotation.builder();
      int annotationIndex = findAnnotationIndex(
        currentLegAnnotation, annotationBuilder, leg, legDistanceRemaining, distanceList
      );
  
      annotationBuilder.distance(distanceList.get(annotationIndex));
      List<Double> durationList = legAnnotation.duration();
      if (durationList != null) {
        annotationBuilder.duration(durationList.get(annotationIndex));
      }
      List<Double> speedList = legAnnotation.speed();
      if (speedList != null) {
        annotationBuilder.speed(speedList.get(annotationIndex));
      }
      List<MaxSpeed> maxspeedList = legAnnotation.maxspeed();
      if (maxspeedList != null) {
        annotationBuilder.maxspeed(maxspeedList.get(annotationIndex));
      }
      List<String> congestionList = legAnnotation.congestion();
      if (congestionList != null) {
        annotationBuilder.congestion(congestionList.get(annotationIndex));
      }
      annotationBuilder.index(annotationIndex);
      return annotationBuilder.build();
    }