Well, Apple doesn’t give much info about its aliases or symlinks.
if the ID part of the link differs
differs from what?
But what if I do something that also breaks the ID part of my links?…
what do you mean breaking the ID?
Will my migration preserve their ID, or not
that is an implementation detail. What that means is that it is not part of the functional spec that we publish. Implementation may change from time to time. So we speak abstractly. Hookmark has the permission to use all kinds of heuristics apart from the ID to map links to files.
If you go to a new Mac without using a clone (e.g., with Migration Assistant or Carbon Copy Cloner), then whenever Hookmark encounters a hook://file URL, it will need to use the path information to map the link to a particular file. It will try its best to do this based on the path and name of the file as encoded in the hook://file/ URL.
We have stated a few relevant facts in Hookmark’s documentation regarding Hookmark’s process for resolving hook://file/ URLs.
there is: in Advanced Preferences – Hookmark a section named “Prevent Hookmark from searching specified locations”. that is relevant to your question.
We also state that for the resolution to work for a given hook://file/ URL in the case of migration or when one person sends a hook://file/ link to another, spotlight must index the folder in which the target file resides.
We have also always stated in the forum and the documentation that this is a heuristic process. You can search for “heuristic” and “file” on https://hookproductivity.com to see our claims re this. That is because what the user in his head considers to be the file that this hook://file/ links points to is a virtual concept that is open to interpretation. What same means is up to the software to determine based on what we have published. However, if there are two files with nearly identical names and path in reach and Hookmark can’t decide which the URL should refer to it, under some conditions Hookmark will ask the user to resolve the file for it. That works for hook://file/ URLs that are encountered one off. If Hookmark is processing thousands of files, it is not practical to to popup a dialog box for each. In these cases, Hookmark goes the best effort route.
That is why Hookmark has that advanced preference pane, to give the user the control over how hook://file/ URLs are resolved.
This is extremely more robust and open than Finder aliases and symlinks are. I hope this helps. There’s not much more to add than this.