ALTITUDE · ONE BOX, ELEVEN BUILDS PLATES READ: census-bricks.json · census-builds.json · census-couplings.json · census-peers.json SEE ALSO 2 A4 

FIT VERDICTalternate builds from one box: ten builds pinned by 20 consumers, vanilla the most built by six, and an eleventh, the atlas, by the atlas’s own app on its own branch, none mixing two of effect, mobx and signal-polyfill; every part is in a build at the cabinet’s tree, and hono is a plate no build stands on at the cabinet’s tree, hono with the atlas app too

THE ALTITUDE ATLAS — DRAWING SETSHEET 2C / 14

the ALTERNATE BUILDS

ALTITUDE 2 — SIBLING PLATE, THE ECOSYSTEM: one box of twelve family bricks at sheet 2’s mould and nine runtimes as stacks of baseplates sized from one shipped build at the same scale, and the ten alternate models the repository’s own consumers build from it, and an eleventh the atlas’s own app builds on its own branch — each model the parts one consumer pins, on the plates they peer · rows read census-builds.json, both readings, and census-peers.json @ 3f55e419

BUILD I · VANILLA 6 consumers · six examples 1×1 C×1 G×1 1 C G BUILD II · TYPED SIGNALS 3 consumers · a sample app and two examples 1×1 7×1 9×1 11×1 C×1 G×1 I×1 1 7 9 11 C G I BUILD III · TYPED EFFECT 2 consumers · a sample app and an example 1×1 5×1 8×1 11×1 C×1 D×1 G×1 1 5 8 11 C G D BUILD IV · TYPED MOBX 2 consumers · a sample app and an example 1×1 3×1 10×1 11×1 C×1 G×1 H×1 1 3 10 11 C G H BUILD V · ESLINTED VANILLA 1 consumer · an example 1×1 12×1 C×1 E×1 G×1 1 12 C G E BUILD VI · SSR SERVER 1 consumer · a docs site 1×1 4×1 6×1 A×1 B×1 C×1 G×1 1 6 4 C G A B BUILD VII · NAV 1 consumer · an example 1×1 2×1 C×1 G×1 1 2 C G BUILD VIII · TYPED NAV 1 consumer · a sample app 1×1 2×1 11×1 C×1 G×1 1 2 11 C G BUILD IX · TYPED VANILLA 1 consumer · a sample app 1×1 11×1 C×1 G×1 1 11 C G BUILD X · SERVER 1 consumer · a sample app 4×1 C×1 4 C BUILD XI · THE ATLAS 1 consumer · an atlas app · typed eslinted effect nav ssr server 1×1 2×1 4×1 5×1 6×1 8×1 11×1 12×1 A×1 B×1 C×1 D×1 E×1 G×1 1 5 6 2 8 11 4 12 C G D A B E

THE BOX — 12 BRICKS, 9 PLATES · the bricks at sheet 2’s mould, the plates at the same scale, numbered as the panels’ callouts badge them

