...
First, it has a locally-scoped identifier (ReferenceId) which allows its parent object to be used by reference within a given collection of data (dataset). When dealing with especially large datasets, the ability to use objects by reference results in a smaller footprint when persisting to storage or attempting transmission.
Second, it enables the association of multiple unique identifiers and their origin information (UniqueId) to an object. This results in an enhanced exchange of data between different systems because each system can include its internal, unique identifier for an object.
Systems One historic pain point in data exchange has been that systems vary in the way they choose to construct unique identifiers. It is for this reason, that the UniqueId class uses a combination of string (Id) and enumeration (CompoundIdentifierTypeEnum) to fully describe the unique identifier. This allows us to support a broad variety of identification methods.
Almost as important is the need to capture the originating source, or issuing authority of the identifier. Again, a combination of string (Source) and enumeration (IdSourceTypeEnum) are used to fully describe the identifier's source.
...