Wow, I hope the typescript compiler is ready for this kind of dynamic complexity...
type Protocol = 'http' | 'https';
type DomainExtension = 'com' | 'org' | 'net';
type DomainName = 'example' | 'google';
type Domain = `${DomainName}.${DomainExtension}`;
type Path = string;
type ApiEndpoint = `${Protocol}://${Domain}/${Path}`;
This would seemingly get out of hand very quickly...