@Override
  public Map<String, List<VectorTile.Feature>> postProcessTileFeatures(TileCoord tileCoord,
    Map<String, List<VectorTile.Feature>> layers) throws GeometryException {
    var result = MutableCollections.makeMutableMultimap(layers);
    for (TilePostProcessor postProcessor : tilePostProcessors) {
      // TODO catch failures to isolate from other tile postprocessors?
      var thisResult = postProcessor.postProcessTile(tileCoord, result);
      if (thisResult != null && result != thisResult) {
        result = MutableCollections.makeMutableMultimap(thisResult);
      }
    }
    return result;
  }
Call {@code handler} for different events based on which interfaces {@code handler} implements:
{@link OsmRelationPreprocessor}, {@link FinishHandler}, {@link TilePostProcessor} or {@link LayerPostProcessor}.
planetiler-core/src/main/java/com/onthegomap/planetiler/ForwardingProfile.java