T - the owner of the id
public Id<T>
A unique document identifier.
If the id type need to support json serialization and deserialization, it must provide a toString() method and a constructor with a one String arg, and consistent equals & hashCode methods.
Please note that equals and hashCode methods of Id are "implementation dependant": if classes A and B are two implementations of Id, instances of A are always not equals to instances of B.
@NotNull <NewType> Id<NewType> cast()
Cast Id to Id.