DraftLumen Protocol v0, revision 25 (frozen snapshot)Not stable. Breaking changes expected.SourceReport an issue

Lumen Protocol v0, revision 25 (frozen snapshot). © Moonbase 2090 LLC. Licensed under CC-BY-4.0. Report security issues privately via GitHub private vulnerability reporting or [email protected].

Block types

Any producer can emit the inert block types listed as Track 0 in Unverified output. Those blocks always render inside an unverified output container. Command structure is reserved for sealed shell integration.

BlockPurpose and rules
paragraphFlowing proportional text runs.
headingLevels 1 to 4, shown in the outline. Outline entries from unverified output carry the unverified label.
tableReal-layout table with column sizing and alignment, subject to the table limits.
imagePNG, JPEG or WebP by id, with alt text and an intrinsic size. Ids are scoped per producer. Images are never referenced from grids. The declared size is only a hint and never drives allocation or layout before a bounded decode. See Images.
linkInline or block. See Links.
sectionCollapsible container with a summary line. Collapsed children are excluded from copy and search until they are expanded. The summary shows a count of hidden content.
codeMonospace text with an optional language tag. Mixed-script tokens (for example Latin mixed with Cyrillic or Greek, per UTS 39) are flagged, and an ASCII-only copy is offered. Code blocks and copy-code buttons get the same confusable check and badge.
commandPrompt, input and output children, plus exit status. Created only from sealed shell-integration frames. Input tokens with mixed scripts or confusables are flagged before they run and on copy, and an ASCII-only copy is offered.
gridLegacy VT surface with its own cols × rows on a PTY. See Grid blocks. An OSC title never names the producer in chrome.
progress / statusLive-updating, patchable widgets. Content only: they MUST NOT render permission prompts or trust badges, and the chrome shows their producer.