Skip to content

When a preset is wrong

The engine distinguishes mistakes that make a preset meaningless from mistakes that merely waste a line. Neither ever crashes a running visual (NFR 10).

Hard errors — the file is rejected, the last good set is kept:

  • Malformed TOML.
  • An unknown system name.
  • An expression that fails to compile — an unknown identifier, a bad number, a wrong argument count, an unbalanced parenthesis, a stray character.
  • An invalid structural table ([curve], [generator], [particles], [path], [spectrum], [palette], [smoothing], [latch]) - including a [path] d the parser refuses, which names the character offset it stopped at.

Warnings — the preset still loads and renders:

  • An unknown parameter name. A binding whose name no system or engine stage consumes is reported at load, naming the parameter and the system, and the rest of the preset applies normally:

    preset ...\my_first.toml: warning: unknown parameter 'wrap' for system 'fragment_field' (binding kept, but nothing reads it)

    This is why a typo no longer fails silently. It is a warning rather than a rejection on purpose: one mistyped character should not blank a scene mid-show, so the good bindings keep working while the mistake is surfaced. The standalone prints both errors and warnings to stderr on every load and hot-reload.


Built from a8ce055 at version 0.115.0. This site tracks main and is not versioned per release.