> -- Perhaps this input can be used for the template discussion:
 > One idea that comes to my mind in connection with the "environments with
 > hooks" is to build up two layers, one which takes care of the semantics,
 > and one which takes of the syntax by which the environments are called.

not really since I was talking only about the semantic layer; what you propose
is (under a different label) the separation as it is provided by the interface
of xparse on one hand (syntax side) and the template on the other hand

but what i was getting at is that the semantics layer need further
clarification (and they would in your code as well the question isn't
different there)

 > Here, some arguments should (when required by the environment definition)
 > be passed to the commands \<name>/before, \<name>/begin, \<name>/end,

i was trying to pin down the nature of those "some arguments" this was the
question posed in the thread not whether or not separation of syntax and
semantics is helpful/sensible.