The versions of tcm's host protocol this tcm serves: what a library reaching tcm's runtime (React's routes, links and data, the server API's tables and jobs) speaks, as its manifest's `host` says. 1 is the page's globals the runtime sets (`__TCM_BASE__`, `__TCM_STATIC__`, `__TCM_STYLESHEETS__`, `__TCM_TREES__`, `__tcmPrefetch` and `__tcmUpdate`) and the server host `#tcm/host` (`createServerHost`'s exports).
ROLES{ readonly stylesheet: "a component given a stylesheet file as `css={…}`: the browser is sent the f…
The roles a package's manifest can give its definitions (`roles: { Sheet: "stylesheet" }`): what tcm's analysis and build treat specially, known by the definition's hash rather than by where it's imported from, so a library's versions of them are known too.
The roles of a branch's definitions (rolesIn), read again only when its names have changed: asked for each definition analyzed, each page shown and each app started.
Why an app using these definitions (its closure, by hash) can't be built by this tcm, if it can't: a package it uses speaks a version of tcm's host protocol this tcm doesn't serve (HOST_PROTOCOLS).
Every package manifest a branch's names hold, its libraries' included (`packagesIn` leaves those out: they aren't this codebase's to release): the namespace each is of, and what it says.
The roles the codebase's packages give their definitions (`roles` in a manifest), its libraries' included: each definition's hash, and its role. A version of a library's that a codebase holds is known by its hash wherever it's used from.