Adding a field to a related list

Adding a field to a related list

I would like to create a custom related list between vendors (or a custom module) and deals that has additional field specific to the union.

For instance, Contact Roles and deals have a field that only pertains to contacts in the deal.  That field is role.  It does not appear in the contact api.

How do I add an extra field like this?

Thank you.