The AliasResolver class is responsible for resolving aliases like first, current, etc. to the actual version number.
The Direction class contains constants for the directions a migration can be executed.
The ExecutionResult class is responsible for storing the result of a migration version after it executes.
The Executor class is responsible for executing a single migration version.
The Factory class is responsible for creating instances of the Version class for a version number and a migration class name.
The State class contains constants for the different states a migration can be in during execution.
The Version class represents a single migration version. It wraps around your migration class that extends the AbstractMigration class.
The ExecutorInterface defines the interface used for adding sql for a migration and executing that sql.