Board IR 0.2 is intentionally not auto-migrated from serialized 0.1 JSON. Version 0.1 flattened pads into board space and did not retain footprint identity, origin, side, lock state, ownership, or courtyard geometry. Inventing any of those fields would create a digest-valid snapshot that was not actually observed from the source board.
To migrate:
- Recover the exact original
.kicad_pcbbytes named bycontent.source.revisionand the same typed constraint profile used for the old snapshot. - Re-run the current
parse_kicad_bytesconverter or theinspect_board_irservice. - Resolve every conversion diagnostic. Unsupported courtyard primitives, back-side footprints, and non-orthogonal footprint transforms must be changed at the source or left on a compatible older consumer; they are never omitted automatically.
- Store the newly encoded 0.2 snapshot and invalidate every candidate or cached scene bound to the old snapshot digest.
Expected compatibility behavior:
schemas/board-ir/0.1.0.schema.jsoncontinues to validate historical 0.1 documents.- The active runtime decoder rejects 0.1 and unknown versions.
schemas/board-ir/0.2.0.schema.jsonrequires a totalitems.footprintscollection and exact pad ownership.- A successful reconversion changes
snapshot_digest;constraint_digestremains stable when the constraint profile and net set are unchanged.
No source board is mutated by migration.