Added @canonical to domain classes so that they pass codenarc's equal and hashcode checks
The current thinking is to have a metaEntity and metaAttributes to many levels deep for products