Astra does that. I've fed it STLs, told it to inspect, make a model for it, derive 'conceptual' measurements (e.g. - there were USB type A sized slots in one design, it recognized those, and knew not to change that, but only let it be swapped out for type C slots), and make parameters for everything that is relevant (that's pretty much the level of detail I gave it). It distinguishes 'implementation detail' from 'conceptual measurement' and implements the model in terms of those 'conceptual measurements'. As always, with OpenSCAD (well CSG in general) the problem is bevels/chamfers/fillets, so it needed some instructions to look for those and not mistake geometry stemming from them for 'real' measurements. It does that too, now.
And yes, telling it 'add draft angles to make this castable' works.
And yes, telling it 'add draft angles to make this castable' works.