Summary: Capabilities publishing
Each type of object should be able to publish its capabilities so that others can listen for those types of capabilities they need.
Each object is specifically coded to work with other objects. Introducing a capabilities broadcast/listening system would allow any object (block/entity/etc) to tell the system about its capabilities or properties. Then other items that depend on something can get a list of all the items that published a capability or property, and choose one of those to use.
This, in combination with a published list of common capabilities would eliminate or at least help to solve some of the redundant mod blocks.
Justification and Use Case:
An example may make this more clear: Several current mods include solar panels. They're all different and they all provide different kinds of energy to different mod equipment. This means players can get confused as to which panel they need.
Additionally, they have to keep track of the fact that mod A equipment can only use its own solar panels, while mod B must use its own. Mod C can use A's but not B's.
If a solar panel were to instead publish a capability "electricity generation", and my water pump needs electricity, and I place that solar panel next to the pump, the pump can see that it provides electricity and begin negotiating how much it can receive from the panel.
-Finding a way to allow blocks to communicate with one another
-Encouraging developers to check if someone's already created a block or entity before adding their own version, and using, matching or improving its capabilities in a compatible way.