Allow projects to have features for common things such as commands, queries, controllers, eventing, etc. But write it in such a way that the features are extensible, or, easy for someone to write a custom one for their desired setup.