I feel like this might be more meaningful it returned `Result<(), T>` like `Packet.send`, to make it "obvious" which is the expected behaviour.