Configurator
Turn a part into this part — and know it can be built.
Rules here are declarative, not code: when one answer has a value, another must — or must not — be one of a set. Epicor compiles C# for this; a rule you can read is a rule you can explain to the customer whose configuration was just refused.
No configurators yet. A part with one becomes configure-to-order: the quote carries the answers, and the job is built from them.