The session is "just" the raw chat history in it's entirety (human and agent) and can be disseminated as such. This is what enables swapping between models, you simply send the whole context.
Not sure how others do it, but opencode stores sessions in a sqlite db and you can extract them and share them as needed.
https://opencode.ai/docs/cli/#export
Pro-tip: Building your own extremely minimal harness takes about 15m and is both fun and enlightening. Agents are unsurprisingly quite good at it, but ask them to walk you through it step by step.