I was wondering what are your thoughts on doing things like this and should I instead focus on making this more readable to a decently learned audience?
Are you talking about the use of abstract data types such as "workspace" or "option list"? I'm all for that. To make it readable, attach a comment to the block that constructs one of those explaining what the fields mean. Or maybe just put them all in the project's notes.
By the way, in dealing with a long list of options, instead of making the user provide all or nothing, I like to define an option list to look like {"draw distance", 2000, "max steps", 800 ...} Then the user can provide an OPTIONS input of {"max steps", 200} and you change that one and keep the defaults for the others: https://people.eecs.berkeley.edu/~bh/v2ch13/fourie.html.
Oh, yes, that's very nice. If it were me, I'd call the block "raycast options" so as to leave open the possibility of using the same trick elsewhere in the project.
Oh! and I just figured out what those "$-" entries in the title text are for! Brilliant.
Yea, it's sort of a trick using the text formatting stuff that allows me to put in a space even though it is not designed for that. It can also be used to make lines of text taller than normal by putting in a number after it