Payload
Turns a SessionView into the exact bytes sent to a client. The view has
already decided what is visible; this module only chooses the wire shape.
A hidden ranking is nil in the view, so it serialises to null — the card
names are never written.