Why does CAM message provide only GPSAlt?

I want to tag camera images with lat/lon, altitude and attitude based on the CAM trigger message. CAM message documentation specifies GpsAlt - altitude provided by GPS - but that altitude can be in error by 10s of meters, right? Our application requires that we know the image altitude with 5 meter accuracy. I think that using “canonical” altitude (combo of GPS, barometer, IMU) from the POS message would be more accurate in most cases. Does anyone know why CAM provides just GPSAlt, and what do people typically do to address this issue? Is there a way to inject canonical altitude into the CAM message? Or must people write custom software to get canonical altitude at trigger time?
Thanks!