Compatibility and Ignored Input
The parser is deliberately permissive so older files and forward-looking source load without failing. This page records what's accepted but not doing anything yet; read it before assuming that parsing a line means it renders.
| Input | Parser behavior | Scene/runtime behavior |
|---|---|---|
| Unknown statement line | Skipped. | No effect. |
Unknown leading @directive |
Skipped. | No effect. |
Unknown property: value |
Retained as a generic property. | No guaranteed consumer. |
for block |
Recognized AST node. | Not compiled into Scene. |
when block |
Recognized AST node. | Not compiled into Scene. |
maskMode, maskInvert, blendMode |
Retained generic properties. | No object masking/blending implementation. |
shadow, outline, displacement, custom effect |
Parsed effect node. | No registered effect renderer. |
Animation selector, stagger |
Parsed as generic block properties. | Dropped from LumiDSL animation data. |
Text stroke, strokeWidth |
Retained properties. | Text renderer ignores them. |
| Image fill on text | Retained as the fill property. |
Text renderer ignores it; use a color fill. |
| Arrays | Parsed and retained. | Compiler does not preserve square-array syntax. |
N% percent literals |
Parsed as a percent value. | Previously parsed as a broken modulo expression and resolved to nothing. It now resolves against the parent on position, size, width, and height, or as a fraction of 1 on opacity. |
Compatibility behavior is useful when inspecting imported files. New scenes should prefer the renderer-backed properties and effects in the generated references.
imagine card
shape: rectangle
maskMode: alpha
blendMode: screen
create card