A collection of topics I've come across which is not covered in the Nasal documentation I know of (Wiki and links given there) and which I had to work out by trial and error (which doesn't make me the ideal person to write any documentation, because I don't really understand why something works and something else not):
* generation and use multiple-indexed arrays
* the usage of props.nas: Basically, many function like *.getNode("node", arg) can be called with an option arg, but it's somewhat unclear what the option does or what it can be. Sometimes it's a flag to treat non-existing nodes, for *.getChild it is the index of the required child. I don't think I have ever seen what *.clearValue actually does.
* the handling of sparse arrays in the property tree from Nasal: If I have an array x[0], x[4], x[6] in the tree, a *.getChildren call will give me a Nasal array n[0],n[1],n[2], i.e. the indexing is changed if it was sparse before - that's actually useful to know...
* a general guide what works fast and what works slow - it took me a while to figure out that *.getChildren() is very slow for large vectors for example. Hooray keeps reminding me that *.getNode("node).getValue() is faster than getprop() - I wonder how many other things like this I simply do not know
* spawning models in Nasal by either geo.put_model(), writing into /models/ in the tree or other(?) methods