Emitter 2d: the opaque carry in both positions and the reserved info string #15
Reference in New Issue
Block a user
Delete Branch "opaque-carry"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
todo.md 2d. A node type no section spells rides a fenced code block with info string
adfin block position and:adf{json="…"}inline, and acodeBlockwhose language isadfrides the block form whole — the reservation that keeps the carry lossless.corpus/round-trip/opaque-carry/holds the three fixture pairs.An inline run breaks at every carried node, so no emitted carry sits inside a mark spelling; the marks ride the carried JSON instead.
unsupported-node-typeandreserved-adf-languageare gone — the carry replaces both, and nothing else reaches them.A known node standing where a block belongs (
hardBreak,listItem,text) stays a shape refusal rather than a carry: §3 carries node types the library does not know, not valid nodes in impossible positions.The section-cannot-spell fallback — an attrs key no section lists, a value that is not the section's type, an arg slot holding no bare token — still refuses; todo.md binds it to 2e with the
|rule the carry'sjsonvalue needs.