The `Protocol` classes should have a `write_instruction` method which takes an `Instruction` object and writes the instruction to the `io` stream. See the [Python _Pickler class and `save_*` methods](https://github.com/python/cpython/blob/89413bbccb9261b72190e275eefe4b0d49671477/Lib/pickle.py#L401-L1121).