Lucene 9.8 updates the vector dimension limit overridability. Moving it to the codec. 

We should switch our override to do this correctly now, instead of returning a `FieldType` overriding the value.

For now, this commit would belong in the `lucene_snapshot` branch.
test/framework/src/main/java/org/elasticsearch/index/mapper/MapperServiceTestCase.java
private void roundTripSyntheticSource(DocumentMapper mapper, String syntheticSource, DirectoryReader reader) throws IOException {
        try (Directory roundTripDirectory = newDirectory()) {
            RandomIndexWriter roundTripIw = new RandomIndexWriter(random(), roundTripDirectory);
            roundTripIw.addDocument(
                mapper.parse(new SourceToParse("1", new BytesArray(syntheticSource), XContentType.JSON, null, Map.of(), false)).rootDoc()
            );
            roundTripIw.close();
            try (DirectoryReader roundTripReader = DirectoryReader.open(roundTripDirectory)) {
                String roundTripSyntheticSource = syntheticSource(mapper, roundTripReader, 0);
                assertThat(roundTripSyntheticSource, equalTo(syntheticSource));
                validateRoundTripReader(syntheticSource, reader, roundTripReader);
            }
        }
    }
    private String syntheticSource(DocumentMapper mapper, IndexReader reader, int docId) throws IOException {
        SourceLoader loader = mapper.sourceMapper().newSourceLoader(mapper.mapping());
        LeafReader leafReader = getOnlyLeafReader(reader);
        SourceLoader.Leaf leafLoader = loader.leaf(leafReader, new int[] { docId });
        Source synthetic = leafLoader.source(syntheticSourceStoredFieldLoader(mapper, leafReader, loader), docId);
        return synthetic.internalSourceRef().utf8ToString();
    }
    protected static LeafStoredFieldLoader syntheticSourceStoredFieldLoader(
        DocumentMapper mapper,
        LeafReader leafReader,
        SourceLoader loader
    ) throws IOException {
        if (loader.requiredStoredFields().isEmpty()) {
            return StoredFieldLoader.empty().getLoader(leafReader.getContext(), null);
        }
        LeafStoredFieldLoader storedFields = StoredFieldLoader.create(false, loader.requiredStoredFields())