#partmouldat the cabinet’s treewith the atlas appnote
1lit-ui-router2×4 · 9 coursescarried by 18 consumerscarried by 19 with the atlas app—
2navigation-location-plugin1×2 · 1 coursecarried by 2 consumerscarried by 3 with the atlas app—
3lit-ui-router-mobx1×1 · 2 coursescarried by 2 consumerscarried by 2 with the atlas app—
4ui-router-server2×4 · 7 coursescarried by 2 consumerscarried by 3 with the atlas app—
5lit-ui-router-effect1×2 · 2 coursescarried by 2 consumerscarried by 3 with the atlas app—
6lit-ui-router-ssr2×4 · 6 coursescarried by 1 consumercarried by 2 with the atlas app—
7lit-ui-router-signals1×2 · 2 coursescarried by 3 consumerscarried by 3 with the atlas app—
8ui-router-effect1×1 · 1 coursecarried by 2 consumerscarried by 3 with the atlas app—
9ui-router-signals1×1 · 2 coursescarried by 3 consumerscarried by 3 with the atlas app—
10ui-router-mobx1×1 · 1 coursecarried by 2 consumerscarried by 2 with the atlas app—
11ui-router-registry2×2 · 2 coursescarried by 9 consumerscarried by 10 with the atlas app—
#partmouldat the cabinet’s treewith the atlas appnote
12eslint-plugin-lit-ui-router2×4 · 4 coursescarried by 1 consumercarried by 2 with the atlas app—
A@lit-labs/ssr1 plate · 3×3 · 8 studsunder 1 buildunder 2 with the atlas app—
B@lit-labs/ssr-client1 plate · 1×2 · 2 studsunder 1 buildunder 2 with the atlas appan optional peer, drawn dashed
C@uirouter/core1 plate · 6×6 · 32 studsunder 10 buildsunder 11 with the atlas app—
Deffect19 plates · 18 of 8×6 + a 4×4 · 878 studsunder 1 buildunder 2 with the atlas app—
Eeslint9 plates · 8 of 8×6 + a 6×6 · 418 studsunder 1 buildunder 2 with the atlas app—
Fhono2 plates · 1 of 8×6 + a 4×4 · 62 studsunder noneunder none with the atlas appan optional peer, pinned by no consumer
Glit1 plate · 1×1 · 1 studunder 9 buildsunder 10 with the atlas app—
Hmobx1 plate · 6×6 · 31 studsunder 1 buildunder 1 with the atlas app—
Isignal-polyfill1 plate · 2×2 · 4 studsunder 1 buildunder 1 with the atlas app—

BUILD SCHEDULE — ten builds · eleven with the atlas app, numbered from most consumers down, ties alphabetical by parts, the atlas app’s build after them · a build is the family parts one consumer pins, counted over 20 consumers · 21 with the atlas app

#buildbricksplatescouplingsconsumersnote
IVANILLA1 lit-ui-routerC @uirouter/core and G litstraddles brick 1 to G6 consumers: helloworld (example), helloworld-buildless (example), hellosolarsystem (example), hellogalaxy (example), design-system-links (example), loading-and-error-views (example)—
IITYPED SIGNALS1 lit-ui-router, 7 lit-ui-router-signals, 9 ui-router-signals and 11 ui-router-registryC @uirouter/core, G lit and I signal-polyfillstraddles brick 1 to G · cords brick 9 to I3 consumers: sample-app-lit-signals (sample app), hellosolarsystem-signals (example), hellogalaxy-signals (example)1 manifest takes ui-router-signals as a peer rather than pinning it: sample-app-lit-signals
IIITYPED EFFECT1 lit-ui-router, 5 lit-ui-router-effect, 8 ui-router-effect and 11 ui-router-registryC @uirouter/core, G lit and D effectstraddles brick 1 to G · cords brick 8 to D · a cord hangs from brick 5 to D2 consumers: sample-app-lit-effect (sample app), hellogalaxy-effect (example)1 manifest takes ui-router-effect as a peer rather than pinning it: sample-app-lit-effect
IVTYPED MOBX1 lit-ui-router, 3 lit-ui-router-mobx, 10 ui-router-mobx and 11 ui-router-registryC @uirouter/core, G lit and H mobxstraddles brick 1 to G · cords brick 3 to H and brick 10 to H2 consumers: sample-app-lit-mobx (sample app), hellosolarsystem-mobx (example)1 manifest takes ui-router-mobx as a peer rather than pinning it: sample-app-lit-mobx
VESLINTED VANILLA1 lit-ui-router and 12 eslint-plugin-lit-ui-routerC @uirouter/core, G lit and E eslintstraddles brick 1 to G1 consumer: lint-eslint (example)—
VISSR SERVER1 lit-ui-router, 4 ui-router-server and 6 lit-ui-router-ssrC @uirouter/core, G lit, A @lit-labs/ssr and B @lit-labs/ssr-clientstraddles brick 1 to G · cords hang from brick 6 to A and B1 consumer: @www/lit-ui-router.dev (docs site)—
VIINAV1 lit-ui-router and 2 ui-router-navigation-location-pluginC @uirouter/core and G litstraddles brick 1 to G1 consumer: navigation-api (example)—
VIIITYPED NAV1 lit-ui-router, 2 ui-router-navigation-location-plugin and 11 ui-router-registryC @uirouter/core and G litstraddles brick 1 to G1 consumer: sample-app-shared (sample app)—
IXTYPED VANILLA1 lit-ui-router and 11 ui-router-registryC @uirouter/core and G litstraddles brick 1 to G1 consumer: sample-app-lit-vanilla (sample app)—
XSERVER4 ui-router-serverC @uirouter/core—1 consumer: sample-app-routes (sample app)—
XITHE ATLAS — typed eslinted effect nav ssr server1 lit-ui-router, 2 ui-router-navigation-location-plugin, 4 ui-router-server, 5 lit-ui-router-effect, 6 lit-ui-router-ssr, 8 ui-router-effect, 11 ui-router-registry and 12 eslint-plugin-lit-ui-routerC @uirouter/core, G lit, D effect, A @lit-labs/ssr, B @lit-labs/ssr-client and E eslintstraddles brick 1 to G · cords brick 5 to D and brick 8 to D · cords hang from brick 6 to A and B1 consumer: altitude-atlas-app (atlas app)—
—no buildno family part——1 consumer: sample-app-lit-e2e (sample app)pins no family part: a consumer, not a build

