Vector tiles buffer is used to include data that is just outside of the tile. This data is used to prevent border effects when rendering the geometries. It is currently [hardcoded to 5 pixels](https://github.com/elastic/elasticsearch/blob/de2781f98696c1e6cfad2b5bf46fe752a5e3edbb/x-pack/plugin/vector-tile/src/main/java/org/elasticsearch/xpack/vectortile/feature/FeatureFactory.java#L63) but it should probably need to be user configurable by adding a new property on the vector tiles API which can change the value.




x-pack/plugin/vector-tile/src/main/java/org/elasticsearch/xpack/vectortile/rest/VectorTileRequest.java
private void setGridType(String gridType) {
        this.gridType = GridType.fromString(gridType);
    }
    public int getSize() {
        return size;
    }
    private void setSize(int size) {
        if (size < 0) {
            throw new IllegalArgumentException("[size] parameter cannot be negative, found [" + size + "]");
        }
        this.size = size;
    }
    public List<MetricsAggregationBuilder<?, ?>> getAggBuilder() {
        return aggs;
    }
    private void setAggBuilder(AggregatorFactories.Builder aggBuilder) {
        List<MetricsAggregationBuilder<?, ?>> aggs = new ArrayList<>(aggBuilder.count());
        for (AggregationBuilder aggregation : aggBuilder.getAggregatorFactories()) {
            if (aggregation instanceof MetricsAggregationBuilder<?, ?>) {
                aggs.add((MetricsAggregationBuilder<?, ?>) aggregation);
            } else {
                throw new IllegalArgumentException(
                    "Unsupported aggregation of type [" + aggregation.getType() + "]." + "Only metric aggregations are supported."
                );
            }
        }
        for (PipelineAggregationBuilder aggregation : aggBuilder.getPipelineAggregatorFactories()) {
            
            final String type = aggregation.getType();
            throw new IllegalArgumentException("Unsupported pipeline aggregation of type [" + type + "]");