A pipeline step: either a Brick (invoked via ask(), receiving/producing a string) or a Program (invoked via its owning brick's run(), passed as a [brick, program] tuple so pipeline.ts doesn't need its own dispatch mechanism).
Brick
ask()
Program
run()
[brick, program]
pipeline.ts
A pipeline step: either a
Brick(invoked viaask(), receiving/producing a string) or aProgram(invoked via its owning brick'srun(), passed as a[brick, program]tuple sopipeline.tsdoesn't need its own dispatch mechanism).