Legible interfaces enable someone to build on top of a module without understanding what is inside of it.
I’m sure that there is a lot of thinking and literature around this in the computer science and possibly program management communities. (
The real test of an interface is how much work it takes to combine a node with another node. Connections create new knowledge. Interface quality creates the endogenous part of the friction in combining nodes that Jerry Neumann mentions in One Process - Post.