### Description

Dynamic mappings can greatly help the getting started experience but they currently don't apply to all types, one example is `dense_vector`.

It's been suggested to automatically map float arrays as dense vectors when there are more than 100 values, or a heuristic along these lines.
server/src/internalClusterTest/java/org/elasticsearch/index/mapper/DynamicMappingIT.java
assertFalse(bulkItemResponses.buildFailureMessage(), bulkItemResponses.hasFailures());
        {
            SearchResponse searchResponse = client().prepareSearch("test").setQuery(new MatchQueryBuilder("obj.one", 1)).get();
            assertEquals(1, searchResponse.getHits().getTotalHits().value);
        }
        {
            SearchResponse searchResponse = client().prepareSearch("test").setQuery(new MatchQueryBuilder("anything", "anything")).get();
            assertEquals(1, searchResponse.getHits().getTotalHits().value);
        }
        {
            SearchResponse searchResponse = client().prepareSearch("test").setQuery(new MatchQueryBuilder("obj.runtime.one", "one")).get();
            assertEquals(1, searchResponse.getHits().getTotalHits().value);
        }
        {
            SearchResponse searchResponse = client().prepareSearch("test")
                .setQuery(new MatchQueryBuilder("obj.runtime.one.two", "1"))
                .get();
            assertEquals(1, searchResponse.getHits().getTotalHits().value);
        }
        Exception exception = expectThrows(
            DocumentParsingException.class,
            () -> client().prepareIndex("test").setSource("obj.runtime", "value").get()
        );
        assertThat(
            exception.getMessage(),
            containsString("object mapping for [obj.runtime] tried to parse field [runtime] as object, but found a concrete value")
        );
        assertAcked(indicesAdmin().preparePutMapping("test").setSource("""
            {
              "_doc": {