Honestly openSCAD is pretty cool but you quickly run into limitations because of it's DSL. One major reason I don't like it is that it uses mesh-based modeling and not boundary representation. With the former you can never get a "perfectly" smooth sphere for example. Most CNC shops require the latter. So a few years back I moved to CadQuery[1]. CadQuery uses boundary representation and uses Python as it's host langua…
Wikipedia has a page on it [1], but quickly skims over some techniques without much details.
[1] https://en.wikipedia.org/wiki/Robust_geometric_computation