- serializeProject / parseProject for the .pzr.json format (spec §8,
schemaVersion 1). Parsing refuses other versions and damaged piers, and
names the first broken pier.
- The 3D model is not stored; it is regenerated on open.
- Tests: save → open equality without the source workbook; regenerated
models equal for 20 piers; version and damage refusals.
Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>