### 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
return currentState;
                }
                @Override
                public void onFailure(Exception e) {
                    throw new AssertionError("unexpected", e);
                }
            });
        masterBlockedLatch.await();
        final IndexRequestBuilder indexRequestBuilder = client().prepareIndex("index").setId("2").setSource("field2", "value2");
        try {
            Exception e = expectThrows(DocumentParsingException.class, () -> indexRequestBuilder.get(TimeValue.timeValueSeconds(10)));
            assertThat(e.getMessage(), Matchers.containsString("failed to parse"));
            assertThat(e.getCause(), instanceOf(IllegalArgumentException.class));
            assertThat(
                e.getCause().getMessage(),
                Matchers.containsString("Limit of total fields [2] has been exceeded while adding new fields [1]")
            );
        } finally {
            indexingCompletedLatch.countDown();
        }
    }
    public void testTotalFieldsLimitWithRuntimeFields() {
        Settings indexSettings = Settings.builder()
            .put(IndexMetadata.SETTING_NUMBER_OF_SHARDS, 1)
            .put(INDEX_MAPPING_TOTAL_FIELDS_LIMIT_SETTING.getKey(), 4)
            .build();
        String mapping = """
                {
                  "dynamic":"runtime",
                  "runtime": {