PR #3540 was originally labeled `no-changelog` on the premise that it
was a pure internal-module refactor. On second look, two surfaces are
actually user-facing and warrant a changelog entry:
1. New `gsd-tools migrate-config` CLI subcommand — explicit, opt-in
on-disk migration of legacy-key shapes. Idempotent.
2. `mergeDefaults` semantic change — recursive deep-merge instead of
spread-per-section. Preserves sibling keys under partial overlays.
Strict improvement, but a behavior change.
Adds `.changeset/patient-lemurs-sing.md` (`type: Changed`). The
`no-changelog` label should be removed in tandem with this commit.