"Build the circuit before you shop for lamps. The lamp you buy first will quietly decide what the circuit is allowed to be."
The Build Order Is a Design Decision
Every engine in this family follows the same order: complete the engine, open the API, let clients come after. It sounds like project management. It's actually architecture. The order you build in determines which component gets to make demands of the other — and whatever you build first becomes the thing everything else is shaped around. Build the engine first and clients adapt to a clean API. Build the UI first and the API adapts to that UI, forever.
What UI-First Quietly Does to an API
Start with the interface and something subtle goes wrong. You need a screen that shows results with a filter and a toggle, so you write an endpoint that returns exactly that screen's data, in that screen's shape, with that screen's filter semantics. It works beautifully — for that screen. Then the second client arrives and discovers the API speaks a dialect invented for a UI it has never seen: fields it doesn't want, a shape it has to unpick, assumptions it doesn't share. The first UI's accidents have become the API's permanent vocabulary.
The Console Is a Lightbulb, Not the Product
So the console gets built second, and it's honest about its role: it's the first thing plugged into the circuit, there to prove the current flows. It has no privileges. It calls the same public endpoints anyone else would, and if it needs something the API doesn't offer, that's a signal about the API, not an excuse for a private back door. A first client that gets special access isn't a client — it's the engine wearing a costume, and the API will never be tested honestly again.
The Proof: Later Clients Cost Nothing
The payoff shows up when the second, third, and fourth clients arrive and the engine doesn't change at all. An editor's completion popup, an assistant calling search as a tool over HTTP, an internal site-search view — each one plugged into the same endpoints and got full capability on arrival. Zero engine modifications. That's the receipt for engine-first: when adding a client is a client-side-only change, the API was general enough. When every new client forces an engine change, you built a UI's backend and called it an engine.