I think both `input` and `output` can be `readonly`. I can't see any good reason to let people set them.