Since #87849 and #88534 it is possible that anomaly detection jobs and datafeeds will encounter the `aggregate_metric_double` type.

We need to investigate how this will affect certain aspects of their behaviour:

1. Specifying detector fields when the datafeed is using an aggregation
2. Specifying detector fields when the datafeed is not using an aggregation
3. Ability to switch a datafeed between using an aggregation and not using an aggregation without deleting and recreating the job
4. Correct identification of whether to use `_source` or doc values to get values from `aggregate_metric_double` fields
5. How to appropriately set `summary_count_field` when using `aggregate_metric_double`

Based on this investigation decide what changes we should make to either code or documentation.
x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/DatafeedJobsIT.java
}
    public void testStartDatafeed_GivenTimeout_Returns408() throws Exception {
        client().admin().indices().prepareCreate("data-1").setMapping("time", "type=date").get();
        long numDocs = 100;
        long now = System.currentTimeMillis();
        long oneWeekAgo = now - 604800000;
        indexDocs(logger, "data-1", numDocs, oneWeekAgo, now);
        String jobId = "job-for-start-datafeed-timeout";
        String datafeedId = jobId + "-datafeed";
        Job.Builder job = createScheduledJob(jobId);
        putJob(job);
        openJob(job.getId());
        assertBusy(() -> assertEquals(getJobStats(job.getId()).get(0).getState(), JobState.OPENED));
        DatafeedConfig.Builder datafeedConfigBuilder = createDatafeedBuilder(
            job.getId() + "-datafeed",
            job.getId(),
            Collections.singletonList("data-1")
        );
        DatafeedConfig datafeedConfig = datafeedConfigBuilder.build();
        putDatafeed(datafeedConfig);
        StartDatafeedAction.Request request = new StartDatafeedAction.Request(datafeedId, oneWeekAgo);
        request.getParams().setTimeout(TimeValue.timeValueNanos(1L));
        ElasticsearchException e = expectThrows(
            ElasticsearchException.class,
            () -> client().execute(StartDatafeedAction.INSTANCE, request).actionGet()
        );
        assertThat(e.status(), equalTo(RestStatus.REQUEST_TIMEOUT));
    }
}