En Magento2 veo que diferentes proveedores siguen diferentes formatos de composer.json que se dan a continuación para nombrar sus módulos. 
1er:
 "autoload": {
    "files": [ "registration.php" ],
    "psr-4": {
      "Amit\\SamplePage\\": ""
    }
  }
2do:
   "extra": {
        "map": [
            [
                "*",
                "Amit/SamplePage"
            ]
        ]
    }
1. ¿Cuál es la diferencia entre ellos y cuál debo seguir? 
2. registration.phpse utiliza para registrar un módulo, ¿por qué composer.jsonse necesita en todos los módulos?
