Flag expressions gate jumps, choice visibility, and command when. Evaluated with flag names as identifiers. Use &&, ||, ! — not and / or / not.
{ "type": "jump_if", "cases": [{ "expr": "score > 5", "to": "good" }], "else": "bad" }
[if helped -> thank_you]
> Secret. -> vault
(with item rules.show_if: "has_key")
| Surface | Shape |
| Choice visibility | rules.show_if / rules.disable_if |
| Branch | next_if[] or [if expr -> target] |
| Command skip | "when": "expr" on any command (JSON / Mode B) — Command flow |
| Flag math | "score": "= score + 1" in set / set_flag |
| Surface | Shape |
set / set_flag.values | Literal, or string "= score + 1" |
next_if[] | { "expr", "then" } — first truthy wins, else next |
jump_if.cases[] | { "expr", "to" } + optional else |
Choice rules.show_if / disable_if | expr string |
Command when | expr string; no script sugar |
Screen / block show_if | same grammar |
| Value | Result |
null | false |
| number | false only if 0 |
string "false" / "0" / "" | false |
string "true" / "1" / other non-empty | true |