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
0,
                                indexShardRoutingTable.size(),
                                copy -> (builder, params) -> indexShardRoutingTable.shard(copy).toXContent(builder, params)
                            ),
                            Iterators.single((builder, params) -> builder.endArray())
                        );
                    });
                    return Iterators.concat(
                        Iterators.single(
                            (builder, params) -> builder.startObject(indexRoutingTable.getIndex().getName()).startObject("shards")
                        ),
                        Iterators.flatMap(input, Function.identity()),
                        Iterators.single((builder, params) -> builder.endObject().endObject())
                    );
                },
                (builder, params) -> builder.endObject().endObject()
            ),
            
            chunkedSection(
                metrics.contains(Metric.ROUTING_NODES),
                (builder, params) -> builder.startObject("routing_nodes").startArray("unassigned"),
                getRoutingNodes().unassigned().iterator(),
                Iterators::single,
                (builder, params) -> builder.endArray() 
            ),
            chunkedSection(
                metrics.contains(Metric.ROUTING_NODES),
                (builder, params) -> builder.startObject("nodes"),
                getRoutingNodes().iterator(),
                routingNode -> Iterators.concat(