A "Branded" type is a type that is a subtype of the original type, but has a unique literal value in a common field (the brand).
This allows us to define types that are more specific than the original type, but are still compatible with it.
For example, we have the type EmailAddress, which is a string that is guaranteed to be a valid email address.
Branded types can only be created by calling the brand function, which takes a value of the original type and returns a value of the branded type.