In case it helps anyone else, I finally figured out how to seed URL relationships for standalone recordings!
The relevant GET query parameters are e.g. edit-recording.url.0.text and edit-recording.url.0.link_type_id.
I found the names in a regular expression in root/static/scripts/edit/externalLinks.js:
// Terribly get seeded URLs
if (MB.formWasPosted) {
// [omitted]
} else {
const seededLinkRegex = new RegExp(
'(?:\\?|&)edit-' + sourceType +
'\\.url\\.([0-9]+)\\.(text|link_type_id)=([^&]+)',
'g',
);