Prefer an object over a hash, whenever the keys are significant

In general, any time you're working with a hash that has specific keys
(e.g. accessed with a literal), you've likely got an object wanting to
get out, even if it's just a struct with no other methods. The biggest
upside is more meaningful errors if you have a typo, since the default
behavior of a hash is to return nil. Cases where you don't care about
specific keys (e.g. using a hash to memoize a single argument method)
are fine.
This gets back to my point, which I don't think anyone really addressed.

This guide to me is just a rephrasing of "Avoid Primitive Obsession", and I don't think a guide that just says to avoid a known/accepted smell is valuable. For example, we do have the guide that is basically "Avoid Long Method", but I think that one is valuable because it adds a concrete limit as well.

So, we can't add something additional or more specific than "Avoid X smell", I don't think it should be a guideline; otherwise, I might feel compelled to add a guideline for every smell in the c2 wiki.

I think I'm now :-1: on this change (but don't mind being outvoted, as it appears I might be).