positional_not_allowed
Form’s :positional declaration is none but a positional child was provided.
A form declares what may sit between its parentheses. With no
:positional declaration the answer is “keyword pairs only”, and
anything else in there fires this.
(circle 42) is the plain shape: 42 sits under no key. Wrap it
in the key it belongs to, (circle :radius 42), or move it under
a parent that does take children.
The other shape looks like a keyword. (lane :name) fires
this too, on :name, which reads as a key and not as a
positional at all. The parser pairs :key value greedily, so a
keyword with nothing left to pair (the end of the form, or
another keyword straight after it) becomes a bare keyword
value instead. That is the rule behind
(camera :ortho :zoom 2), where :ortho is a flag; it is also
what a missing value turns into. The message names the keyword
when this is the shape you hit.
So (lane :name) is almost always a half-written
(lane :name "left"). If you did mean the flag, the form has to
declare one: :positional (flag-set (flag :name ortho)).
Run sjon explain positional_not_allowed to read this at a terminal, browse every code, or work through diagnostics-driven repair if you want the habit rather than the answer.