### CI Link

https://gradle-enterprise.elastic.co/s/o5szwywjimd6o/

### Repro line

./gradlew ':x-pack:plugin:core:test' --tests "org.elasticsearch.xpack.core.ml.job.config.JobUpdateTests.testMergeWithJob" -Dtests.seed=574F3B6BEFEFE6BA -Dtests.locale=ar-DZ -Dtests.timezone=Universal -Druntime.java=20

### Does it reproduce?

Yes

### Applicable branches

main

### Failure history

_No response_

### Failure excerpt

```
org.elasticsearch.xpack.core.ml.job.config.JobUpdateTests > testMergeWithJob FAILED
    java.lang.IllegalArgumentException: Cannot convert 8.11.0. Incompatible version
        at __randomizedtesting.SeedInfo.seed([574F3B6BEFEFE6BA:691D63E8F460F0FE]:0)
        at org.elasticsearch.xpack.core.ml.MlConfigVersion.fromVersion(MlConfigVersion.java:274)
        at org.elasticsearch.xpack.core.ml.job.config.JobUpdateTests.testMergeWithJob(JobUpdateTests.java:296)
```

With all these "versions" that we have now decoupled from transport version or node version, we need to ensure that all get bumped when a version bump occurs. There are too many of these things to not catch them in CI in a version bump for a cut release.
x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/ml/job/config/JobUpdateTests.java
}
                    detectionRules.add(new DetectionRule.Builder(ruleScope).build());
                }
            }
            detectorUpdates.add(new JobUpdate.DetectorUpdate(i, detectorDescription, detectionRules));
        }
        return detectorUpdates;
    }
    @Override
    protected Writeable.Reader<JobUpdate> instanceReader() {
        return JobUpdate::new;
    }
    @Override
    protected JobUpdate doParseInstance(XContentParser parser) {
        if (useInternalParser) {
            return JobUpdate.INTERNAL_PARSER.apply(parser, null).build();
        } else {
            return JobUpdate.EXTERNAL_PARSER.apply(parser, null).build();
        }
    }
    @AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/98626")
    public void testMergeWithJob() {
        List<JobUpdate.DetectorUpdate> detectorUpdates = new ArrayList<>();
        List<DetectionRule> detectionRules1 = Collections.singletonList(
            new DetectionRule.Builder(Collections.singletonList(new RuleCondition(RuleCondition.AppliesTo.ACTUAL, Operator.GT, 5))).build()
        );
        detectorUpdates.add(new JobUpdate.DetectorUpdate(0, "description-1", detectionRules1));
        List<DetectionRule> detectionRules2 = Collections.singletonList(
            new DetectionRule.Builder(Collections.singletonList(new RuleCondition(RuleCondition.AppliesTo.ACTUAL, Operator.GT, 5))).build()
        );