| Action | An executable unit (single-key JSON object) triggered by an event or chained from another action. The sole mechanism for side effects. Co-declared actions (multiple actions in the same event array) run in parallel; chained actions (output.success / output.failure) run sequentially. |
| BDUI / SDUI | Backend-Driven UI / Server-Driven UI. UI structure and logic delivered from a server rather than compiled into the app binary. |
| Component | A JSON object node in the render tree. Can be visual (text, button) or non-visual (module, conditional). |
| Context | A component-scoped property dictionary. Public keys (no _ prefix) are inherited by children; private keys are not. |
| Dependency | A reusable artifact (repository, component, action, or service) declared in a module’s dependency array and addressable by its id. |
| dp:// | Source string scheme used to reference a registered dependency by its id. |
| Event | A named trigger (e.g. onTap, onAppear) mapped to an array of actions. |
| Expression | A computed string value wrapped in {{ }}. Evaluated at runtime against current context and state. |
| file:// | Source string scheme for files bundled in the current StemJSON zip package. |
| l10n:// | Source string scheme for localization keys resolved from *.strings files. |
| Module | A non-visual root component that owns isolated state and a dependency registry for one screen or feature. |
| State observation | The runtime exposes module state to the host. The host may observe any declared state key and react to its value changes with any operation (e.g. dismissal, analytics, navigation). Key names are chosen freely by the author — there are no reserved state keys in StemJSON. |
| Repository | A typed dependency providing CRUD data access (local, secured, remote, or firebase). |
| sf:// | Source string scheme for system icon identifiers. Primary reference platforms are iOS and macOS (SF Symbols); other runtimes map the same name to an equivalent in their native icon set. |
| Source string | A scheme-prefixed locator string: dp://, sf://, asset://, file://, l10n://, or http(s)://. |
| State | Mutable data owned by a module. Changes trigger re-rendering of the module’s subtree. |
| Style | Visual and layout modifiers grouped into domains: layout, common, navigation, button, shape, animation, modal, text, textField, scroll, swipe, shadow, datePicker, section, map, picker, grid, video, pdf, splitView. |
| Template | A non-visual proxy component that renders a component pulled from the dependency registry. |