This MR has a dual goal:
args=[SimpleNamespace(...)]
params={...}
Builder.fill
Builder.substituted
For now we do not intend to use discretizer yet.