Make skill permissions configurable per locale
Today, skill permissions (push notifications, device location, etc) are configured for a given skill on a global basis - if I turn on list management permissions to use with en-US, it will be enabled for every language model my skill implements. This doesn't mean that I have to use those permissions in every locale - it's still up to my skill to choose when to take advantage of them. But it does mean that users will be prompted for them.
This is a problem for a couple reasons:
1. As a developer, I may have legitimate reasons for not using a feature in a given locale. (More on this later)
2. The behavior of my skill (specifically, the process of skill enablement) is likely to change without any input on my side when a new feature, which I've implemented in one locale, is suddenly made available by Amazon in another.
A counterpoint here might be "who cares if users are prompted for permissions they can't use in another locale?", but this has concrete (negative) effects: Some portion of users who are prompted for permissions are going to abandon the skill entirely - in this case those users would be lost for no reason. Further, users who blindly grant me permissions even though they can't be used have now put themselves in a state that runs contrary to best practices (that Amazon specifically pushes) where permissions are granted and used only to the degree that they are actually needed.
Now, what I believe to be the rationale behind the current design is that it is meant to provide a consistent experience for the user between different language models. And there's certainly some value to that. But this is already not the de facto state (features are almost never released globally on Amazon's side). More importantly I believe strongly that this is a case where the developer's right to self-determination and control over the interaction between their skill and their skill's users outweighs the benefits of the extremely rare case where a user is moving between language models. Take for example the following scenario:
My skill InsultiBot is currently in the process of implementing both ISP and push notifications. The new feature that uses push notifications is gated by entitlement to products from the ISP feature. This means that in any locale where push notifications are available, users will be prompted to grant me push notification permissions. But in any locale where ISP is NOT available, it will be literally impossible for those users to take advantage of that feature. And indeed, the intents for managing that feature do not even exist in the skill models for those locales.
As a developer, I need the ability to choose which requests for skill permissions are presented to users on a per-locale basis.