the way it mostly works today is by making implementation extend a different configuration where the other configuration (called provided) has the platform and implementation extends provided. but it creates problems - conflicts are resolved differently between provided and implementation as implementation contains more dependencies