Why proportional scaling is the wrong answer to a format change, and the split rule reflow.ts uses instead.
The old setFormat changed width/height and left every layer at its pixel position, so 4:5 → 9:16 stranded the content in the top two-thirds. Proportional scaling — Magic Resize’s approach — is the other wrong answer: it squashes type and turns circles into ovals.
min(sx, sy), which is what keeps circles circular.It re-lays the layers that are there rather than regenerating from source text. Regenerating is easier and silently deletes every hand-drawn shape, moved block and placed image.
verticalFill exists purely for the tests: "everything is inside the artboard" passes for the broken version too, because stranded content overflows nothing.