public static CoordinateReferenceSystem decodeCRS(String crs, CoordinateReferenceSystem base)
    throws FactoryException {
    try {
      boolean longitudeFirst = base != null && CRS.getAxisOrder(base) == CRS.AxisOrder.EAST_NORTH;
      var matcher = COORDINATE_ORDER_SUFFIX.matcher(crs);
      if (matcher.find()) {
        longitudeFirst = "lon".equals(matcher.group(1));
        crs = matcher.replaceFirst("");
      }
      return CRS.decode(crs, longitudeFirst);
    } catch (FactoryException e) {
      return CRS.parseWKT(crs);
    }
  }
Decodes a {@link CoordinateReferenceSystem} from an {@code EPSG:1234} code or WKT. Add {@code :lon_first} code to
the suffixt to indicate the source coordinates are lon, lat and not lat, lon. lon_first defaults to the value from
{@code base} if specified;
planetiler-core/src/main/java/com/onthegomap/planetiler/geo/GeoUtils.java