Documentation

Validation

What orb validate rejects, by family, and why each check exists.

orb validate app.lolo lowers the program and runs the full semantic validator. The bar is 0 errors and 0 warnings; --deny-warnings makes a warning fail the run, and --json reports every finding with a code, a path and a source position.

State machines

CodeRejects
ORB_T_DEAD_END_STATE / ORB_T_UNREACHABLE_STATEA non-terminal state with no way out, or a state nothing reaches
ORB_T_EXTERNAL_INPUT_NOT_RESTINGA declared external input the trait does not accept from its initial state
ORB_X_CIRCULAR_DEPENDENCYA loop of listens with no guard on any edge (no way to stop)

The circuit

CodeRejects
ELOLO_BUTTON_TRANSITION_UNREACHABLEA button whose event no state accepts
ORB_X_UNUSED_EMISSIONAn external event nobody listens to
ELOLO_NAVIGATE_TARGET_UNREACHABLEnavigate to a path no page declares
ORB_PAGE_UNREACHABLEA page no link, menu or navigate leads to
ORB_CROSS_ORBITAL_LISTEN_SOURCE_UNRESOLVEDA two-part Trait.EVENT naming a trait in another orbital

Data and types

CodeRejects
ELOLO_SET_VALUE_TYPE_MISMATCH / ELOLO_ENUM_VALUE_NOT_MEMBERA set of the wrong type, or a value outside a closed vocabulary
ELOLO_EMIT_PAYLOAD_MISSING_REQUIRED / _EXTRA_FIELDAn emit whose payload does not match its declaration
ORB_BINDING_PAYLOAD_FIELD_UNDECLARED?field read from an event that declares no such field
ORB_E_DEFAULT_TYPE_MISMATCH / ORB_T_CONFIG_SHAPE_MISMATCHA default or config value that does not match its type
ORB_X_MIXED_RESIDENCEOne transition touching browser-stored and server data together

Screens

CodeRejects
ORB_P_UNKNOWN_PATTERN / ORB_RUI_INVALID_PROPA type not in the pattern registry, or a prop it does not have
ORB_A11Y_UNNAMEDA control with no accessible name
ORB_PAGE_SECOND_CONTENT_BODYTwo traits rendering separate bodies into one page

Composition

CodeRejects
ELOLO_UNKNOWN_TRAIT_REF / ELOLO_UNKNOWN_CONFIG_KEYA reference to a trait or knob the behavior does not declare
ORB_O_CONFIG_UNKNOWN_KEY / ORB_O_CONFIG_DEAD_KNOBAn orbital-reference override of an undeclared knob, or a knob nothing forwards
ORB_LAZY_EAGER_REF / ORB_LAZY_NO_PAGESA lazy import used other than as a whole orbital, or one with no pages

Localization

CodeRejects
ORB_I18N_KEY_MISSING / _KEY_UNTRANSLATED / _KEY_UNUSEDA key missing from en or another locale, or a catalog key nothing uses
ORB_I18N_PARAM_MISMATCHParameters that differ from the message's placeholders
ORB_I18N_RENDER_ONLYi18n/t or @locale outside render-ui

After validation

orb verify goes further: it plays every transition and fails on effects that change nothing a user can see or a store can keep. See the closed circuit.

Orb

The language where the rule is the program.

© 2026 Almadar. Ljubljana, Slovenia.