TL;DR for the skimmers:

Design the Payload schema before writing any migration code

Use a wpId field on every collection for idempotent upserts

Expect multiple media migration passes : the XML export won't contain everything

The HTML-to-Lexical parser will dominate the timeline, budget accordingly