Adding metadata to Link fields

I’m currently exploring how to create a Link which lets me tag it with additional metadata. I’m trying to add a contributors section to blog posts. It’d be similar to an authors field, but I’d like to add metadata around the different types of contributions they made.

As far as I can tell, the Link field doesn’t support adding additional pieces of data to it. Is there a way to tag a link with a set of pre-defined metadata that describes the link?

One option I’ve explored is having a “join model,” where I create a record (Contributor) which combines the metadata and the team member, like so:

Blog Post        Contributor     
(Author)   <-->  (Author)     <-->  Team Member

However, this ends up being a little awkward because every previous contributor shows up in the “library” of options to choose from — you see every permutation that’s been defined in the past.

Is there a better way to do this today?