[`Setting.versionSetting`](https://github.com/elastic/elasticsearch/blob/0652a5915586abbcdfdfffa91a391740f0147752/server/src/main/java/org/elasticsearch/common/settings/Setting.java#L1275) (only used by index compatibility setting) does not use the `Validator` passed in - its just discarded. Looks like it's been like this since it was introduced by https://github.com/elastic/elasticsearch/pull/83264 in 8.2.0.

Enabling this causes some tests to fail. Enabling this may cause problems for indexes that have a wonky setting already applied.
server/src/main/java/org/elasticsearch/common/settings/Setting.java
return timeSetting(key, defaultValue, TimeValue.timeValueMillis(0), properties);
    }
    public static Setting<TimeValue> positiveTimeSetting(
        final String key,
        final Setting<TimeValue> fallbackSetting,
        final TimeValue minValue,
        final Property... properties
    ) {
        return timeSetting(key, fallbackSetting, minValue, properties);
    }
    public static Setting<Double> doubleSetting(String key, double defaultValue, double minValue, Property... properties) {
        return doubleSetting(key, defaultValue, minValue, Double.POSITIVE_INFINITY, properties);
    }
    public static Setting<Double> doubleSetting(String key, double defaultValue, double minValue, double maxValue, Property... properties) {
        return new Setting<>(key, Double.toString(defaultValue), (s) -> parseDouble(s, minValue, maxValue, key, properties), properties);
    }
    public static Double parseDouble(String s, double minValue, double maxValue, String key, Property... properties) {
        final double d = Double.parseDouble(s);
        if (d < minValue) {
            String err = "Failed to parse value"
                + (isFiltered(properties) ? "" : " [" + s + "]")
                + " for setting ["
                + key
                + "] must be >= "
                + minValue;
            throw new IllegalArgumentException(err);
        }
        if (d > maxValue) {
            String err = "Failed to parse value"
                + (isFiltered(properties) ? "" : " [" + s + "]")