Archived
Refused where it is written: a module that provides `artifact-store` and also builds artifacts asks the mesh to put an artifact into the thing that artifact is needed to create. Building publishes to the store, and the builder will not start without one — "a built artifact nobody can fetch is not built". This is the question the substrate record asks of every candidate: can it grant itself the thing it provides? The store cannot create its own database, the broker cannot create its own virtual host, and a registry cannot grant itself a repository. The first two are why they are in the bundle. This is the same sentence, unenforced. So such a module names its image, exactly as the bundle names the three a first node starts from. One that wants an interface or a tool server beside it is a second module, mirrored the ordinary way once the first is running — a real limit, and better said here than discovered on a mesh new enough that nobody is watching it. Refused at the manifest because the alternative is a build that never returns. The provision name is now a constant. A string compared in one place is a convention; a string a rule turns on is a fact.