Extending entities from multiple components

I have a catalog module, which includes a Product entity

I’d like to create a shipping module, which may depend on catalog, but I don’t want the catalog module to depend on shipping

I’d like to have the shipping module add a property shipping_group_id to the Product entity.

I believe I could use the below features to achieve this.

https://doc.cuba-platform.com/manual-7.2/entity_extension.html
https://doc.cuba-platform.com/manual-7.2/screen_extension.html

However, if I then wanted to create a third module that adds properties to the Product entity without being dependent on the shipping component, is there a way I could achieve this?

I’ve seen this type of problem dealt with using a kind of blind/dynamic inheritance in Python with Odoo, but that comes with a lot of other issues.

You can create such add-on (module), but it will be incompatible with shipment, i.e. in a target application you won’t be able to include both add-ons. Only one branch of extensions of some entity can exist in a project.