Rune Host Implementation Guide
A Rune host is any format or runtime that embeds the Rune binding protocol. This guide covers what a host must implement, what it may extend, and how to declare Rune compliance.
Minimum Viable Host
A host at Level 0 (intent-only) must:
- Recognise
?as a valid prefix on element attributes - Parse the annotation as a string literal
- Store it alongside the element (do not discard)
- Never execute it at runtime
That is the complete requirement for Level 0. A YAML parser that preserves ?"..." comments as structured metadata is a valid Level 0 Rune host.
Full Compliance Checklist
Parser
- [ ] Recognises
@identifierand@identifier.fieldas read bindings - [ ] Recognises
~identifieras sync bindings - [ ] Recognises
!action-nameand!action-name with argsas act bindings - [ ] Recognises
?"..."and?identifieras intent annotations - [ ] Reports
RNE-001for unrecognised sigil characters - [ ] Reports
RNE-004for conflicting runes on the same element (@ + ~)
State Resolution
- [ ] Maintains a named state store (mutable values)
- [ ] Maintains a named computed store (derived, read-only values)
- [ ] Resolves
@identifieragainst computed store, then state store - [ ] Resolves
~identifieragainst state store only - [ ] Reports
RNE-002for unresolved identifiers - [ ] Reports
RNE-003for~binding to a computed value
Iteration
- [ ] When
@identifierreferences a list on a collection element, iterates the list - [ ] Within iteration scope, resolves
@item.fieldto current item fields - [ ] Out-of-bounds field access returns empty string (no error)
Action Dispatch
- [ ] Maintains a named action registry
- [ ] Dispatches
!action-nameon primary element interaction - [ ] Passes positional arguments to action handlers
- [ ] Reports
RNE-005for wrong argument count - [ ] Reports
RNE-002for unregistered action names
Intent Preservation
- [ ] Stores all
?annotations in an addressable intent store - [ ] Associates each annotation with its element identifier
- [ ] Exposes intent store to tooling (query interface)
- [ ] Never strips
?annotations during build, compilation, or minification
Error Reporting
- [ ] Reports all
RNE-*error codes with line/position information - [ ] Does not silently swallow binding errors
Declaring Host Compliance
A Rune host declares its compliance level in its own documentation:
Rune compliance: Level 3 (full)
Rune compliance: Level 0 (intent-only)
Rune compliance: Level 1 (read bindings)Hosts that extend Rune with additional sigils or operations must declare this explicitly and ensure extensions do not conflict with @ ~ ! ?.
Known Hosts
| Host | Format | Level | Notes |
|---|---|---|---|
| Mere | .mp.html workbooks | Level 3 | Origin host — reference implementation |
| Recall | .rc publishing documents | Planned | Level 0 → Level 3 roadmap |
To register your host, open a PR adding a row to this table.