PLATE SCHEDULE — one row per runtime · one build, the tarball it ships, its closure · every joint a peerDependency row

#runtimerangeone buildfilesslocstudsplatesshipsclosurepeered by · under
A@lit-labs/ssr 4.1.0^4.1.0main81,08381 plate · 3×317 files · 1,530 sloc20 packages · 28,345 slocpeered by brick 6 · under build VI · under builds VI and XI with the atlas app
B@lit-labs/ssr-client 1.1.8 · OPTIONAL, drawn dashed^1.1.7development428221 plate · 1×216 files · 576 sloc7 packages · 4,564 slocpeered by brick 6 · under build VI · under builds VI and XI with the atlas app
C@uirouter/core 6.1.2^6.0.8module804,776321 plate · 6×6162 files · 14,601 sloc1 package · 4,776 slocpeered by brick 1, brick 5, brick 3, brick 7, brick 6, brick 8, brick 10, brick 2, brick 11, brick 4 and brick 9 · under builds I, II, III, IV, V, VI, VII, VIII, IX and X · under builds I, II, III, IV, V, VI, VII, VIII, IX, X and XI with the atlas app
Deffect 4.1.1^3.22.0 || ^4.0.2default581131,67187819 plates · 18 of 8×6 + a 4×4581 files · 131,671 sloc1 package · 131,671 slocpeered by brick 5 and brick 8 · under build III · under builds III and XI with the atlas app
Eeslint 10.14.0^9.0.0 || ^10.0.0default38062,6664189 plates · 8 of 8×6 + a 6×6410 files · 64,595 sloc75 packages · 99,760 slocpeered by brick 12 · under build V · under builds V and XI with the atlas app
Fhono 4.13.14 · OPTIONAL, drawn dashed^4.0.0import1809,170622 plates · 1 of 8×6 + a 4×4380 files · 19,007 sloc1 package · 9,170 slocpeered by brick 4 · under no build · under no build with the atlas app
Glit 3.3.3^2.0.0 || ^3.0.0 || ^3.1.2default383911 plate · 1×177 files · 118 sloc6 packages · 4,282 slocpeered by brick 1, brick 5, brick 3, brick 7 and brick 6 · under builds I, II, III, IV, V, VI, VII, VIII and IX · under builds I, II, III, IV, V, VI, VII, VIII, IX and XI with the atlas app
Hmobx 7.1.3^6.0.0 || ^7.0.0import14,622311 plate · 6×69 files · 23,213 sloc1 package · 4,622 slocpeered by brick 3 and brick 10 · under build IV · under build IV with the atlas app
Isignal-polyfill 0.2.2^0.2.0main152041 plate · 2×21 file · 520 sloc1 package · 520 slocpeered by brick 9 · under build II · under build II with the atlas app

