Every other app on the cube schema owns its own world: Anlat a story, Cubes a library, Todarch the to-dos. During the Sunday cleaning (without the history) a small mystery asked what Mosaic’s world is.
the leak that wasn’t
Selim saw Mosaic’s tiles inside Todarch and took it for a leak between two lobbies. A thread went looking and found none: tapping the Todarch row in Mosaic opened Mosaic’s own close-up of that row, its details of the app, not the app. Nothing was broken. The model was doing what he had once asked of it, and he stopped the fix himself when he saw that. What was missing was a clear answer to what Mosaic is for.
apps or screens
A study set out to name it. The agent recommended screens as Mosaic’s rows, since screens are where you land. Selim pushed back and called it “a university and a professor problem”: which one is the entry? He chose apps, and gave the reason that will outlast the study: “once those other applications become a cube app, they will not have screens, they will just have their cube.”
So Mosaic has one table, apps, given by the code. An app’s screens are a given property of it, each one a quick action that lands. The person organises the apps and never makes or deletes them, and a write in Mosaic never reaches another app. Its job, in his words: “mosaic responsibility is to create this navigation so i can land on the proper screen.”
A tap goes through the door to the app; a hold stays in Mosaic, with its own details of the app.
a step against the design, on purpose
A tap on an app leaves Mosaic for that app’s own lobby. In cube design a tap goes deeper into the same cube, so this breaks a rule, and Selim accepted it knowingly: “this is going a bit against our cube design … for the moment I have to accept it … if it becomes not okay, then we will consider something else.” Mosaic’s own details of an app sit behind the hold, titled like kitchen, in mosaic. Organising is something you do on purpose, by holding.
Before anything was built he also made sure of one thing: only the apps and their screens are given; every other group is the person’s own, because “each user is going to group in their own way.”
from a play page to master
The library needed two small pieces for it. Selim asked “isn’t there a URL type?” and the answer was precise: a link existed as a kind of property, but not on a value. So a value learned to carry a link, the same kind of addition as a colour. And a property given whole by the app became read-only, with a flag of its own, because given already meant something else in Anlat and quietly changing it there was not an option.
The play page seeded Mosaic from the real list of apps; ten new cases failed on the old page and passed on the new one, with all 64 older cases holding. Then it went to the app in about half an hour: the package release, red cases in Mosaic, the build, dev, master. On the way a red case caught one more ghost click, the finger lifting from a hold onto whatever the hold had opened, already fixed for one piece but not its sibling. A probe that logged every pointer event showed it in one run, and the fix went into the package once. Selim gave the go-ahead to publish with one tap on a card.