Creating new Halion instrument programatically?

Is it possible to create a Halion instrument (map samples, add filters, set envelopes, add effects, etc) programmatically?

For example, Kontakt has “Creator Tools”. It is very limited, but you can programmatically map samples with it (among other things) using LUA. You can also use KSP from inside Kontakt to add effects, envelopes, filters, and such.

You can create all program elements like layers, busses, zones, effects… You can modify parameter values, set envelopes.

Mapping samples could be difficult as the io library is not supported.