pub(crate) fn optimized_wire_version(has_rotation: bool) -> u8Expand description
The optimized format’s wire version, chosen by what the payload CONTAINS.
v2 is the pre-#3575 shape: an instance table without rot0..rot8, placed
as world = origin + template_position. v3 adds the nine rotation columns
and the placement becomes world = origin + R * template_position.
A response in which every instance came out identity IS a v2 payload in
every observable respect, so it ships as one and an unchanged client keeps
decoding every model it decoded before #3575. Only a payload that
genuinely carries rotation declares 3, where a v2-only decoder fails loud
on its version check (Unsupported optimized Parquet version: 3) instead
of silently dropping the rotations and misplacing the geometry.
The argument is the rotation data actually emitted, NOT “the model has instance metadata” or “the feature is on”: translation-only reuse runs the whole rotation-aware dedup and still produces identity everywhere.