{
    "publicApi": {
        "application": {
            "base": {
                "application_one": "Application",
                "application_other": "Applications"
            },
            "action": {
                "admin": {
                    "setApprovalState": {
                        "approved": {
                            "buttonText": "Approve",
                            "heading": "Approve application",
                            "text": "Do you want to approve this application?"
                        },
                        "deny": {
                            "buttonText": "Deny",
                            "heading": "Deny application",
                            "text": "Do you want to deny this application, preventing it from accessing the API?"
                        },
                        "description": "Set the approval state of the application.",
                        "heading": "Set approval state",
                        "pendingApproval": {
                            "buttonText": "Request approval",
                            "heading": "Request application approval",
                            "text": "Do you want to request approval for this application?"
                        },
                        "setup": {
                            "buttonText": "Reset",
                            "heading": "Reset application",
                            "text": "This will set the application to setup and allow development API access."
                        },
                        "success": {
                            "heading": "Approval state updated",
                            "text": "The approval state of the application has been updated."
                        }
                    },
                    "upgradeToGameIntegration": {
                        "buttonText": "Upgrade to game integration",
                        "heading": "Upgrade to game integration",
                        "text": "This will change this application to a game integration. It will create a new security context to merge with, and an integration if the application doesn't have one yet."
                    }
                },
                "copyAppId": "Copy app ID",
                "delete": {
                    "buttonText": "Delete",
                    "heading": "Delete application",
                    "text": "Do you want to delete this application?"
                },
                "goToApp": "Go to app"
            },
            "backoffice": {
                "heading": "Admin backoffice",
                "viewInPlatformSettings": "View in platform settings"
            },
            "applicationState": {
                "activated": {
                    "description": "This app is active.",
                    "name": "Active"
                },
                "any": "Any state",
                "deactivated": {
                    "description": "This app was deactivated.",
                    "name": "Inactive"
                },
                "label": "Application state",
                "removed": {
                    "description": "This app was removed.",
                    "name": "Removed"
                }
            },
            "applicationType": {
                "unknown": {
                    "name": "Unknown"
                },
                "discordBot": {
                    "name": "Discord bot"
                },
                "gameIntegration": {
                    "name": "Game integration"
                },
                "label": "Application type",
                "any": "Any type",
                "other": {
                    "name": "Other"
                },
                "website": {
                    "name": "Website"
                }
            },
            "approvalState": {
                "approved": {
                    "details": {
                        "fullProductionRateLimits": "Full production rate limits are active."
                    },
                    "description": "The app was approved by {{tenant}}.",
                    "name": "Approved"
                },
                "any": "Any approval state",
                "denied": {
                    "details": {
                        "contactSupport": "Contact support if you believe this was an error.",
                        "deniedByPlatformAdmins": "Denied by platform admins."
                    },
                    "description": "The app was denied by {{tenant}}.",
                    "name": "Denied"
                },
                "label": "Approval state",
                "pendingApproval": {
                    "details": {
                        "debugRateLimitsStillApply": "Debug rate limits still apply.",
                        "underReviewByPlatformAdmins": "Under review by platform admins."
                    },
                    "description": "The app is in review by {{tenant}}.",
                    "name": "In review"
                },
                "setup": {
                    "details": {
                        "approvalRequired": "Approval is required before the game can be publicly released.",
                        "awaitingSubmission": "Your app has not been submitted for approval yet."
                    },
                    "description": "The app is in setup and restricted to development rate limits.",
                    "name": "Setup"
                }
            },
            "menu": {
                "backToDashboard": "Back to dashboard",
                "items": {
                    "accountLinking": "Account linking",
                    "appearance": "Appearance",
                    "credentials": "Credentials",
                    "gameAssets": "Game assets",
                    "gameHandling": "Game handling",
                    "gameSettings": "Game settings",
                    "general": "General",
                    "insights": "Insights",
                    "overview": "Overview",
                    "platformSettings": "Platform settings",
                    "playerReporting": "Player reporting",
                    "roles": "Roles",
                    "scoringAndResults": "Scoring and results",
                    "bot": "Bot",
                    "spaces": "Spaces",
                    "viewOnPlatform": "View on platform",
                    "viewOnPlatformDeactivated": "The application is deactivated"
                },
                "sections": {
                    "admin": "Admin",
                    "gameIntegration": "Game integration",
                    "gameTitle": "Game title",
                    "general": "General",
                    "sandbox": "Sandbox"
                }
            },
            "card": {
                "contextMenuLabel": "Application context menu"
            },
            "createForm": {
                "applicationTypeLabel": "Application type",
                "applicationTypePlaceholder": "Select an application type...",
                "nameLabel": "Name",
                "namePlaceholder": "Enter an application name",
                "termsText": "By creating an application, you agree to the <1>{{platformName}} APIs Terms of Use</1>."
            },
            "createModal": {
                "description": "Create a new application that uses the APIs to interact with {{platformName}}.",
                "heading": "Create application"
            },
            "documentation": {
                "authApi": {
                    "botAccessTokens": {
                        "components": {
                            "botUserInfo": {
                                "description": {
                                    "afterGraphqlLink": "in the {{platformName}} Client API to test your authentication. The returned subject/user ID corresponds to the public-facing ID of your Bot user.",
                                    "beforeUserInfoLink": "Since your application is represented by a Bot on {{platformName}}, you can call",
                                    "betweenLinks": "or the GraphQL query"
                                },
                                "heading": "Bot user info",
                                "me": "Me"
                            },
                            "callApis": {
                                "description": "Use the access token with Bearer authentication to call authorized endpoints:",
                                "heading": "Call APIs"
                            },
                            "exampleBotAccessToken": "Example Bot access token:",
                            "exampleRefreshKey": "Example refresh key:",
                            "heading": "Components",
                            "retrieveBotAccessKey": {
                                "description": {
                                    "afterEndpoint": "API.",
                                    "beforeEndpoint": "To obtain a",
                                    "betweenBadgeAndEndpoint": ", exchange your refresh key using the"
                                },
                                "heading": "Retrieve Bot Access Key",
                                "steps": {
                                    "generateRefreshKey": {
                                        "description": {
                                            "afterDashboard": ", navigate to the credentials tab to create a long-lived refresh key. Store it securely, as it's shown only once.",
                                            "beforeDashboard": "In your"
                                        },
                                        "heading": "Generate Refresh Key",
                                        "items": {
                                            "edit": {
                                                "description": "Assign a name to the refresh key for easier identification."
                                            },
                                            "generate": {
                                                "description": "Create the refresh key out-of-band and store it safely in your environment.",
                                                "heading": "Generate"
                                            },
                                            "revoke": {
                                                "description": "Revoke the key if it's compromised or needs rotation. This prevents unauthorized API access.",
                                                "heading": "Revoke"
                                            }
                                        }
                                    },
                                    "retrieveBotAccessToken": {
                                        "description": {
                                            "afterBadge": ". This token grants access to specific API resources.",
                                            "afterEndpoint": "endpoint to obtain a short-lived",
                                            "beforeEndpoint": "Use your refresh key with the"
                                        },
                                        "heading": "Retrieve Bot Access Token"
                                    }
                                }
                            }
                        },
                        "concepts": {
                            "authentication": {
                                "description": {
                                    "afterBotAccess": "verify your application's identity.",
                                    "beforeBotAccess": "Authenticated requests via"
                                },
                                "heading": "Authentication"
                            },
                            "authorization": {
                                "description": {
                                    "afterSpace": "This allows the bot to manage resources, post updates, or perform other permitted actions within that Space.",
                                    "beforeSpace": "You can grant your Bot access to specific resources on the platform, such as linking your Bot to a"
                                },
                                "heading": "Authorization"
                            },
                            "botAccessToSpace": {
                                "description": {
                                    "afterCoAdmin": "and allow it to perform actions on behalf of the Space. The Bot will be able to manage resources, post updates, or perform other permitted actions within that Space.",
                                    "beforeCoAdmin": "In the {{platformName}} application dashboard, you can link your Bot to a Space that you are yourself an admin of. This will",
                                    "coAdmin": "add the Bot to the Space as a co-admin"
                                },
                                "heading": "Bot access to a Space"
                            },
                            "botAuthentication": {
                                "description": {
                                    "afterBadge": "tokens. When an API requires this method, requests are authenticated via a Bot representing your application, ensuring secure bot access.",
                                    "beforeBadge": "Server authentication uses"
                                },
                                "details": {
                                    "afterDashboard": "The access token is short-lived, with a default life time is 20 minutes. See",
                                    "afterLink": "for authentication details.",
                                    "beforeBadge": "To obtain a",
                                    "betweenBadgeAndRefreshKey": "token, you exchange a long-lived",
                                    "betweenRefreshKeyAndDashboard": "that you can create in the"
                                },
                                "heading": "Bot authentication",
                                "refreshKey": "Refresh Key"
                            },
                            "bots": {
                                "description": {
                                    "afterSpaces": ", they appear as Bots within those spaces and can interact with space-specific resources.",
                                    "beforeBot": "A",
                                    "betweenBotAccessAndSpaces": "to",
                                    "betweenBotAndPlatformName": "represents your application on {{platformName}}, performing actions on its behalf. By default, Bots can access public data. When granted"
                                },
                                "heading": "Bots"
                            },
                            "functionsLabel": "Key functions of a Bot:",
                            "heading": "Concepts"
                        },
                        "overview": {
                            "description": {
                                "afterBot": "to represent your application. It's ideal for high-privilege tasks, system-level operations, or accessing cacheable public data. Examples include:",
                                "afterBotAccess": "this method uses a",
                                "afterServerAuthentication": "enables your application to perform actions for your application. Known as"
                            },
                            "examples": {
                                "fetchingPublicTournamentData": {
                                    "description": {
                                        "afterBotAccess": "to query non-personal tournament data from {{platformName}}'s client API.",
                                        "beforeBotAccess": "Use"
                                    },
                                    "heading": "Fetching Public Tournament Data"
                                },
                                "postingGameResults": {
                                    "description": "Integrate your game with {{platformName}} by using a Bot to submit game session results.",
                                    "heading": "Posting Game Results"
                                },
                                "seedingTournaments": {
                                    "description": {
                                        "afterSpace": "to manage and seed tournaments programmatically.",
                                        "beforeSpace": "Link your Bot to a"
                                    },
                                    "heading": "Seeding Tournaments"
                                }
                            },
                            "heading": "Server Authentication"
                        },
                        "terms": {
                            "bot": "Bot",
                            "botAccess": "bot access",
                            "serverAuthentication": "Server Authentication",
                            "space": "space",
                            "spaceTitle": "Space",
                            "spaces": "spaces"
                        }
                    },
                    "clientAuthentication": {
                        "overview": {
                            "examples": {
                                "joiningTournament": {
                                    "description": "GraphQL mutations allow you to perform actions on behalf of a user, such as joining a tournament.",
                                    "heading": "Joining a tournament"
                                },
                                "retrievingPersonalTournamentData": {
                                    "description": "Querying the tournament graph in the {{platformName}} Client API using a personal access token allows you to fetch personal information related to the tournament, such as the user's own participation in it.",
                                    "heading": "Retrieving personal tournament data"
                                },
                                "retrievingUserProfile": {
                                    "afterCode": "endpoint, retrieve the authenticated user's personal {{platformName}} profile and their ongoing activities.",
                                    "beforeCode": "Using the",
                                    "heading": "Retrieving the user's profile"
                                }
                            },
                            "intro": "User authentication is used for calling {{platformName}} APIs on the behalf of a user, such as retrieving personalized data or performing user actions. For example,"
                        },
                        "patAccessTokenOverview": {
                            "afterBadges": "for short, are the tokens used for user authentication. They are short-lived access tokens and they are retrieved through {{platformName}} OAuth 2.0 server using standardized OAuth 2.0 flows. This authentication method is used extensively in the",
                            "beforeExpandedBadge": "User personal access tokens, referred to in the documentation as",
                            "betweenBadges": "or",
                            "clientApiLink": "{{platformName}} Client API",
                            "outro": "."
                        }
                    },
                    "flows": {
                        "assertion": {
                            "badgeDescription": "Assertion flow is a non-interactive OAuth flow which works by providing an assertion token provided by a supported identity provider as an OAuth authorization grant.",
                            "badgeText": "Assertion Flow",
                            "summary": {
                                "afterBadge": "which has been provided by a supported identity provider.",
                                "afterLink": "endpoint. It works by exchanging an",
                                "beforeLink": "OAuth flow which, similar to the refresh token flow, only interacts with the",
                                "intro": "Assertion flow is a",
                                "nonInteractive": "non-interactive"
                            }
                        },
                        "authorizationCode": {
                            "badgeText": "Authorization Code Flow",
                            "description": "The Authorization Code Flow is the most commonly used flow. It involves redirecting the user to the authorization server, capturing their consent, and then providing the client with an authorization code. This code can then be exchanged for an access token."
                        },
                        "deviceCode": {
                            "badgeText": "Device Code Flow",
                            "description": "This flow is optimized for devices with inconvenient input methods, for example consoles. The user is presented with a device code and a URL. By visiting this URL on another device (for example their phone) and entering the code, they authorize the primary device."
                        },
                        "implicitCode": {
                            "badgeText": "Implicit Code Flow",
                            "description": "This flow is particularly designed for clients that cannot ensure the confidentiality of their client secret, such as single-page applications. Rather than receiving an interim authorization code that has to be exchanged, the client obtains the access token directly once the user provides consent."
                        },
                        "refreshToken": {
                            "badgeText": "Refresh Token Flow",
                            "description": "The Refresh Token Flow is designed to enable clients to obtain a new access token without requiring the user to undergo authentication again. After the initial token expires, instead of repeating the entire authentication process, a refresh token can be used to obtain a new access token.",
                            "summary": {
                                "afterPatBadge": "tokens without requiring the user to undergo authentication again. After the initial token expires, instead of repeating the entire authentication process, a",
                                "afterRefreshBadge": "token can be used to obtain a new",
                                "beforePatBadge": "The Refresh Token Flow is designed to enable clients to obtain new",
                                "outro": "."
                            }
                        }
                    },
                    "overview": {
                        "apiReference": {
                            "afterPatBadge": "or both.",
                            "beforeBotBadge": "In the API reference, you will find that APIs are marked as accepting either"
                        },
                        "description": "All APIs use the same methods for authentication, collectively described here. The available types of authentication are the following:",
                        "hmacValidation": {
                            "afterLink": "to verify that it is {{platformName}} calling your webhook.",
                            "beforeLink": "HMAC signatures are used for",
                            "heading": "HMAC validation"
                        },
                        "serverAuthentication": {
                            "afterBadge": "to authenticate your server when calling {{platformName}}. This is typically used for APIs that require server authority, such as reporting game results, or for retrieving data that is not user-specific, such as searching for open tournaments.",
                            "afterLink": "uses",
                            "heading": "Server authentication"
                        },
                        "userAuthentication": {
                            "afterBadge": "to call {{platformName}} APIs on a user's behalf. This is used for APIs that either retrieve personal data or perform actions for a specific user.",
                            "afterLink": "uses",
                            "heading": "User authentication"
                        }
                    }
                },
                "badges": {
                    "assertion": {
                        "description": "An assertion is an ID token provided by an identity provider which is supported for use in the {{platformName}} OAuth Assertion Flow.",
                        "text": "Assertion"
                    },
                    "botAccessToken": {
                        "description": "A bot access token that allows you to authenticate your server when calling {{platformName}} APIs.",
                        "expandedText": "Bot Access Token",
                        "text": "BOT"
                    },
                    "hmac": {
                        "description": "HMAC Signature",
                        "text": "HMAC"
                    },
                    "ott": {
                        "description": "One-time Account Linking Token",
                        "text": "OTT",
                        "withValue": "OTT {{ott}}"
                    },
                    "personalAccessToken": {
                        "description": "A personal access token for a specific user that allows you to call {{platformName}} APIs on that user's behalf.",
                        "expandedText": "Personal Access Token (PAT)",
                        "text": "PAT"
                    },
                    "personalRefreshToken": {
                        "description": "Personal refresh token",
                        "text": "Refresh"
                    },
                    "ssoAccountId": {
                        "description": "SSO Provider Account ID (e.g Steam)",
                        "text": "Account ID"
                    }
                }
            },
            "gameIntegration": {
                "assignWebhooks": {
                    "cancelGameSession": "Cancel game session webhook",
                    "createGameSession": "Create game session webhook",
                    "getGameAccount": "Get game account",
                    "getGameSession": "Get game session webhook",
                    "receiveEvents": "Receive Events webhook",
                    "resolveAccountId": "Resolve account ID",
                    "subscribeGameSessions": "Subscribe GameSessions webhook"
                },
                "createPlaceholder": {
                    "createButtonText": "Create game integration",
                    "empty": {
                        "heading": "No game integration",
                        "text": "There isn't a game integration for this game."
                    },
                    "selectApplicationPlaceholder": "Select an application..."
                },
                "messages": {
                    "integrationCreated": "Integration created!",
                    "payloadGenerated": "Successfully generated payload!",
                    "sandboxConfigured": "Sandbox configured!",
                    "scoringTested": "Scoring tested successfully!",
                    "webhookTestSuccess": "Got a success message for this webhook!"
                },
                "webhook": {
                    "create": {
                        "heading": "Create webhook",
                        "successMessage": "The webhook was created."
                    },
                    "delete": {
                        "confirmMessage": "Do you want to remove this webhook?",
                        "confirmTitle": "Remove webhook",
                        "successMessage": "The webhook was deleted."
                    },
                    "fields": {
                        "endpoint": "Endpoint"
                    },
                    "input": {
                        "placeholder": "Webhook URL"
                    },
                    "limits": {
                        "maxConcurrentRequests": "Max concurrent requests",
                        "maxRequestsPerMinute": "Max requests per minute",
                        "requestTimeoutSeconds": "Request timeout seconds",
                        "successMessage": "Webhook limits updated."
                    },
                    "selectPlaceholder": "Select a webhook..."
                }
            },
            "list": {
                "createApp": "Create app",
                "description": "An application is your software's identity on {{platformName}} and is required to receive the credentials needed to access the API.",
                "emptyStateText": "Get started by creating a new application.",
                "heading": "Applications",
                "manageApplications": "manage your applications"
            },
            "placeholder": {
                "empty": {
                    "heading": "No applications",
                    "text": "There are no applications."
                },
                "noApplicationsMatchFilters": {
                    "heading": "No applications match your filters",
                    "text": "Try adjusting your filters or search query."
                }
            },
            "profileCard": {
                "descriptionPlaceholder": "Describe your bot..."
            },
            "root": {
                "aboutHeading": "About",
                "appInfo": {
                    "heading": "App information",
                    "save": "Save"
                },
                "actions": {
                    "description": "Manage the operational state of your application.",
                    "heading": "Actions"
                },
                "applicationId": "Application ID",
                "checklist": {
                    "complete": "{{done}} / {{total}} steps complete",
                    "completeAllStepsToSubmit": "Complete all checklist steps to submit.",
                    "hide": "Hide checklist",
                    "view": "View checklist"
                },
                "confirm": {
                    "delete": {
                        "buttonText": "Delete",
                        "heading": "Delete application",
                        "text": "Do you want to delete this application?"
                    },
                    "submitForReview": {
                        "buttonText": "Submit",
                        "heading": "Submit for review",
                        "text": "We'll review your application and get back to you as soon as possible."
                    },
                    "withdraw": {
                        "buttonText": "Withdraw",
                        "heading": "Withdraw application",
                        "text": "Do you want to withdraw your application from review?"
                    }
                },
                "gameIntegrationId": "Game integration ID",
                "icon": "Icon",
                "labels": {
                    "intendedUsage": "Intended usage",
                    "name": "Application name",
                    "owner": "Owner",
                    "rateLimits": "Rate limits"
                },
                "overviewHeading": "Overview",
                "platformApproval": {
                    "heading": "Platform approval",
                    "text": "Managed by platform admins. Controls general availability, rate limits, and any other platform-level restrictions."
                },
                "technicalReview": {
                    "heading": "Game under technical review",
                    "description": "Your game is currently undergoing technical review. Tournaments and other competitive features are temporarily unavailable, but you can still build and test your integration using the sandbox.",
                    "approvedUnusual": "Approved — no game brand assigned (contact support)"
                },
                "releaseState": {
                    "description": "Control the availability of your game.",
                    "heading": "Release state",
                    "lockedLabel": "Locked"
                },
                "statusHeading": "Status",
                "toggle": {
                    "heading": "{{action}} application",
                    "text": "Do you want to {{action}} this application?"
                },
                "usefulLinks": {
                    "apiTerms": {
                        "heading": "API Terms of Use",
                        "linkText": "Read the terms",
                        "text": "These terms apply to everyone using {{tenant}}'s APIs."
                    },
                    "documentation": {
                        "heading": "Documentation",
                        "linkText": "Explore the docs",
                        "text": "Everything you need to know to get started with our developer products."
                    },
                    "heading": "Useful links",
                    "support": {
                        "heading": "Support",
                        "linkText": "Get support",
                        "text": "Chat with us or find your answer in our developer FAQ."
                    }
                }
            },
            "getStarted": {
                "gameIntegration": {
                    "skip": {
                        "heading": "Skip setup?",
                        "text": "If you skip the setup process, you'll have to manually set up your game integration."
                    },
                    "intro": {
                        "heading": "Tell us about your game",
                        "summary": {
                            "basicInfo": {
                                "heading": "Basic information",
                                "text": "Share some general information about your game, like your game's name and logo."
                            },
                            "lobbyAndTeam": {
                                "heading": "Lobby and team setup",
                                "text": "How many players and teams can compete in each lobby of your game?"
                            },
                            "scoringAndSettings": {
                                "heading": "Scoring and game settings",
                                "text": "Choose how scores will be calculated to determine the winners of a game."
                            }
                        }
                    },
                    "steps": {
                        "gameDescriptors": {
                            "heading": "About",
                            "text": "Tell us about your game.",
                            "iconLabel": "Icon"
                        },
                        "description": {
                            "heading": "About",
                            "text": "Describe your integration and your intended usage of the API."
                        },
                        "gameType": {
                            "heading": "Format",
                            "text": "Does your game support more than 2 teams playing in the same lobby, such as a battle royale or free for all format?",
                            "headToHead": {
                                "heading": "Head-to-head",
                                "text": "The game only supports one team playing against one other team in a lobby."
                            },
                            "multiTeam": {
                                "heading": "Multi-team",
                                "text": "The game has at least one mode that supports more than 2 teams playing in the same lobby."
                            }
                        },
                        "teamSettings": {
                            "heading": "Lobby and team setup",
                            "text": "How many players are in each team and lobby?"
                        },
                        "scoring": {
                            "heading": "Scoring",
                            "text": "Choose the scoring template that best reflects how game results work in your game or create your own custom scoring later."
                        },
                        "appearance": {
                            "heading": "Appearance",
                            "text": "Configure the appearance of your game overview page on {{tenant}}."
                        }
                    },
                    "success": {
                        "heading": "You're all set!",
                        "text": "We're excited to have you on board. Submit your game for review to have it approved for release on {{tenant}} whenever you're ready."
                    }
                }
            }
        }
    }
}
