Another way to put it: design is the outcome of an optimization against a given set of objectives and constraints. This would also help to keep track of the reasoning underlying changes in the design to provide an audit trail.
This may be useful for small demos. For large scale MIP with millions of variables, one needs to have the solver at hand to support custom algos with techniques such as column generation, etc. to achieve time to solution and economics of compute resources. A remote API will not fit.