At that scale, contracts are multiple interfaces, not just one.
Good job all the compilers I can remember since the last 30 years or so can compile more than one file into a project then.
We're taking past each other. I'll saying that I don't see how adding networking makes anything simpler and you're saying that you need a bunch of network protocols. Why?
I'm not saying you shouldn't ever have networking, but then again, I wouldn't call it a microservices architecture if you're only using networking when it's necessary. At that point you just have services because it's genuinely a network.
It's not microservices unless you have unnecessarily added a bunch of networking, and unnecessarily adding a bunch of networking is innecessarily adding a bunch of complexity that I can't see makes anything better.