Thanks for the questions, good things to bring up.
On switches:
You can’t do that with switches in C++. C++ has very limited switch capability, and can’t be used on strings. It only supports primitive, single element data types (even string literals are multi-element, meaning no support).
On other stuff:
Yes, all TAG elements should be in caps. TAG elements are anything that identifies something in-game in a unique way. A name is not a tag, but an ID is. A tooltype would also be a tag. Anything that will get replaced, in code, with a reference or access method as a way to point to an element, will be in caps. Pieces of information that stay as text will be cased normally. This will help avoid collisions with a gradual changeover, since none of the current element ids use caps.
Technically, the color should probably be a tag too except I really, really don’t want it to be, and need to figure out proper hex code color support methods. Thanks for the reminder, btw, I’m gonna add that to the first post. I don’t actually know for sure what to do here yet, though. For now, simply treat it as another tag - feel free to change it to LTGRAY or whatever you need to.
Newlines in descriptions were obseleted a while ago, and are stripped. Many descriptions are old, and will still have them, but they serve no purpose and have no meaning.
Also, yeah, Techs… I honestly don’t know what to do with those at the moment, hence the line in the first post that says “Get technique flags working for items with techniques.” >_< For now, I would just stick them in with a line:
“technique”: “TEC_GRAB"
or, if they have more than one
"technique”: [“TEC_GRAB”, “TEC_WHATEVER”]
Final note: For things that have only one material, you can simply write
"material": "WOOD"
without an array. And if they have no materials, you can just not add the property in.