static VectorTileFeatureForCmp fromActualFeature(VectorTile.Feature f) {
      try {
        var attrs = new HashMap<>(f.tags());
        attrs.remove("rank");
        return new VectorTileFeatureForCmp(f.layer(), f.geometry().decode().norm(), attrs, f.group());
      } catch (GeometryException e) {
        throw new IllegalStateException(e);
      }
    }
Wrapper around {@link VectorTile.Feature} to compare vector tiles.
<ul>
<li>{@link VectorTile.Feature#id()} won't be compared
<li>{@link VectorTile.Feature#layer()} will be compared
<li>{@link VectorTile.Feature#geometry()} gets normalized for comparing
<li>{@link VectorTile.Feature#tags()} will be compared except for the rank attribute since the value produced by
planetiler is not stable and differs on every run (at least for parks)
<li>{@link VectorTile.Feature#group()} will be compared
</ul>
planetiler-core/src/main/java/com/onthegomap/planetiler/mbtiles/Compare.java