Only for lookups in this particular result - we could explain why in the reasoning. The other option is that we could do the matching ourselves (based on the input arguments) and return a dictionary keyed in the original casing...

Essentially what it comes down to is that the user is only really going to be calling this function when they *do* have names and *don't* have IDs (since the point is to look up IDs). Keying the dictionary on something they don't already have means that when they get the results back, they're going to have to iterate through the dictionary to match what they already have with what they got back, which is potentially inefficient if they do it repeatedly for multiple different names.