A final analysis…
…After three months of hard work, I think that it is time to bring this rambling post to an end. I do think that I have pushed my exploration of the Extension Builder as far as I possibly can; and in reality I have achieved much since I can now make and publish block extensions of my own.
What I have found (and I have carefully studied all of the Extension Builder help files and programming examples) is that I didn’t gain a great deal from any of them. I also trawled my way through every post on this Forum referring to Extensions and whist they were not always clear, I gained the odd bit of guidance from some of them.
Sadly, whilst some Forum members ‘liked’ what I was attempting, no one actually contributed any insights into their own attempts at extension creation. In reality, I gained the most from just experimenting over-and-over-and-over again with the software until things began to work. My usual method (as documented earlier in this post) was to create a sequence of coding blocks to do something that I wanted to happen in mBlock 5 (in Upload mode) and then take the resultant Arduino C sequence transcoded from those blocks and paste it into mBlock’s Arduino Editor. Here (as I had done when teaching myself the rudiments of Arduino C) I could edit and play with the code and then upload it into whichever robotic mainboard I was using to test if the sequence ran OK.
From then onwards, I could then take that code and paste it into the Extension Builder to try to encapsulate that code into a single block. Simple, but not without not knowing which of the transcoding editor windows (include, lib, declare, setup, code or _loop) should be used for which bit of code - and more importantly, why! There was much trial-and-error testing here. Since I couldn’t find any real guidance anywhere, I still know nothing about the many other programming options available in the Extension Builder software: uploading middleware, extension event handlers, widgets, snippets etc. etc. I know nothing either about adding API commands and it is now clear to me that Extensions can only be written for use in Upload mode and not in Live mode and sadly not at all for manipulating Sprite graphics - if only that were possible!
There seems, rather encouragingly, to have been many readers of this post so I do hope that my recorded journey into the land of Mext has been of value to others.