TOTAL — ten builds from 20 consumers · eleven from 21 with the atlas app · twelve of twelve parts carried · twelve with the atlas app · eight of nine plates stood on · eight with the atlas app · counted at origin/main @ 3f55e419 (2026-10-31)

FIG. 2COne box, eleven models. The sample apps, the docs site and the examples pin ten distinct sets of family parts, and the atlas’s own app pins an eleventh on its own branch; each set is drawn as the small assembly it makes on the runtime plates its parts peer, under a callout of its parts: effect, mobx and signal-polyfill share no model, no bricks stay in the box at the cabinet’s tree and no bricks with the atlas app, and one plate carries nothing at the cabinet’s tree and one with the atlas app.

GENERAL NOTES

One box, several models. Sheet 2 draws every family brick in one assembly on @uirouter/core. The repository's own consumers — 20 consumers: the sample apps, the docs site and the examples at the cabinet's sha — pin ten distinct sets of family parts, each manifest closed over its family peers, and this plate draws each set as the model it makes: its parts at sheet 2's mould, standing on the runtime plates those parts peer. The eleventh model, build XI, is the atlas's own app: its manifest at www/atlas.lit-ui-router.dev/app, read from git archive www/atlas @ 08a98096, off the cabinet's tree, and drawn accent-edged on its own branch the way sheet A4 draws the atlas deploy. Every count on this sheet reads both ways, the cabinet's tree first and “with the atlas app” after. Build I is the most built, lit-ui-router alone on @uirouter/core and lit, by 6 consumers. One consumer pins no family part at all (sample-app-lit-e2e), and is a consumer rather than a build.

No model mixes two reactivity runtimes. effect, mobx and signal-polyfill are each reached by a family binding — lit-ui-router-mobx, lit-ui-router-effect, lit-ui-router-signals, ui-router-effect, ui-router-signals and ui-router-mobx — and no consumer in either reading mixes two of them; the build stops if one does. The bindings are alternates in the box, the way one set's instructions show a car or a plane, not both.

Ground and stacking follow the dependency. A family brick peers lit or effect, not the reverse, and no runtime on this plate peers another — both read from each row's own peerDependencies — so each runtime is a plate, the parts stand on them, and the plates lie on plain ground. @uirouter/core is a plate like the others: eleven of the twelve family bricks peer it, and it is the baseplate of every model, laid first at the left, the way sheet 2 seats the family on it. A part stands on the part it peers when that part is in the same build, as it does on sheet 2, and the rest seat on core at sheet 2's places measured from core's right edge, packed from the back where sheet 2 seats them off its client plate; a part that peers no core seats on its one runtime (eslint-plugin-lit-ui-router). Every other runtime a brick peers abuts core and the brick reaches it, unless the brick it stands on already carries it: a brick on core straddles the seam onto a flat runtime plate one stud deep, the way lit-ui-router stands on both core and lit, and a brick that cannot straddle, one on another brick or one beside a stack, reaches it by a cord: a string with end studs, two 1×1 round plates joined by a cord, one seated on a ringed stud of the brick's top and the other on a ringed stud of the plate, the cord leaving each plate's own stud, from the nearest pair of free studs whose cord clears every brick and stack. A brick standing on another brick hangs its cord instead from a free stud of its underside, the round plate's stud seated in the brick as on a stud, wherever that cord drops clear of every other brick and stack — brick 5 in build III, brick 6 in build VI and brick 6 in build XI. Nothing abuts core from behind: a stack taller than core stands at its left or right side, and a flat plate along its front, at the right beside the seam or at the left, wherever every cord to it runs clear of every brick and stack; each plate rings one stud per brick coupled to it. The atlas app's model spans the columns its width needs. A build stands on the runtimes its consumers declare and on every required peer its parts carry, which the installer adds whether or not a manifest names it; an optional peer no consumer declares stays off the model.

