GTR010 — Upgrade24_1 — format/ftype normalization

Contract: behaviour-preserving (runtime no-op).

Claim

Lowercasing + comma-token-stripping format/ftype is a runtime no-op that restores 24.2 validity.

Proof — the codemod IS Galaxy’s own parse, applied statically

parse_extensions returns [extension.strip().lower() for extension in self.get("format", "data").split(",")] (tool_util/parser/xml.py:1453) — character-for-character this transform. The datatype registry lowercases extensions at load (datatypes/registry.py:1028-1042). A test ftype missing the registry never matched (repair class).

Scope boundary

A <data> comma-list, non-datatype junk, and macro-file values are left (codemod §14; the macro residual is the opt-in normalize-macros command’s job).