### Elasticsearch Version

8.7.0

### Installed Plugins

_No response_

### Java Version

_bundled_

### OS Version

whatever

### Problem Description

Enable TSDB and disable source.

### Steps to Reproduce

```
curl -uelastic:password -HContent-Type:application/json -XPUT localhost:9200/test?pretty -d'{
  "settings": {
    "mode": "time_series",
    "routing_path": "foo"
  },
  "mappings": {
    "_source": {
      "enabled": false
    }
  }
}'
```

The error message you get is `Cannot set both [mode] and [enabled] parameters` but we never tried to set `mode`. I think maybe we want `time series indices only support synthetic source` like we give if you try to disable _source in tsdb.

### Logs (if relevant)

_No response_
server/src/main/java/org/elasticsearch/index/mapper/SourceFieldMapper.java
private final Parameter<Explicit<Boolean>> enabled = Parameter.explicitBoolParam("enabled", false, m -> toType(m).enabled, true)
            .setSerializerCheck((includeDefaults, isConfigured, value) -> value.explicit())
            
            .setMergeValidator(
                (previous, current, conflicts) -> (previous.value() == current.value()) || (previous.value() && current.value() == false)
            );
        private final Parameter<Mode> mode = new Parameter<>(
            "mode",
            true,
            () -> getIndexMode() == IndexMode.TIME_SERIES ? Mode.SYNTHETIC : null,
            (n, c, o) -> Mode.valueOf(o.toString().toUpperCase(Locale.ROOT)),
            m -> toType(m).enabled.explicit() ? null : toType(m).mode,
            (b, n, v) -> b.field(n, v.toString().toLowerCase(Locale.ROOT)),
            v -> v.toString().toLowerCase(Locale.ROOT)
        ).setMergeValidator((previous, current, conflicts) -> (previous == current) || current != Mode.STORED)
            .setSerializerCheck((includeDefaults, isConfigured, value) -> value != null); 
        private final Parameter<List<String>> includes = Parameter.stringArrayParam(
            "includes",