TypeScript Discriminated Unions: Make Illegal States Unrepresentable | aweai