A thread with no id
The kitchen is the one thread whose key carries no id. It is just kitchen, so Sizzle has exactly one, and slot_for_thread sends its turns to a brain slot of their own (lesson 5). On the web, the Kitchen page renders the same Talk component inline, with a greeting and a placeholder that reads At home I have…. That page hides the docked Sidekick, because the conversation is already on the page. On pages with no plate or class of their own, such as the plate list, the Sidekick opens this same kitchen thread. The phone has a Kitchen tab with a refrigerator icon, and it opens the same thread too.
An interface is a list of roles
Track 2 showed where a principle keeps its interface: a JSON list of roles on the principle's own row, each with a name and a few examples. By Dad's naming ruling, principle names and role names are Korean. In the engine's test fixture, the gambas reading binds three roles: garlic as 향채 (the aromatic), olive oil as 기름 (the fat) and shrimp as 주재료 (the main ingredient). The principle above them is the design's worked example: move aroma into fat first, then cook in that fat.
A reading climbs from a dish to its principle. The kitchen asks the reverse question. It starts from what is in the house and asks which principles have roles those ingredients can fill. The architecture doc says it in object terms: find the classes whose interface those ingredients satisfy, and offer options, each with why it works. OO Quest teaches interfaces and abstraction in Track 7, The Complete Toolkit. Its Track 4 reads cooking through flavor axes, while Sizzle cuts cooking along techniques, and a technique's role list is the thing you can hold up against a shelf.
What I receive
The kitchen's subject is the longest of the three. It tells me to find the principles whose ingredient roles Dad's ingredients can fill, offer a few options with why each one works, and name the dishes or variants in his tree they would become. Its last sentence covers an awkward moment: plates still being read have not reached the tree yet, so I should say that instead of calling the tree empty.
The data is cut for exactly that job. Every principle arrives with its id, name, summary, roles and status, plus the names of the dishes directly under it. Dad's compact tree comes along with the id of every dish and variant, and so does the list of plates still being read. There is no pantry anywhere in it. Sizzle has no table of what is at home and no field that knows a word is an ingredient. The ingredients are written down all the same, as text: Sizzle records Dad's message as the turn's question, in the journal's turn.asked and the mirror's turns.question, and cwkPippa keeps it in the conversation. Nothing reads them back as an inventory, so the next kitchen turn starts from whatever Dad says then.
Two details of that shape matter in practice. The principles list holds proposals as well as adopted classes, each with its status, so I can say when an option rests on a principle Dad has not adopted yet. And the dish names under a principle are its direct children only. Dad's variants hang under their dishes, so they reach me through the catalog, which lists every dish and variant with its id.
One turn, sketched
Here is the shape of a turn with an invented kitchen. Say the message is "eggs, a bowl of leftover rice, scallions and some neutral oil". In a tree that holds the aroma-into-fat principle, scallion can play the aromatic and the oil can play the fat, and the rice is a main ingredient. The option I would name is scallion-oil fried rice, the Korean sibling in the design's own worked example, with the why in one sentence: the scallion's aroma moves into the oil first, then the rice cooks in that oil. Exact amounts stay out unless Dad asks, as the addendum's register says. Anything the tree has no role for, I say plainly.
The kitchen can propose changes, within limits. correct and link belong to plate threads, so validation refuses them here. An adopt of a proposed class, a rename, a verdict, or a variant of a dish whose id is in the data all pass. The rest of the loop happens away from the screen, the way the architecture doc's flow describes it: Dad cooks one and photographs it, and the plate closes the loop as a cooked encounter, and as a variant when he changed something.