+ *
+ * Implementations are expected to implement hashCode() and equals() methods
+ * in a way, which ensures that objects before and after serialization are
+ * considered equal.
+ *
+ * Implementations are advised to use the Externalizable Proxy pattern to
+ * allow future evolution of their serialization format.