Swift stable multi-key sort with nil ordering

Swift
import Foundation

func sortRows(_ rows: [[String: String]], by keys: [String]) -> [[String: String]] {
    rows.enumerated().sorted { lhs, rhs in
        for key in keys {
            let left = lhs.element[key], right = rhs.element[key]
            if left == right { continue }
            if let left { return right.map { left < $0 } ?? true }
            return false
        }
        return lhs.offset < rhs.offset
    }.map(\.element)
}