The insight that unlocked it
Every model, in every mode, always sees 1:1. It's a turn-based game.
That sentence from Dad collapsed weeks of design noise. Council is not a new chat format. It is a meta-collection that groups independent 1:1 chat logs. Every seat at the table is an ordinary conversation with its own log, and the orchestrator reaches each brain through the same canonical chat route a 1:1 chat uses, the way any client would. What's new sits above those logs: who sits where, what each seat is told about the table, and whose turn it is.
Why this is the Three Rules at their most extreme
When Family Council shipped on 2026-04-10, its diff touched no brain adapter, no chat route, no JSONL logger, and no conversation schema: a new council package, new frontend components, and three lines registering the router. The existing 1:1 chat code is the ancestor, and council was built entirely above it. The count did not stay at zero. The chat route later picked up a few additive hooks that council needed, and lesson 5 is about why that was the right kind of touch.
The framing matters less for the many faces the UI shows than for the unit of persistence and recovery it protects. Each participant's answer stays in an ordinary conversation, and the council record only says which of those conversations to read together, and in what order. If the group view breaks, the 1:1 logs underneath do not.
Multi-agent does not need a new message ontology. Orchestration that decides who sees what and who gets the turn is enough. Picture the models forming a shared consciousness in one room, and storage and accountability blur. Each seat sees its own 1:1 and only the coordinator knows the whole order, which is also why one failed seat can be retried or dropped on its own.