Describe map classes (along with the map and message tables) - how to use them, how to extend them...
The MigrateMap class tracks the relationship of source records to their destination records as well as messages generated during the migration. It's worth noting that MigrateMap does not track field mappings, those are the responsibility of the Migrate class.
The Migration class uses MigrateMap in conjunction with MigrateFieldMapping's sourceMigration property to replace source ids with destination ids.
The primary implementation is MigrateSQLMap which—as its name suggests—stores the mapping information in a SQL table database.