We've used custom models to build DCM simulators. We built a model to return individual level probabilities. The model took a couple of input parameters to determine whether an 'other/none' option exists, which algorithm to use (share of preference, first choice, nested logit), and a few other parameters. Once the individual level probabilities are calculated, a basic pipeline can aggregate those probabilities in total or by subgroup.
Just paste the freaking syntax here for the custom iProb model and explain it