Propósito y semántica de la interfaz IMigrationMetadata en Entity Framework

Estoy tratando de averiguar cuál es la semántica de la interfaz System.Data.Entity.Migrations.Infrastructure.IMigrationMetadata en el EF. Sé que se utiliza para administrar y aplicar migraciones de base de datos. Pero no puedo encontrar información detallada al respecto. Para ser específico me gustaría saber:

¿Para qué se utiliza la propiedad Source? ¿Por qué siempre es nulo cuando genero migraciones usando herramientas?¿Para qué propiedad Target se usa? Veo que las herramientas están generando algo parecido a Base64 y colocadas en recursos. ¿Qué es? ¿Por qué se genera en un formato no amigable?¿Es posible desarrollar la migración manualmente sin el uso de herramientas? Supongo que no es fácil debido al valor similar a Base64 de la propiedad Target que debería generarse de alguna manera. Estoy en lo cierto?Cuando esta interfaz se utiliza realmente? En el momento en que descubrí que las migraciones que no implementan esta interfaz no pueden ser encontradas automáticamente por el migrador. Estoy en lo cierto? ¿Es el único propósito de la interfaz?

Respuestas a la pregunta(2)

Su respuesta a la pregunta