The current testing infrastructure consumes code in a stack machine-like form. This is neat because it's the WebAssembly format, but it's a PITA because it's not natural to write. It's actually pretty easy to support both, mixed, by being clever in how the builder objects consume parameters passed to them: when they're passed a builder then they need to consume whatever the prior invocations produced. This isn't super important, but it's nice, and I like nice.