private void compareLayer(TileCoord coord, VectorTileProto.Tile.Layer layer1, VectorTileProto.Tile.Layer layer2) {
    String name = layer1.getName();
    compareValues(coord, name, "version", layer1.getVersion(), layer2.getVersion());
    compareValues(coord, name, "extent", layer1.getExtent(), layer2.getExtent());
    compareList(coord, name, "keys list", layer1.getKeysList(), layer2.getKeysList());
    compareList(coord, name, "values list", layer1.getValuesList(), layer2.getValuesList());
    if (compareValues(coord, name, "features count", layer1.getFeaturesCount(), layer2.getFeaturesCount())) {
      var ids1 = layer1.getFeaturesList().stream().map(f -> f.getId()).toList();
      var ids2 = layer2.getFeaturesList().stream().map(f -> f.getId()).toList();
      if (compareValues(coord, name, "feature ids", Set.of(ids1), Set.of(ids2)) &&
        compareValues(coord, name, "feature order", ids1, ids2)) {
        for (int i = 0; i < layer1.getFeaturesCount() && i < layer2.getFeaturesCount(); i++) {
          var feature1 = layer1.getFeatures(i);
          var feature2 = layer2.getFeatures(i);
          compareFeature(coord, name, feature1, feature2);
        }
      }
    }
  }
@throws FatalComparisonFailure if a comparison failure is encountered that prevents comparing the whole archives.
planetiler-core/src/main/java/com/onthegomap/planetiler/util/CompareArchives.java