sort
fun sort(merchants: List<ActivePerksMerchant>, criteria: List<MerchantSortCriterion>): List<ActivePerksMerchant>
Orders the catalogue by the criteria in turn, each breaking the previous one's ties. An empty list returns the input order unchanged.
Names collate by the device's locale - case-insensitive, accent-aware, and with that language's alphabet (a Spanish device puts "Ñandú" after "Nube"; a Turkish one keeps dotless "I" apart from "i"). Names that collate as equal fall back to ordinal order so the result is deterministic.