Suggestion: I know this is kind of redundant with the flat list of operation arguments existing (which we cannot change easily), but how about putting a StreamConfiguration object argument here? If a value explicitly provied, override the initial value from the StreamConfiguration object. This would be backwards compatible and still provide the object as the carrier for comprehensive config.

It's a bit ugly but may be a path to refactoring