ID References Dictionary
IdReferencesDictionary<TReference, TValue> uses are narrow and specific, but there are cases where it can be useful to use the IDs of some data structures (i.e. the Identifiables) as Key of a Dictionary to map each of them to some other kind of data — the value.
In these very special cases, the ID References Dictionary is useful when the Dictionary has to be compiled from the Inspector, allowing to drag and drop the given Identifiables in the Key slots, preventing possible ID typos and other errors.
It behaves and looks exactly like a SerializedDictionary, with the extra methods to access its values through ID, IdReference or an object of the referenced type.

To define a ID References Dictionary, use the following code snippet as example.
[SerializeField]
private IdReferencesDictionary<IdentifiableObject, string> _dictionary;
The generic argument TReference can be any IIdentifiable type, while TValue has no restrictions. The Dictionary won't show up correctly unless those types aren't Serializable.
The generic argument TReference is not limited to IdentifiableObject and IdentifiableBehaviour, but in case of a generic IIdentifiable instead of a Property field to assign the Key it will use an Id Field: