public boolean likelyToBeDuplicated() {
    return layers.values().stream().allMatch(v -> v.encodedFeatures.isEmpty()) || containsOnlyFillsOrEdges();
  }
Determine whether a tile is likely to be a duplicate of some other tile hence it makes sense to calculate a hash
for it.
<p>
Deduplication code is aiming for a balance between filtering-out all duplicates and not spending too much CPU on
hash calculations: calculating hashes for all tiles costs too much CPU, not calculating hashes at all means
generating archives which are too big. This method is responsible for achieving that balance.
<p>
Current understanding is, that for the whole planet, there are 267m total tiles and 38m unique tiles. The
{@link #containsOnlyFillsOrEdges()} heuristic catches >99.9% of repeated tiles and cuts down the number of tile
hashes we need to track by 98% (38m to 735k). So it is considered a good tradeoff.

@return {@code true} if the tile might have duplicates hence we want to calculate a hash for it
planetiler-core/src/main/java/com/onthegomap/planetiler/VectorTile.java