Lane: reflection/parse (sweep 2, finding 9)
Field.toJSON/fromJSON round-trip edition (src/field.js:45-57, 321-334) but MapField.toJSON (src/mapfield.js:91-103) omits it and MapField.fromJSON (src/mapfield.js:75-84) doesn't restore it — an extension map field that is a direct child of a Root/package loses its pinned edition across a JSON round-trip.
Repro (executed): MapField.toJSON has no edition key; fromJSON()._edition → null.
Verdicts: both Confirm, Speculative (parent edition usually wins; tree shape is rare).
Upstream: none found.
Decision question: Adopt (align MapField with Field) or Reject as unreachable in real descriptor trees?
Lane: reflection/parse (sweep 2, finding 9)
Field.toJSON/fromJSONround-tripedition(src/field.js:45-57, 321-334) butMapField.toJSON(src/mapfield.js:91-103) omits it andMapField.fromJSON(src/mapfield.js:75-84) doesn't restore it — an extension map field that is a direct child of a Root/package loses its pinned edition across a JSON round-trip.Repro (executed):
MapField.toJSONhas noeditionkey;fromJSON()._edition→ null.Verdicts: both Confirm, Speculative (parent edition usually wins; tree shape is rare).
Upstream: none found.
Decision question: Adopt (align MapField with Field) or Reject as unreachable in real descriptor trees?