Comment by fsloth
Sorry for the flood below. It's relevant but not very compact.
The compact answer is software complexity, intrinsically complex algorithms and geometric robustness. Data model may be difficult depending what you want to do. Robust import. Robust export domain to domain.
The last two are especially nasty if you are solo since there are no good specs here. There are _specs_ but what happens in practice is that each party has their own implementation that almost works, except in n. corner cases. Then you need to figure out is your software wrong, or is the input data wrong, and not rush to hasty conclusions. This will be time consuming.