The order is the principle
Later that same day Dad answered a list of design questions, and his third point set the rule every Spark screen still follows:
3. 괜찮아. 원칙이 가장 빠른 순으로 먼저 보여주는 거야. 텍스트 -> 저해상도 -> 고해상도 식으로. 나중에 이미지 번역하는 건 easel이나 ember 랑 연동하면 돼.
"Fine. The principle is to show whatever is fastest first: text, then low resolution, then high resolution. Translating the image itself can come later, by hooking into Easel or Ember."
It became invariant 2. Every result is shown in the order its layers become available: text, then the low-resolution picture, then the high-resolution one; the card before the voice; each high-quality version as it finishes. No faster layer waits for a slower one. Notice what the rule does not say. It never drops a slow layer to look fast. The overlay drawn on the phone does not cancel the picture Ember can redraw, and a card that is readable now still gets its voice. One layer needs Dad, though. Ember's picture never starts on its own: it is a separate picture turn that Dad asks for with a tap, and only then does the slowest layer begin.
What fastest first looks like
- A photo. I write my reading as a stream of small results, and the engine shows each line the moment it is complete. The phone draws each translation over its line as a rough overlay, and when Dad asks for it, a generated picture with the text re-set follows much later.
- A card. The words are readable before my voice for them exists.
- High quality. Each brain's version appears as it finishes, without waiting for the slowest.
- The send. The phone uploads in the order that shows my answer soonest: the moment, the small copy I read, the turn, and only then the heavy original (the first code block).
The measurements in the architecture show why the order matters. On the practical slot, a photo's first translated line appeared 23 seconds after the request and the twelfth result landed at 32 seconds. Streaming gave Dad something to read nine seconds before the whole answer existed. On the live camera, new text took a median of 3.4 seconds through the live lane, and text Dad had already met came back from the corpus in 20 milliseconds. Same principle, three timescales.
Two modes, one boundary each
The next ruling split translation in two:
번역 모드는 2가지여야해. 실용 vs 고품질.
실용이면 브레인 하나면 되지만, 고품질이면 브레인을 복수 선택해서 다른 버전을 볼 수 있어야 하고, 원문을 보지 않은 브레인의 cold-review도 선택적으로 가능하게. 길이 제한 없어야 하고.
"There have to be two translation modes: practical versus high quality. Practical needs just one brain, but high quality should let me pick several brains and see their different versions, with an optional cold review by a brain that never saw the source. And no length limit."
| Practical | High quality | |
|---|---|---|
| Who picks the brain | The family brain control plane (Spark's slot) | Dad, per job, from the family brain catalog |
| How many | One | Several, side by side |
| What comes back | Lines, with useful expressions as ready cards; brief by design | Full versions shaped by a named purpose |
| Review | None | Optional cold review that never sees the source |
| Length | Brief, because it is practical | No limit; long sources split at their own structure |
That became invariant 9: two modes, one boundary each. Practical turns ride the central slot, and Spark never chooses that brain itself. High-quality versions ride the brains Dad picked for that job and the purpose he named, and those picks never touch either slot. The engine's brain-control shim states the whole split in its docstring (the second code block). Track 7 builds the high-quality side: purposes as rows, seats, sections and blind review.
Everything is corpus
The same message carried the line this whole quest leans on:
실용이든 고품질이든, 맥락은 쌓여야 해. 한번 쓰고 버리는 게 아니라 모든게 코퍼스 자료야.
"Practical or high quality, the context has to build up. Nothing is used once and thrown away; everything is corpus material."
Invariant 3 makes it structural. Nothing Spark captures or produces is discarded, in either mode, and every result carries its lineage: the photo and the Vision line, the turn, the brain, model, effort and purpose. The accumulated corpus is the context of later turns. Underneath sits an append-only log where a correction, a deletion and a restoration are each a new entry. Track 2 opens that log.