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.
server/src/main/java/org/elasticsearch/index/mapper/vectors/DenseVectorFieldMapper.java
+ "] of type ["
                    + typeName()
                    + "] doesn't not support indexing multiple values for the same field in the same document"
            );
        }
        if (Token.VALUE_NULL == context.parser().currentToken()) {
            return;
        }
        Field field = fieldType().indexed ? parseKnnVector(context) : parseBinaryDocValuesVector(context);
        context.doc().addWithKey(fieldType().name(), field);
    }
    private Field parseKnnVector(DocumentParserContext context) throws IOException {
        return elementType.parseKnnVector(context, this);
    }
    private Field parseBinaryDocValuesVector(DocumentParserContext context) throws IOException {
        
        
        int numBytes = indexCreatedVersion.onOrAfter(MAGNITUDE_STORED_INDEX_VERSION)
            ? dims * elementType.elementBytes + MAGNITUDE_BYTES
            : dims * elementType.elementBytes;
        ByteBuffer byteBuffer = elementType.createByteBuffer(indexCreatedVersion, numBytes);
        double dotProduct = elementType.parseKnnVectorToByteBuffer(context, this, byteBuffer);
        if (indexCreatedVersion.onOrAfter(MAGNITUDE_STORED_INDEX_VERSION)) {
            
            float vectorMagnitude = (float) Math.sqrt(dotProduct);
            byteBuffer.putFloat(vectorMagnitude);
        }
        return new BinaryDocValuesField(fieldType().name(), new BytesRef(byteBuffer.array()));
    }
    private void checkDimensionExceeded(int index, DocumentParserContext context) {