Inserting the alternative-output transformer here leads to a model where we pack alternatives in a to a core function. Instead we could extend RequireJSProjectTransformer from ProjectTransformer the way that ProgramTransformer extends ProjectTransformer, and insert/append the alternative output transformer in that ctor. This creates a system where alternatives are on the leafs rather than branches.  Did you consider this approach?  Are there changes we could make to help the leaf approach?