@uml This interface provides an abstract concept of object equality independent of {@link Object#equals} (object equality) and the {@code ==} operator (reference equality). It can be used to provide algorithm-specific unordered comparisons without requiring changes to the object itself.