This is in preparation for creating typescript nodes directly from `OutputAst` nodes.
This changes the formatting to be less verbose but still tries to be readable.
Design doc: https://docs.google.com/document/d/1VmTkz0EbEVSWfEEWEvQ5sXyQXSCvtMOw4t7pKU-jOwc/edit?usp=sharing