gem state when it can be used in the development of itself
gem is ready to be extended by third-party plugins
gem state when high-level architecture is implemented and it looks like this can work