I think `writeSurface_()` and `writeCurve_()` can be combined into a single function, like the `writeMulti*` functions before.