### 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
assert enabled.explicit() == false || mode == null;
        this.mode = mode;
        this.enabled = enabled;
        this.sourceFilter = buildSourceFilter(includes, excludes);
        this.includes = includes;
        this.excludes = excludes;
        if (this.sourceFilter != null && mode == Mode.SYNTHETIC) {
            throw new IllegalArgumentException("filtering the stored _source is incompatible with synthetic source");
        }
        this.complete = stored() && sourceFilter == null;
        this.indexMode = indexMode;
    }
    private static SourceFilter buildSourceFilter(String[] includes, String[] excludes) {
        if (CollectionUtils.isEmpty(includes) && CollectionUtils.isEmpty(excludes)) {
            return null;
        }
        return new SourceFilter(includes, excludes);
    }
    private boolean stored() {
        if (enabled.explicit() || mode == null) {
            return enabled.value();
        }
        return mode == Mode.STORED;
    }
    public boolean enabled() {
        if (enabled.explicit()) {
            return enabled.value();
        }
        if (mode != null) {
            return mode != Mode.DISABLED;