Instead of providing a mechanims to encapsulate per-row serializable objects unroll the WCS and BBOX into columns.
I'm not sure WCS can be serialized into columns, since all the keys can not be known in-advance, but certainly BBOX could.
For WCS also calculate on-sky coordinates of all 4 corners of the detector and the central pixel value.
The current mechanism can be changed from what it is to lazy loading of columns for BBOX and WCS (which can be left in a column as a json header string to be loaded at request time instead of in the read).
Instead of providing a mechanims to encapsulate per-row serializable objects unroll the WCS and BBOX into columns. I'm not sure WCS can be serialized into columns, since all the keys can not be known in-advance, but certainly BBOX could.
For WCS also calculate on-sky coordinates of all 4 corners of the detector and the central pixel value. The current mechanism can be changed from what it is to lazy loading of columns for BBOX and WCS (which can be left in a column as a json header string to be loaded at request time instead of in the
read
).