Ruby has a convention of using `to_<letter>` for explicit coercion and `to_<abbreviation>` to indicate implicit coercion. If an object responds to `to_str`, then it *is* a string and can be treated as such.

`Parameters` is not a Hash and doesn't pass the implicit coercion test, so it should not implement `to_hash` or recommend duck-typing against it.