Seems to me that building for breadth can trigger overengineering. You build functionality that isn't wanted, but is a logical consequence of your platform and the other functionality that you do have use cases for. This is an expenditure of resources with no guarantee that anyone will use it. In turn, it's likely that this functionality will harbor bugs and design errors, precisely because nobody has really used it for anything.
I'm all for building extensible platforms, with scripting and/or good APIs, but any effort put into something for which there is no definable use case is probably wasted.
I'm all for building extensible platforms, with scripting and/or good APIs, but any effort put into something for which there is no definable use case is probably wasted.