Building an open-ended system is easier in some ways than building a closed-ended one.
Building the open-ended system of legos and a handful of building blocks is higher leverage than designing and constructing a specific complex close-ended lego set.
The former is algorithm hard.
Think about it carefully, figure out the right mix of nouns and verbs for maximum generativity with the smallest number of blocks.
But critically, as long as there's an escape hatch, if the user can't do what they want, they can jury rig it, applying their own more elbow grease to make it do what they want.
An open-ended system can turn into anything at all if the user is motivated enough.
(Of course, there isn't infinite motivation, and some uses are easier to accomplish than others).
A close-ended product is integration hard.
Map every individual use case and build it for a user.
If the use case isn't supported then the user can't use it.