A composable index template with no `template` defined in the body is mistakingly always assumed to not be a time series template. Even if it refers to a component template that has the `index.mode` setting set to `time_series` and the component template defines mappings with dimension fields or routing paths.

Incorrectly this causes to create a data stream with a tsdb index *without* time series start and end time settings set. The fact that this can happen is another bug and is being tracked #98833.

What should happen in this case is that a tsdb data stream is created with a valid tsdb backing index (with correctly generated time series start and end time settings).

This bug was found as part investigating #98792 and is the cause of that bug.
modules/data-streams/src/javaRestTest/java/org/elasticsearch/datastreams/TsdbDataStreamRestIT.java
var rolloverResponseBody = entityAsMap(rolloverResponse);
            assertThat(rolloverResponseBody.get("rolled_over"), is(true));
            var oldIndex = getIndex((String) rolloverResponseBody.get("old_index"));
            var newIndex = getIndex((String) rolloverResponseBody.get("new_index"));
            assertThat(getEndTime(oldIndex), equalTo(getStartTime(newIndex)));
            assertThat(getStartTime(oldIndex).isBefore(getEndTime(oldIndex)), is(true));
            assertThat(getEndTime(newIndex).isAfter(getStartTime(newIndex)), is(true));
        }
    }
    public void testMigrateRegularDataStreamToTsdbDataStream() throws Exception {
        
        var putComposableIndexTemplateRequest = new Request("POST", "/_index_template/1");
        putComposableIndexTemplateRequest.setJsonEntity(NON_TSDB_TEMPLATE);
        assertOK(client().performRequest(putComposableIndexTemplateRequest));
        
        int numRollovers = 4;
        int numDocs = 32;
        var currentTime = Instant.now();
        var currentMinus30Days = currentTime.minus(30, ChronoUnit.DAYS);
        Set<Instant> times = new HashSet<>();
        for (int i = 0; i < numRollovers; i++) {
            for (int j = 0; j < numDocs; j++) {
                var indexRequest = new Request("POST", "/k8s/_doc");
                var time = randomValueOtherThanMany(
                    times::contains,
                    () -> Instant.ofEpochMilli(randomLongBetween(currentMinus30Days.toEpochMilli(), currentTime.toEpochMilli()))
                );
                times.add(time);
                indexRequest.setJsonEntity(DOC.replace("$time", formatInstant(time)));
                var response = client().performRequest(indexRequest);