I haven't taken a look at the Lemmy source code, but judging by the JSON-LD, I think this could easily be fixed by ordering the items in the attachment array so the link comes first. Lemmy seems to just take the first item there and then abort if it's an image not a link.
Depending on how Lemmy is implemented, it might also look for the url property. I don't understand why Mbin is using source instead of url. If Lemmy falls back to the url property, the devs could add that to posts.
Not a dev btw, just trying to provide more context.