I agree that a tuple would be ideal, but in this case a `Hash<index_key, Array<value_key>>` really seems like the correct solution: it  maintains order in the versions of Ruby we support, and accepts the reality that some index keys have more than one value key.

Would a second kind of collection, `IndexTermsCollection` that acts as an array of tuples work better?