Once https://github.com/elastic/elasticsearch/issues/98503 is done, we can use our minimum version numbers in the SystemIndexMappingUpdate service instead of the old `Version` types. Mappings will be updated for a system index when all nodes have a matching descriptor mappings version for a system index, but this version is greater than what's stored in the mappings metadata.
server/src/main/java/org/elasticsearch/cluster/ClusterState.java
private ClusterState previous;
        private final ClusterName clusterName;
        private long version = 0;
        private String uuid = UNKNOWN_UUID;
        private Metadata metadata = Metadata.EMPTY_METADATA;
        private RoutingTable routingTable = RoutingTable.EMPTY_ROUTING_TABLE;
        private DiscoveryNodes nodes = DiscoveryNodes.EMPTY_NODES;
        private final Map<String, CompatibilityVersions> compatibilityVersions;
        private ClusterBlocks blocks = ClusterBlocks.EMPTY_CLUSTER_BLOCK;
        private final ImmutableOpenMap.Builder<String, Custom> customs;
        private boolean fromDiff;
        public Builder(ClusterState state) {
            this.previous = state;
            this.clusterName = state.clusterName;
            this.version = state.version();
            this.uuid = state.stateUUID();
            this.nodes = state.nodes();
            this.compatibilityVersions = new HashMap<>(state.compatibilityVersions);
            this.routingTable = state.routingTable();
            this.metadata = state.metadata();
            this.blocks = state.blocks();
            this.customs = ImmutableOpenMap.builder(state.customs());
            this.fromDiff = false;
        }
        public Builder(ClusterName clusterName) {
            this.compatibilityVersions = new HashMap<>();
            customs = ImmutableOpenMap.builder();