The problem
PR #106 restored the PROJ implementation and made it selectable at build time. The first complete-looking version passed ordinary coordinate conversions, but it treated owned PROJ handles like ordinary copyable fields and returned projected values without updating MOOSGeodesy's stored state.
The incomplete solution
The implementation owned raw PROJ handles, freed them in the destructor, and relied on compiler-generated copy operations. A copy therefore shared the same handles, while repeated conversions returned good output arguments but left the object's getters stale.