GR-LANG
28 rules. Part I of the specification.
- LANG-1Extraction engines query the context; transformation engines bind it
- LANG-2A node's expression engine must be one the implementation provides
- LANG-3An empty expression is not an error
- LANG-4A context that is not a map reaches a transformation engine as
data - LANG-6Expression-language evaluation fails loudly
- LANG-7Twig yields an escaped string and treats a missing variable as empty
- LANG-8A property path that cannot be read yields null
- LANG-9A JSONPath query never raises; it falls back to the caller's default
- LANG-10Expression-language validation is a syntax check only
- LANG-11Property-path validation accepts everything evaluation can resolve
- LANG-12A path that does not begin with
$always passes JSONPath validation - LANG-13Twig validation is a compile check only
- LANG-14A leading
$decides JSONPath from property path - LANG-15A single JSONPath match is unwrapped unless the path selects many
- LANG-16A string context is parsed as JSON where it parses
- LANG-17Dot and bracket path segments are interchangeable everywhere
- LANG-18A trigger mapping value can be escaped as a literal
- LANG-19Extracting all matches for a property path always yields a list
- LANG-21A failed mapper expression fails the node and names the port
- LANG-22An extraction error fails the node and never takes the default
- LANG-23Only a
$-rooted JSONPath query unwraps a list to its first match - LANG-24A null extraction is a miss, not a failure
- LANG-25Shaper sentinels resolve before any engine is consulted
- LANG-26A prompt template that fails to render fails the node
- LANG-27A switch compares its value; it does not evaluate it
- LANG-28A condition node's operators are a closed set, and case folding spares the pattern
- LANG-29An expression error fails the node; an empty result does not
- LANG-20Testing whether a path exists