private static <T> String getDiffJoined(Set<T> s0, Set<T> s1, String delimiter) {
      return Sets.difference(s0, s1).stream().map(Object::toString).collect(Collectors.joining(delimiter));
    }
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