Essentials: * Universal types: `any` vs `unknown` vs `never` * naked parameter types * union `A | B` vs intersection `A & B` * distributed conditional types * parameters in covariant / contravariant / invariant position * difference between `Keys<T>` and `keyof T` for `T in any | unknown | never` * ... Shortcomings: * UnionToTuple has an unpredictable order, see [this tweet](https://twitter.com/MichaelArnaldi/status/1581602293819899905), but it is still the only way to recursively process elements. * ...