If you want to have a real dialogue about it, unpack this and cite specifically what isn’t making sense to you in what I took the time to write above.
Correct.
I am sure this is the case, as I am building tools which don’t require a GUI, so the extent to which the API is welded to the GUI is nearly entirely in my way. However, this discussion isn’t about the generalised problems I am running into: it’s about one specific functionality.
It’s grounded in the 35-ish year body of knowledge surrounding what’s useful in 3D applications and their programming interfaces. If Blender didn’t have a marquee select, would you ask me to build one using the API so you could “see the purpose”? No, I’d point you to every single other application, which has a marquee select. This is exactly the same situation. If the application were somehow impervious to the construction of a marquee select, I’d conclude it was broken in this regard.
No offense, but if you can’t immediately see the utility and purpose of a concise and universal selection reporting command, then you’re probably not the one to be implementing it. This would apply to the marquee selection hypothetical above, as well. Similarly, when clients come to me with problems that I don’t understand, I don’t ask them to build the thing they want so that maybe I can understand it better. I tell them I don’t understand it, and we talk through it. If I still can’t understand it after a few attempts at talking through it, I still wouldn’t ask them to build it, nor would I attempt to do so myself.
If you are interested in this topic, I’d recommend familiarising yourself with how selection works in other popular package APIs. It’s not complex. I think this might revealing for you. I’d go into more detail here, but for one, I think it’s frowned upon to get into the details of how other programs work in this forum, and for two, it’s literally six characters that return an array, no matter the state of the GUI (with some edge case exceptions).
As I said above, I am poking away at a generalised selection object, in between the work I need to get done. I expect it to be broken by releases, in which case I’ll likely abandon it, as the other developer in this thread did. Again, for the reasons described above, an add-on written with the python API is a completly inappropriate medium for this functionality.