It should clearly *not* be mutable. Consider similar APIs where you pass down an Imagick object so the lower methods can draw on it. It's the exact same situation here. We have a drawing board, and the routes draw on it.