Why do you think passing down props and listening to events is not decoupling? It is an interface and you listen to the events on the custom element itself. Clear and straightforward. How can you even communicate if you don't know the interface of the other one?
Name collision is an issue with any of the aforementioned solutions...you need a naming convention...if you have the same names, it hurts any of them.
Why seeing something as over architected makes me look as I haven't done micro frontends before?
You cannot pass down props (or attributes) because they are both in different areas and don't know each other (otherwise see the aggregator component - there you can do exactly what you want to do but in a safe and decoupled way).
Why do you think passing down props and listening to events is not decoupling? It is an interface and you listen to the events on the custom element itself. Clear and straightforward. How can you even communicate if you don't know the interface of the other one?
Name collision is an issue with any of the aforementioned solutions...you need a naming convention...if you have the same names, it hurts any of them.
Why seeing something as over architected makes me look as I haven't done micro frontends before?
You cannot pass down props (or attributes) because they are both in different areas and don't know each other (otherwise see the aggregator component - there you can do exactly what you want to do but in a safe and decoupled way).
Sry I've meant attributes. You can get really far with attributes and events if the teams can agree upon the interface and doesn't change it often.