The plan needs subclasses (or roles?) to support VCS integration. This would included:
And no doubt other stuff.
Git has now been explicitly integrated into the checkout command. The next step should be to abstract it into a VCS-independent interface. I'm thinking it should be called App::Sqitch::VCS, and when you instantiate it, it automatically detects which VCS you're using and loads the proper class (factory constructor). The interface for such a class will be defined by a role that requires all the appropriate methods. We would start with those required for checkout and add more as we need them.