Hi Derek!
A couple of thoughts, though not necessarily authoritative...
1. Ownership of 'sub-things': From my own reading (mostly, Jochen's documentation), the concept of ownership of Things expands upon QDOS's usual sense of a Job owning a resource (or other Job), in that, if managed correctly, Things
also maintain their own 'Usage' list of the Jobs currently USEing them, in addition to the ownership of the Thing itself (which is really just a memory allocation). There doesn't appear to be any 'ownership hierarchy' maintained beyond the usual QDOS Job tree.
Like any QDOS memory allocation, you can explicitly specify the (Job) owner of the Thing at creation time and thus, if a code-type Thing goes and creates a new Thing, the same ability to explicitly specify the new Thing's owner is available. If specified as '-1', then the (Job) owner of the original Thing will be applied to the new memory allocation/Thing, like any other resource.
The subtlety comes-in when a Thing itself is (force) removed - it will trigger the currently owning Job to also get killed (because the Job IDs are recorded in the Thing's Usage list) - along with any child Jobs in the usual QDOS way. If one of those Jobs happens to own the new Thing, then that too will get removed, and so on. Setting the Thing owner to '0' at creation time will, as with other resources, protect it from getting removed except from an explicit (force) Remove call.
[EDIT] Reading that back to myself, I see it could be more concisely stated as "Things have no ownership hierarchy of their own, but simply inherit the ownership of the Job that created them, or else was specified at creation time. In this regard they are no different from any other resource owed by a Job, e.g. a file, and, like a file, don't 'own' anything for themselves."
Not sure if that helps at all???
2. Creating a Thing: depending how you do it, its actually pretty straightforward and can be easily coded even without the help of HotKey System2 or SMSQe. A good example of creating (and later finding) a Thing can be found in SimonNG's DIYToolkit 'FlexiNet' (Vol. Y) - and with a bit of adaptation, I was able to use his approach successfully in the ND-MQ Net driver (for the QLUB.) The adaptation was to make it interact nicely with SMSQe, which, as a more recent extension, also adds (and expects) a simple byte-hash of the Thing name to be recorded in its linkage block. The ND-MQ Thing is a simple sort of creature, rather than a code-type thing, but creating them 'by hand' shouldn't be any different, or difficult. I used SnG's code as a base as I wanted the ND-MQ driver to run in both SMSQe as well as legacy QDOS without relying on the presence of HK System2.
Good luck
