This assumes that every relevant detail is speced out. In many projects you don't know exactly what something is going to look like at the end of the project, so over-spec'ing is just as much a problem.
On the types of projects I mentioned, and I assume to an even greater degree for spaceships, the details are in the spec, which is stamped by an engineer. If you're installing a curb, all of the dimensions are there, the finish on each side, how far below ground it goes, what type of gravel goes under it, the mortar you use to set it, and it will say what kind of granite is specified. If you want to change any of that, you need to get approval (and probably won't).
This isn't software where you have hand-wavy goals written by people with no training and can refactor when your tests fail :)
If the specification is that precice, the best fit is usually a fixed price contract.
Typically open-book contracts is to account for uncertainty / flexibility / changes without having to raise endless CRs/WOs. Those fixed price contracts can still have gainshare mechanisms to identify joint cost saving.