Metadata: add value based equals() and hashCode()