We can reconsider this. I had built this in the prototype using my understanding at the time of what a stream consists of. Since source and sink are mandatory whereas processors are optional, I thought it made sense to explicitly split them out.