pub fn rank_candidates(candidates: Vec<Candidate>) -> Vec<RankedCandidate>Expand description
Rank candidates by selection score, lowest (best) first.
Within-1%-score tie groups are reordered by the three-tier ADR 008
tie-breaker (geo → stake → random). The random tier uses a fresh
thread-local RNG; tests inside this module use the private
rank_candidates_with_rng variant for determinism.