### 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
}
        return enabled.value();
    }
    public boolean isComplete() {
        return complete;
    }
    @Override
    public void preParse(DocumentParserContext context) throws IOException {
        BytesReference originalSource = context.sourceToParse().source();
        XContentType contentType = context.sourceToParse().getXContentType();
        final BytesReference adaptedSource = applyFilters(originalSource, contentType);
        if (adaptedSource != null) {
            final BytesRef ref = adaptedSource.toBytesRef();
            context.doc().add(new StoredField(fieldType().name(), ref.bytes, ref.offset, ref.length));
        }
        if (originalSource != null && adaptedSource != originalSource) {
            
            BytesRef ref = originalSource.toBytesRef();
            context.doc().add(new StoredField(RECOVERY_SOURCE_NAME, ref.bytes, ref.offset, ref.length));
            context.doc().add(new NumericDocValuesField(RECOVERY_SOURCE_NAME, 1));
        }
    }
    @Nullable
    public BytesReference applyFilters(@Nullable BytesReference originalSource, @Nullable XContentType contentType) throws IOException {
        if (stored() == false) {
            return null;
        }
        if (originalSource != null && sourceFilter != null) {
            
            return Source.fromBytes(originalSource, contentType).filter(sourceFilter).internalSourceRef();