Currently if you add a field in the fields parameter with a wildcard, no fields will be added to the hits layer. The situation is even worst if the wildcard matches the field name of the geo_point or geo_shape field, in that case a ClassCastException is thrown.
x-pack/plugin/vector-tile/src/javaRestTest/java/org/elasticsearch/xpack/vectortile/VectorTileRestIT.java
"type": "keyword"
                }
              }
            }""");
        response = client().performRequest(mappingRequest);
        assertThat(response.getStatusLine().getStatusCode(), Matchers.equalTo(HttpStatus.SC_OK));
        final Rectangle r = GeoTileUtils.toBoundingBox(x, y, z);
        double x = (r.getMaxX() + r.getMinX()) / 2;
        double y = (r.getMaxY() + r.getMinY()) / 2;
        for (int i = 0; i < 30; i += 10) {
            for (int j = 0; j <= i; j++) {
                final Request putRequest = new Request(HttpPost.METHOD_NAME, INDEX_POINTS + "/_doc/");
                putRequest.setJsonEntity("""
                    {
                      "location": "POINT(%s %s)", "name": "point%s", "value1": %s, "value2": %s
                    }""".formatted(x, y, i, i, i + 1));
                response = client().performRequest(putRequest);
                assertThat(response.getStatusLine().getStatusCode(), Matchers.equalTo(HttpStatus.SC_CREATED));
            }
        }
        final Request flushRequest = new Request(HttpPost.METHOD_NAME, INDEX_POINTS + "/_refresh");
        response = client().performRequest(flushRequest);
        assertThat(response.getStatusLine().getStatusCode(), Matchers.equalTo(HttpStatus.SC_OK));
    }
    private void indexShapes() throws IOException {
        final Rectangle r = GeoTileUtils.toBoundingBox(x, y, z);
        createIndexAndPutGeometry(INDEX_POLYGON, toPolygon(r), "polygon");
    }
    private void createIndexAndPutGeometry(String indexName, Geometry geometry, String id) throws IOException {
        final Request createRequest = new Request(HttpPut.METHOD_NAME, indexName);