This feedback is really helpful.
- Title Handling
We agree that the current approach isn’t ideal, and relying on useAsTitle from the type definition adds extra complexity. The fact that the Migration API accepts an empty string but not null is an inconsistency we’ll bring up internally. Ideally, it should handle both or provide a clearer constraint. Your workaround: using an empty string as a fallback makes sense for now, but we’ll track this as an area for improvement.
- Image Field Discrepancy
The issue with how the Document API outputs empty image fields versus how the Migration API validates them is definitely frustrating. You’re right—it would be more intuitive if the Migration API accepted the same format the Document API provides, rather than rejecting it. Filtering out empty image structures on our end would make migrations smoother, and we’ve flagged this internally.
So far, you’ve encountered this in legacy slices (and I think it might be isolated to legacy data), but if you do run into it elsewhere and have time to share details, that would be helpful. In the meantime, a potential workaround would be to pre-process documents in your migration script and normalize any empty image fields before sending them to the API.
Let us know if you hit any other roadblocks—we appreciate the detailed feedback!