very huge typescript question - Theo's Typesafe Cult