The right way to do it is to use the existing API by exposing the
inverter (there are existing examples in the tree, using the
hierarchical model)...
A much simpler version can be written in a few minutes, see below...
Can something like that be used if the parent domain is not
hierarchical (i.e. does not provide alloc(), but provides map()
instead)?
No. This definitely relies on the parent being hierarchical, as that's
exactly what it was designed for the first place.