docs: @NonNull
    public static Point destination(@NonNull Point point, @FloatRange(from = 0) double distance,
                                    @FloatRange(from = -180, to = 180) double bearing,
                                    @NonNull @TurfConstants.TurfUnitCriteria String units) {
  
      double longitude1 = degreesToRadians(point.longitude());
      double latitude1 = degreesToRadians(point.latitude());
      double bearingRad = degreesToRadians(bearing);
  
      double radians = TurfConversion.lengthToRadians(distance, units);
  
      double latitude2 = Math.asin(Math.sin(latitude1) * Math.cos(radians)
        + Math.cos(latitude1) * Math.sin(radians) * Math.cos(bearingRad));
      double longitude2 = longitude1 + Math.atan2(Math.sin(bearingRad)
          * Math.sin(radians) * Math.cos(latitude1),
        Math.cos(radians) - Math.sin(latitude1) * Math.sin(latitude2));
  
      return Point.fromLngLat(
        radiansToDegrees(longitude2), radiansToDegrees(latitude2));
    }