The 1.0 Beta core
Three components sharing the locked API — per-component validation on registered names.
Root
App
The single root component of a .lucu file. Locked properties include id, visible, disabled, and label.
Content
Text
Displays string content. Its text also feeds accessible-name inference when no explicit label is given.
Interaction
Button
Declares interaction through events: routing blocks. Dispatch validates the target and event, returning the handler name.
Validation rules
Locked checks shared by the core — every violation is a source-located Luca error.
| Rule | Behavior |
|---|---|
id on every component | Non-empty string, tree-unique; duplicates name the first use with its location. |
visible / disabled | Boolean only — enforced at parse for literals and at resolution for bindings. |
label | String only; explicit labels win for accessible names. |
| Duplicate properties | Rejected, naming the first declaration’s location. |
| Unknown properties on registered components | Luca errors listing the supported keys. |
| Unregistered component names | Only malformed properties and locked-rule violations are rejected — the vocabulary stays open. |
Beyond the core
Marked open — never silently decided.