It's the latter. The JSON encoding example is actually a really bad example for this language because there is a huge class of JSON which it cannot easily be seen to encode, though you can probably make some exceptions. An example of the many undefined things would be:
{"abc def": ["123 456", 789, 101112, null, false]}
A better DSL for JSON would have to include actual data types or so, obj
abc def
arr
str 123 456
num 789
num 101112
null
bool f
...or so.