The App struct and Command struct have very similar surface area and behaviors. Greatly reducing the duplication between them has already been done in the v2 series, but I'd like to see if a single Command struct with .Commands field can be used everywhere and the App struct can be removed (or type alias?).