The master-file geometry is written from the StartMessage at file open, before
indexing/refinement - the file is streamed per image, so it cannot wait for the
refined values. rugnux therefore stored the nominal beam centre / detector tilt /
rotation axis, not the geometry its own refinement found (jfjoch_broker, by
contrast, deliberately keeps the user-provided values).
Add optional refined geometry to EndMessage; at finalization the writer overwrites
the beam_center_x/y, PONI rot1/2/3 and rotation-axis datasets in place with these.
The broker leaves them empty, so its output is unchanged.
For EcwtCQ244-E3 the _process.h5 now reports the refined beam 761.6/847.7 (nominal
764/850, matching XDS's 760.2) plus the refined tilt and rotation axis.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>