Structured routing context recorded alongside a session. Mirrors the
ChannelMessage fields the orchestrator uses to compose
conversation_history_key so the session row can be queried by
channel / room / sender without re-parsing the synthetic key.
One persisted message with the optional created_at the backend
stamped on it. JSONL / in-memory backends return None; SQLite
returns the row’s created_at column.