The base brand to extend
Additional keys to mark as true
Additional keys to mark as false (defaults to never)
type Email = Brand<string, 'email'>;
type ValidatedEmail = ExtendBrand<Email, 'validated'>;
// ValidatedEmail has both 'email' and 'validated' as true
type OptionalEmail = ExtendBrand<Email, 'optional', 'required'>;
// Has 'email' and 'optional' as true, 'required' as false
// This would return never (conflicting keys):
// type Invalid = ExtendBrand<Email, 'verified', 'verified'>;
Extends an existing brand with additional true/false keys. Fails if the same key would be marked as both true and false.