openRouterKey
suspend fun openRouterKey(keysUrl: String, code: String, attempt: OAuthClient.Attempt): String(source)
OpenRouter's PKCE flow for apps: the result is an API key owned by the user (not a token), so it is stored like any other API key. See https://openrouter.ai/docs/use-cases/oauth-pkce.