Well well, interesting discussion, and I was not in the position to join it easily...
In my experience, you do need documentation - you need to know what calls are available, what the parameters are, and what they do.
But to achieve anything interesting, you need to know a whole lot more than just the available calls - like MaikG said, you will add your own functions, and use mostly those, and as your program grows you will probably develop your own set of higher level functions that wrap the native API calls in various ways to achieve something which you want to do.
The difference between "scripting" and "programming" is, to me, somewhat blurry and vague.
If you add a few lines here and there of script to achieve some effects, yeah, it's scripting.
But as your scripts grow and you start adding your own functions, it becomes more and more like "proper software development", even though you use the very same language for the coding, and that's kind of a sliding scale.
Now I believe that MaikG has done a lot of coding, on TS and on other environments, so he knows what he's talking about.
And from the conversation so far I gather that most of the function calls that are of interest to him are already long published, and so well known to him, that for purposes of loco development he doesn't care much about "more documentation" -- it's all in his head already

and mostly a couple of "gets" and "sets" on some variables to him already well-known, or added by himself for his loco.
But for scripting scenarios there might be a lot more functions to call, or objects to interact with - I don't know and until that documentation is published, neither will most of us.
And even if it's mostly the same functions, there's the question still of what variables are available, and how do you go about achieving something interesting with it? Some examples would be nice!
Cheers,
--Tim