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.
| Code | Rejects |
|---|---|
ORB_T_DEAD_END_STATE / ORB_T_UNREACHABLE_STATE | A non-terminal state with no way out, or a state nothing reaches |
ORB_T_EXTERNAL_INPUT_NOT_RESTING | A declared external input the trait does not accept from its initial state |
ORB_X_CIRCULAR_DEPENDENCY | A loop of listens with no guard on any edge (no way to stop) |
| Code | Rejects |
|---|---|
ELOLO_BUTTON_TRANSITION_UNREACHABLE | A button whose event no state accepts |
ORB_X_UNUSED_EMISSION | An external event nobody listens to |
ELOLO_NAVIGATE_TARGET_UNREACHABLE | navigate to a path no page declares |
ORB_PAGE_UNREACHABLE | A page no link, menu or navigate leads to |
ORB_CROSS_ORBITAL_LISTEN_SOURCE_UNRESOLVED | A two-part Trait.EVENT naming a trait in another orbital |
| Code | Rejects |
|---|---|
ELOLO_SET_VALUE_TYPE_MISMATCH / ELOLO_ENUM_VALUE_NOT_MEMBER | A set of the wrong type, or a value outside a closed vocabulary |
ELOLO_EMIT_PAYLOAD_MISSING_REQUIRED / _EXTRA_FIELD | An 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_MISMATCH | A default or config value that does not match its type |
ORB_X_MIXED_RESIDENCE | One transition touching browser-stored and server data together |
| Code | Rejects |
|---|---|
ORB_P_UNKNOWN_PATTERN / ORB_RUI_INVALID_PROP | A type not in the pattern registry, or a prop it does not have |
ORB_A11Y_UNNAMED | A control with no accessible name |
ORB_PAGE_SECOND_CONTENT_BODY | Two traits rendering separate bodies into one page |
| Code | Rejects |
|---|---|
ELOLO_UNKNOWN_TRAIT_REF / ELOLO_UNKNOWN_CONFIG_KEY | A reference to a trait or knob the behavior does not declare |
ORB_O_CONFIG_UNKNOWN_KEY / ORB_O_CONFIG_DEAD_KNOB | An orbital-reference override of an undeclared knob, or a knob nothing forwards |
ORB_LAZY_EAGER_REF / ORB_LAZY_NO_PAGES | A lazy import used other than as a whole orbital, or one with no pages |
| Code | Rejects |
|---|---|
ORB_I18N_KEY_MISSING / _KEY_UNTRANSLATED / _KEY_UNUSED | A key missing from en or another locale, or a catalog key nothing uses |
ORB_I18N_PARAM_MISMATCH | Parameters that differ from the message's placeholders |
ORB_I18N_RENDER_ONLY | i18n/t or @locale outside render-ui |
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.
The language where the rule is the program.