The only thing that really sticks out in my mind as high pri for v1 here is escaping, because it permanently prevents some input. IMO we should do something like escape characters (\.) to ensure it's possible to:
Create { in string values that could also contain references, e.g. { $type: "fontFamily", "$value": "Font name with \\{ and \\} in it" }
Use . and } in variable names without breaking , e.g. "Wide Box Width 2\\.0"
Everything else I've thought of so far, to my mind, can be (somewhat) cleanly added or changed in future versions without invalidating old files. (If we ever did expression support, that might get harder.
Escaping is going to be importantly largely because people will autogenerate these files based on names they have specified elsewhere, in languages or formats that do support dots. I've had a lot of times where I want to keep values in sync across several languages and I'm always sad at the amount of destructive name transformations I have to do (which often ends up with invalid characters replaced with _, making them potentially non-unique).
The only thing that really sticks out in my mind as high pri for v1 here is escaping, because it permanently prevents some input. IMO we should do something like escape characters (
\.
) to ensure it's possible to:{
in string values that could also contain references, e.g.{ $type: "fontFamily", "$value": "Font name with \\{ and \\} in it" }
"Wide Box Width 2\\.0"
Everything else I've thought of so far, to my mind, can be (somewhat) cleanly added or changed in future versions without invalidating old files. (If we ever did expression support, that might get harder.
Escaping is going to be importantly largely because people will autogenerate these files based on names they have specified elsewhere, in languages or formats that do support dots. I've had a lot of times where I want to keep values in sync across several languages and I'm always sad at the amount of destructive name transformations I have to do (which often ends up with invalid characters replaced with
_
, making them potentially non-unique).