[jdbb]studio
Field notes · Language as protocol rev 5 · working
Book Factory Workshop · Source material

Language as protocol — examples in the wild.

Written language has always been a protocol stack. A book-production factory just makes one layer — the stylesheet — visible and ownable. Here are real-world systems where language is already run as a strict protocol: controlled vocabularies, typed interfaces, conformance regimes, versioned specs. Field material for the workshop's lectures, demos, and the moment it clicks that this is everywhere.


The controlled vocabulary you already use — the styles dropdown

near pole · everyone's Tuesday

Every word processor ships a paragraph-styles menu — the little dropdown that says Normal text / Heading 1 / Title. It is the most-used controlled vocabulary on Earth, and almost nobody who uses it thinks of it as one. You already mark what a thing is and let the tool decide how it looks. The instructive part is how differently two everyday tools size that menu — because the gap between them contains the entire design theory.

“Heading 1” in the dropdown a style name (rule clause / stylesheet tag)
Google Docs
the tiny palette
≈ six choices — Normal text, Title, Subtitle, Heading 1–3 (4–6 hidden). No character styles, no custom named styles — you can't invent an “Epigraph” or “Verse.” You can only redefine the six you're given. A deliberately small, closed vocabulary.
MS Word
the massive palette
Dozens of built-ins — Heading 1–9, Title, Subtitle, Emphasis/Strong, Quote/Intense Quote, Book Title, Caption, List Paragraph… — across five style types (paragraph, character, linked, table, list), with inheritance, a “style for the following paragraph” rule, and unlimited custom styles. A large, self-describing, evolvable vocabulary.

The leap from the Google Docs six to Word's hundreds is the whole controlled-vocabulary problem in miniature:

Too small No slot for epigraph, verse, dedication, pull-quote → authors smuggle those meanings in as direct formatting (bold, center, manual indent). Semantics leak into presentation — the fake heading, the single most common preflight finding, reproduced here as an inevitability of an undersized palette, not author laziness.
Too large Word can express almost anything — but nothing enforces consistency. Two authors invent two taxonomies; the same look is reached five ways; direct formatting silently overrides the style. Expressiveness without a conformance regime is its own failure mode.
The resolution A curated vocabulary — as small as possible but no smaller — plus a preflight that enforces “mark what it is, never format directly.” Word gives the tools but no discipline; Google Docs gives the discipline of scarcity but no expressiveness. A book factory supplies the missing half to each.

And the move is one participants have already made without a name for it: in Word, Modify style; in Docs, Update ‘Heading 1’ to match. Redefine the style once → every instance in the document re-renders. That is CSS Zen Garden — separation of layers — in a tool they already own.

Why it matters for a book factory specifically. Manuscripts arrive as .docx or Google Docs, so ingest and normalization is literally Job #1 in production. Whether the author used real styles or faked them with direct formatting is the difference between a clean import and a day of cleanup. “Select-all → Normal → re-tag semantically” is the real-world Strip step — in a tool everyone has open right now. This isn't an analogy for the work; it is the first hour of the work.


The curated middle — this studio's own font selector

running on the page you're reading

The bar at the top of this site is a font picker: eight typefaces in two labeled groups — Mono/Sans (JetBrains, Martian, Plex, Geist) and Serif (Literata, Plex Serif, Source Serif, Newsreader) — plus a dark toggle. Pick one and the whole site re-renders in that voice. It is the curated answer to the sizing problem the styles dropdown poses — and it's the page on the projector.

you choose data-font=“newsreader” CSS resolves the real family / fallback / size-adjust
A name, not a stack The UI stores one semantic token on the <html> element — which voice, not which font-family triple. The controlled-vocabulary move, exactly.
Resolved once, elsewhere One CSS map turns each token into its real declaration. Change the map → every page follows. Separation of layers — CSS Zen Garden, in production.
Closed & curated Eight options, hand-grouped, each with a tuned preview size. You can't type an arbitrary font — and that restraint is the point. “As small as possible, but no smaller,” still spanning mono → sans → serif.
Versioned A tiny alias map silently upgrades retired tokens (menlo→jetbrains) so old saved preferences still resolve. Deprecation with backward-compat, live — the semver / rulebook-archive idea in one small object.

Set the three side by side and the whole spectrum snaps into focus: Google Docs (too small — meaning leaks into formatting) → this picker (the curated middle) → MS Word (too large — expressive but nothing enforces it). And the demo needs no narration: click Literata and this page becomes a book. The tool teaching protocolization is itself protocolized — the most honest possible credential.


The canonical proof — CSS Zen Garden

