That's my specific pain point yes, but the problem will exist there as well. Yes, of course it will be different for other platforms and likely for each library. My point is that it's not very clear at the moment and that there's been a lot of change. There are docs that describe specific settings, specific targets. I think what's needed is something that is more narrative. Here we have a library that needs to do this with JS, this with iOS, this with JVM, this for linuxX64. Here's how to publish a package that takes all of this into consideration. Now that we've published our package, users will do this to add a dependency (given their specific use case). Here's how these choices we made earlier affect the end-user adding your package as a dependency.