docs: static List<Point> decodeStepPoints(DirectionsRoute directionsRoute, List<Point> currentPoints,
                                        int legIndex, int stepIndex) {
      List<RouteLeg> legs = directionsRoute.legs();
      if (hasInvalidLegs(legs)) {
        return currentPoints;
      }
      List<LegStep> steps = legs.get(legIndex).steps();
      if (hasInvalidSteps(steps)) {
        return currentPoints;
      }
      boolean invalidStepIndex = stepIndex < 0 || stepIndex > steps.size() - 1;
      if (invalidStepIndex) {
        return currentPoints;
      }
      LegStep step = steps.get(stepIndex);
      if (step == null) {
        return currentPoints;
      }
      String stepGeometry = step.geometry();
      if (stepGeometry != null) {
        return PolylineUtils.decode(stepGeometry, PRECISION_6);
      }
      return currentPoints;
    }