Thanks very much for the feedback. Keys and values are separated by equals. Pairs and array items are separated by a semi-colon. I wasn't totally clear whether your examples were pairs or array contents sorry, but I've assumed they were pairs.
Hexadecimals work like JSON (4 digits)
key=\uXXXX
Semi colons are used for structure so need to be escaped or quoted:
## quoted example
a=";"
## escaped value
a=\;
## escaped value using escape tilde (better in DNS)
a=~;
The interpreter uses type inference, so this example will always be a number:
a=1
To force it as a string, you can quote it:
a="1"
I wasn't clear on your final question but unquoted 000 always represents null. So:
## this is null
x=000
## this is string 000
x="000"
Hope that answers the questions and thanks again for the feedback. If I've misunderstood or you’re not clear on anything let me know.
(edited to fix line spacing)