The match list arrives as JSON over an API from a third party. You do not control what they send.
[] # no matches at all
[["Alice", "Alice"]] # a player against themselves
[["Alice", "Bob"], ["Alice", "Bob"]] # the same match twice
[["Alice"]] # arity is not guaranteed
[["Alice", "Bob", "Charlie"]] # nor is it capped
[["Alice", "Bob"], ["alice", "Bob"]] # is this two players or one?For each: what does your code currently do, and what should it do? Not every one of these is an error. Decide which are, and say what the caller sees in each case.