I think this is probably not the proper forum to debate the merits of an idiomatic java pattern that is widely used in the codebase. If you feel strongly, open a JIRA and we can have a wider discussion there. In this case, the addition of `equals` and `hashCode` just facilitates testing. We would implement them in other request types if and when we need them (my guess is we will start to need them more as we have now moved `Struct` outside of the classes).