? We have to ensure `hash` remains (sort of) bijective on those fields, even if other fields get added in this class or its subclasses.