One scale. The family keeps sheet 2's mould exactly — 1 stud per 150 sloc rounded up the brick shapes, a course per 3 authored files. A runtime is baseplates at sheet 2's baseplate footprint, 8×6 = 48 studs, one stud per 150 sloc of one shipped build — the files reachable from its exports entries, the development condition where one is shipped (@lit-labs/ssr-client) — laid a plate at a time and stacked when it overflows, the remainder on top at its own size, three plates to a brick course: effect is 19 plates · 18 of 8×6 + a 4×4, eslint is 9 plates · 8 of 8×6 + a 6×6 and hono is 2 plates · 1 of 8×6 + a 4×4. Under 48 studs a runtime is one plate at its own size, the nearest rectangle: @lit-labs/ssr 3×3, @lit-labs/ssr-client 1×2, @uirouter/core 6×6, lit 1×1, mobx 6×6 and signal-polyfill 2×2. A package's dependencies are a number in the schedule rather than area on the plate: @lit-labs/ssr builds 1,083 lines over a closure of 28,345, @lit-labs/ssr-client builds 282 lines over a closure of 4,564 and lit builds 39 lines over a closure of 4,282. Every model on lit stands on a 1×1: nine of the ten builds, ten of eleven with the atlas app, and the runtime they run on is in its closure.

What stays in the box. Every part in the box is carried by a consumer at the cabinet’s tree, so a model of that reading draws each one. hono is a plate no model stands on at the cabinet's tree — hono optional and pinned by no consumer there. They stand in the parts schedule below the drawing, each row reading the cabinet's tree first and the atlas app after, and no model draws them. Build II's manifests differ in what they pin and what they take as a peer, build III's manifests differ in what they pin and what they take as a peer and build IV's manifests differ in what they pin and what they take as a peer; the schedule says which. Every number on this sheet is read from www/atlas.lit-ui-router.dev/data/census-builds.json, census-peers.json, census-bricks.json and census-couplings.json — counted at origin/main @ 3f55e419 (2026-10-31); the second reading adds www/atlas.lit-ui-router.dev/app at www/atlas @ 08a98096.

KEY

a family brick — sheet 2’s mould: 1 stud per 150 sloc, a course per 3 files
a runtime — baseplates of 8×6, 1 stud per 150 sloc of one shipped build, stacked when they overflow, the remainder on top at its own size; three plates are one brick course, 144 studs; under 48 studs, one plate at its own size
a build — the family parts one consumer installs together, counted from the sample apps, the docs site and the examples at the cabinet’s sha, and from the atlas app’s own manifest on its branch
an accent-edged panel — the atlas app’s build, on its own branch, its ground edged in accent
a ringed stud — one per brick coupled to a plate, under a seated or straddling brick or under a cord's round plate, on the plate and on the brick's top; the plate lettered A–I beside it
drop line — the brick seats on that stud; a brick straddling a seam drops onto both plates
a string with end studs — two 1×1 round plates joined by a cord, a coupling a footprint cannot make, drawn to fit and not massed: one plate seated on a ringed stud of the brick’s top, the other on a ringed stud of the runtime’s plate, the cord leaving each one’s own stud; a cap seats on a stud or hangs from a brick’s underside
a dashed plate — an optional peer
ground — the registry, not massed
PROJECTTHE ALTITUDE ATLAS
SHEET TITLEthe ALTERNATE BUILDS
SCALEONE BOX, ELEVEN BUILDS
FORMBUILD INSTRUCTIONS
CLIENTlit-ui-router · simshanith
DATE / REV2026-10-30 · D
DRAWN BYFable (Claude, AI)
SHEET2C OF 14