const Mismatches *match_message(const Message *msg_1, const Message *msg_2); should instead have a signature of:
const Mismatches *match_message(const Message *msg_1, const char *actual_msg); since we're technically not matching a Message *, which is a Pact message handle against another handle. Instead we should be matching the Pact Message (with matching rules and expected message context) against an actual message as string content.