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
GetDatafeedsStatsAction.Response response = client().execute(GetDatafeedsStatsAction.INSTANCE, request).actionGet();
        assertThat(response.getResponse().results().get(0).getDatafeedState(), equalTo(DatafeedState.STOPPED));
        if (useForce) {
            
            
            
            
            if (getDataCounts(job.getId()).getProcessedRecordCount() < numDocs) {
                assertThat(getModelSnapshots(jobId), hasSize(0));
            }
        } else {
            assertThat(getModelSnapshots(jobId), hasSize(1));
        }
    }
    public void testRealtime_noDataAndAutoStop() throws Exception {
        String jobId = "realtime-job-auto-stop";
        String datafeedId = jobId + "-datafeed";
        startRealtime(jobId, randomIntBetween(1, 3));
        
        assertBusy(() -> {
            GetDatafeedsStatsAction.Request request = new GetDatafeedsStatsAction.Request(datafeedId);
            GetDatafeedsStatsAction.Response response = client().execute(GetDatafeedsStatsAction.INSTANCE, request).actionGet();
            assertThat(response.getResponse().results().get(0).getDatafeedState(), equalTo(DatafeedState.STOPPED));
        });
        
        assertBusy(() -> {
            GetJobsStatsAction.Request request = new GetJobsStatsAction.Request(jobId);
            GetJobsStatsAction.Response response = client().execute(GetJobsStatsAction.INSTANCE, request).actionGet();
            assertThat(response.getResponse().results().get(0).getState(), equalTo(JobState.CLOSED));
        });