one HTML file · infinite renders · still live since 2003

Every design below is the exact same HTML file — not one character changed. Only the stylesheet swaps. That is separation of layers in its purest, most persuasive form: the semantic source is fixed and meaningful, and appearance is a swappable, downstream decision. It's the single flip that makes the whole thesis undeniable — and csszengarden.com is still online, unchanged in spirit for two decades.

CSS Zen Garden default green 'zen' design
Default — the original zen design
CSS Zen Garden 'Mid Century Modern' design: pink, teal, geometric
Mid Century Modern · A. Lohman
CSS Zen Garden 'Steel' design: dark industrial photography
Steel · S. Knöller

Same <h1>, same paragraphs, same list — three stylesheets.

This is the mechanism underneath everything else on this page. The styles dropdown, the studio's font picker, a book factory's stylesheet, an ABS rulebook — all of them work because “what a thing is” is stored once, and “how it looks” is resolved separately and swappably. Zen Garden just makes the swap visible in a single click. Browse the living gallery: csszengarden.com · the fixed source: HTML / CSS.


Conformance on hard mode — marine classification review

far pole · stylesheets on hard mode

Marine classification societies (e.g. the American Bureau of Shipping) publish versioned engineering rulebooksRules for Building and Classing Marine Vessels, lifting-appliance requirements, and so on. When a shipyard submits engineering documents, surveyors return a findings log: a table of discrete, numbered conditions, each citing the exact rule clause the submission fails to satisfy. Every finding must be closed before the vessel is granted class.

That is exactly a stylesheet preflight — but in a domain where the stakes are lives and steel instead of curly quotes. A representative findings log looks like this:

FindingTypeDescriptionStatus
EQUP-0008Technical Rope line-pull analysis uses friction-loss constant K=1.045. Per the lifting-appliance rules that value is for bronze-bearing sheaves; for roller/ball bearings K shall not be less than 1.02. Please address. OPEN
EQUP-0009Technical Submit hydraulic-piping detail: component cut sheets per 4-6-7/3; valve compliance/materials/pressure per 4-6-7/3.5.3; pipe schedule; hose & hose-end fitting IDs per 4-6-7/3.5.2. OPEN
EQUP-0011Technical Redundancy calcs showing the A-frame sustains rated load on a single pair of hydraulic cylinders after loss of the second pair, per 2-9/9(ii); mode selection per 2-9/11; personnel recovery per 2-9/13; updated load charts. OPEN

Illustrative rows, adapted from real classification-review practice.

Read that as a stylesheet and the isomorphism is total:

rule clause 4-6-7/3.5.3 a style name (Heading / Epigraph / Verse)
findings log (ID · type · cited description · OPEN) preflight edge-case report
close a finding — or file a formal variance Keep / Strip / Convert (deviation that presupposes the rule)

It is “hard mode” because the citations nest to absurd depth (2-9/9(ii)), the vocabulary is unforgiving, and non-conformance is not a style nit — the vessel doesn't sail. It makes the whole abstract argument visceral: this is what a controlled vocabulary looks like when it is load-bearing. And the rulebook archives — superseded editions kept on file, a submission judged against the edition in force at contract date — are versioned, inheritable protocols with backward compatibility, running live in industry.

Public sources (safe to cite & show): Paris MoU Port State Control is the closest public marine twin — inspectors record coded, convention-cited deficiencies plus an explicit “action taken” status vocabulary (17 rectify before departure, 16 within 14 days, 30 detainable): our finding schema and our OPEN/closed vocabulary, in the open. The rulebook side: ABS Rules & Guides archives.

01 The protocol concepts these make concrete

Typed interfaceA structured handshake you fill in up front — a transmittal, a customs declaration, a submission packet — that parameterizes everything downstream.
Controlled vocabularyYou mark what a thing is, not how it looks. Appearance is decided once, then applied deterministically.
Conformance / lintingA first-class, reviewable check that negotiates rather than rejects messy human input — the findings log, the linter, the desk-reject checklist.
Layered determinismOne semantic source → a format-independent intermediate → many faithful outputs.
Versioned protocolsSpecs that evolve without breaking their children — editions, supersessions, semver, house-style revisions.

02 The starter shelf — other candidates

Grouped by the concept each best illustrates. Hardness: ⚙ light · ⚙⚙ real · ⚙⚙⚙ hard mode.

Conformance / linting regimes

Controlled vocabularies

Separation of layers · versioning · machine authors


Part of the Protocolize Your Book workshop — a working book-production factory reframed as a protocol stack. Written language has always been protocolized; a stylesheet is just the layer writers can see and own.