composer.json compatibility