openapi: 3.1.0
info:
  title: swgoh-comlink
  description: An API for sending requests to Star Wars Galaxy of Heroes' game services
  version: 0.40.5
paths:
  /data:
    post:
      summary: Get the game data
      operationId: getGameData
      tags:
        - game data
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - payload
              properties:
                enums:
                  type: boolean
                  default: false
                payload:
                  type: object
                  required:
                    - version
                  not:
                    required:
                      - requestSegment
                      - items
                  errorMessage:
                    not: >-
                      requestSegment and items are mutually exclusive; provide
                      at most one
                  properties:
                    devicePlatform:
                      type: string
                      default: StandaloneWindows64
                    includePveUnits:
                      type: boolean
                      description: Whether to include pve units in the collections or not.
                    items:
                      type: string
                      pattern: >-
                        ^(-1|[1-9]\d{0,14}|[1-3]\d{15}|4[0-4]\d{14}|450[0-2]\d{12}|4503[0-4]\d{11}|45035[0-8]\d{10}|450359[0-8]\d{9}|4503599[0-5]\d{8}|45035996[0-1]\d{7}|450359962[0-6]\d{6}|4503599627[0-2]\d{5}|45035996273[0-6]\d{4}|4503599627370[0-3]\d{2}|45035996273704[0-8]\d{1}|450359962737049[0-4]|4503599627370495)$
                      description: >-
                        Mutually exclusive with the requestSegment parameter.
                        Uses a binary bit mask converted to integer string where
                        each collection to include in the response is
                        represented by its digit being set to 1 to include, 0 to
                        not include. Use -1 for everything.
                      errorMessage:
                        pattern: >-
                          must be an integer-string bitmask from 1 to
                          4503599627370495, or -1 for everything
                    requestSegment:
                      type: number
                      enum:
                        - 0
                        - 1
                        - 2
                        - 3
                        - 4
                      description: >-
                        Mutually exclusive with the items parameter. Uses the
                        game data segment enums.
                      errorMessage:
                        enum: must be one of 0, 1, 2, 3, 4
                    version:
                      type: string
                      pattern: >-
                        ^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*):[A-Za-z0-9\-_]{22}$
                      errorMessage:
                        pattern: >-
                          must be '<externalVersion>:<dataVersion>', e.g.
                          0.40.5:J1USyB5XSG-XU2m9t9XqjQ
                  additionalProperties: false
              additionalProperties: false
        required: true
      responses:
        2XX:
          description: getGameData successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  ability:
                    type: array
                    items:
                      $ref: '#/components/schemas/Ability'
                  abilityDecisionTree:
                    type: array
                    items:
                      $ref: '#/components/schemas/AbilityDecisionTree'
                  artifactDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/ArtifactDefinition'
                  artifactTierDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/ArtifactTierDefinition'
                  battleEnvironments:
                    type: array
                    items:
                      $ref: '#/components/schemas/BattleEnvironment'
                  battleTargetingRule:
                    type: array
                    items:
                      $ref: '#/components/schemas/EffectTarget'
                  calendarCategoryDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/CalendarCategoryDefinition'
                  campaign:
                    type: array
                    items:
                      $ref: '#/components/schemas/Campaign'
                  category:
                    type: array
                    items:
                      $ref: '#/components/schemas/Category'
                  challenge:
                    type: array
                    items:
                      $ref: '#/components/schemas/Challenge'
                  challengeStyle:
                    type: array
                    items:
                      $ref: '#/components/schemas/ChallengeStyle'
                  conquestDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/ConquestDefinition'
                  conquestMission:
                    type: array
                    items:
                      $ref: '#/components/schemas/ConquestMission'
                  consumableDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/ConsumableDefinition'
                  consumableTierDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/ConsumableTierDefinition'
                  consumableType:
                    type: array
                    items:
                      $ref: '#/components/schemas/ConsumableType'
                  cooldown:
                    type: array
                    items:
                      $ref: '#/components/schemas/Cooldown'
                  dailyActionCap:
                    type: array
                    items:
                      $ref: '#/components/schemas/DailyActionCap'
                  dailyLoginRewardDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/DailyLoginRewardDefinition'
                  datacronAffixTemplateSet:
                    type: array
                    items:
                      $ref: '#/components/schemas/DatacronAffixTemplateSet'
                  datacronHelpEntry:
                    type: array
                    items:
                      $ref: '#/components/schemas/DatacronHelpEntry'
                  datacronSet:
                    type: array
                    items:
                      $ref: '#/components/schemas/DatacronSet'
                  datacronTemplate:
                    type: array
                    items:
                      $ref: '#/components/schemas/DatacronTemplate'
                  displayableEnemy:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnitDefPreview'
                  effect:
                    type: array
                    items:
                      $ref: '#/components/schemas/Effect'
                  effectIconPriority:
                    type: array
                    items:
                      type: string
                  energyReward:
                    type: array
                    items:
                      $ref: '#/components/schemas/EnergyRewardDefinition'
                  environmentCollection:
                    type: array
                    items:
                      $ref: '#/components/schemas/EnvironmentCollection'
                  episodeDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/EpisodeDefinition'
                  equipment:
                    type: array
                    items:
                      $ref: '#/components/schemas/EquipmentDef'
                  eraDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/EraDefinition'
                  eventBonus:
                    type: array
                    items:
                      $ref: '#/components/schemas/EventBonus'
                  eventSampling:
                    type: array
                    items:
                      $ref: '#/components/schemas/EventSampling'
                  galacticBundle:
                    type: array
                    items:
                      $ref: '#/components/schemas/GalacticBundle'
                  guildBanner:
                    $ref: '#/components/schemas/GuildBannerDef'
                  guildExchangeItem:
                    type: array
                    items:
                      $ref: '#/components/schemas/GuildExchangeItem'
                  guildRaid:
                    type: array
                    items:
                      $ref: '#/components/schemas/GuildRaid'
                  guildRaidGlobalConfig:
                    $ref: '#/components/schemas/GuildRaidGlobalConfig'
                  helpEntry:
                    type: array
                    items:
                      $ref: '#/components/schemas/HelpEntry'
                  lightspeedToken:
                    type: array
                    items:
                      $ref: '#/components/schemas/LightspeedTokenDefinition'
                  linkedStoreItem:
                    type: array
                    items:
                      $ref: '#/components/schemas/LinkedStoreItem'
                  linkingReward:
                    $ref: '#/components/schemas/BucketItem'
                  material:
                    type: array
                    items:
                      $ref: '#/components/schemas/CraftingMaterialDef'
                  modRecommendation:
                    type: array
                    items:
                      $ref: '#/components/schemas/ModRecommendation'
                  mysteryBox:
                    type: array
                    items:
                      $ref: '#/components/schemas/MysteryBoxDefinition'
                  mysteryStatMod:
                    type: array
                    items:
                      $ref: '#/components/schemas/MysteryStatModDefinition'
                  persistentVfx:
                    type: array
                    items:
                      $ref: '#/components/schemas/PersistentVfx'
                  playerPortrait:
                    type: array
                    items:
                      $ref: '#/components/schemas/PlayerPortraitDefinition'
                  playerTitle:
                    type: array
                    items:
                      $ref: '#/components/schemas/PlayerTitleDefinition'
                  powerUpBundle:
                    type: array
                    items:
                      $ref: '#/components/schemas/PowerUpBundle'
                  raidConfig:
                    type: array
                    items:
                      $ref: '#/components/schemas/GuildRaidConfig'
                  recipe:
                    type: array
                    items:
                      $ref: '#/components/schemas/Recipe'
                  recommendedSquad:
                    type: array
                    items:
                      $ref: '#/components/schemas/RecommendedSquad'
                  relicTierDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/RelicTierDefinition'
                  requirement:
                    type: array
                    items:
                      $ref: '#/components/schemas/Requirement'
                  savedSquadConfig:
                    type: array
                    items:
                      $ref: '#/components/schemas/SaveSquadConfig'
                  scavengerConversionSet:
                    type: array
                    items:
                      $ref: '#/components/schemas/ConversionSet'
                  seasonDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/SeasonDefinition'
                  seasonDivisionDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/SeasonDivisionDefinition'
                  seasonLeagueDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/SeasonLeagueDefinition'
                  seasonRewardTable:
                    type: array
                    items:
                      $ref: '#/components/schemas/SeasonRewardTable'
                  skill:
                    type: array
                    items:
                      $ref: '#/components/schemas/SkillDefinition'
                  socialStatus:
                    $ref: '#/components/schemas/SocialStatus'
                  starterGuild:
                    type: array
                    items:
                      $ref: '#/components/schemas/StarterGuildDef'
                  statMod:
                    type: array
                    items:
                      $ref: '#/components/schemas/StatModDefinition'
                  statModSet:
                    type: array
                    items:
                      $ref: '#/components/schemas/StatModSetDefinition'
                  statProgression:
                    type: array
                    items:
                      $ref: '#/components/schemas/StatProgression'
                  table:
                    type: array
                    items:
                      $ref: '#/components/schemas/Table'
                  targetingSet:
                    type: array
                    items:
                      $ref: '#/components/schemas/TargetingSet'
                  territoryBattleDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/TerritoryBattleDefinition'
                  territoryTournamentDailyRewardTable:
                    $ref: '#/components/schemas/TerritoryTournamentDailyRewardTable'
                  territoryTournamentDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/TerritoryTournamentDefinition'
                  territoryTournamentDivisionDefinition:
                    type: array
                    items:
                      $ref: >-
                        #/components/schemas/TerritoryTournamentDivisionDefinition
                  territoryTournamentLeagueDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/TerritoryTournamentLeagueDefinition'
                  territoryWarDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/TerritoryWarDefinition'
                  timeZoneChangeConfig:
                    $ref: '#/components/schemas/TimeZoneChangeConfig'
                  unitGuideDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnitGuideDefinition'
                  unitGuideLayout:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnitGuideLayout'
                  units:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnitDef'
                  unlockAnnouncementDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/UnlockAnnouncementDefinition'
                  warDefinition:
                    type: array
                    items:
                      $ref: '#/components/schemas/WarDef'
                  xpTable:
                    type: array
                    items:
                      $ref: '#/components/schemas/XpTable'
        4XX:
          $ref: '#/components/responses/errorResponse'
  /enums:
    get:
      summary: Get an object containing all of the game data enums
      tags:
        - game data
      responses:
        2XX:
          $ref: '#/components/responses/successResponse'
        4XX:
          $ref: '#/components/responses/errorResponse'
  /getEvents:
    post:
      summary: Get the game events
      operationId: getEvents
      tags:
        - events
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enums:
                  type: boolean
                  default: false
                payload:
                  type: object
                  properties: {}
                  additionalProperties: false
              additionalProperties: false
        required: false
      responses:
        2XX:
          description: getEvents successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  gameEvent:
                    type: array
                    items:
                      $ref: '#/components/schemas/GameEvent'
        4XX:
          $ref: '#/components/responses/errorResponse'
  /getGuildLeaderboard:
    post:
      summary: Get the guild leaderboards
      operationId: getGuildLeaderboard
      tags:
        - guild
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - payload
              properties:
                enums:
                  type: boolean
                  default: false
                payload:
                  type: object
                  required:
                    - leaderboardId
                  properties:
                    count:
                      type: number
                      default: 200
                    leaderboardId:
                      type: array
                      items:
                        oneOf:
                          - description: Leaderboard type - total raid points
                            type: object
                            properties:
                              leaderboardType:
                                const: 0
                              monthOffset:
                                type: number
                                enum:
                                  - 0
                                  - 1
                          - description: Leaderboard type - specific raid events
                            type: object
                            properties:
                              defId:
                                type: string
                                description: >-
                                  Values such as `sith_raid`, `rancor`,
                                  `rancor_challenge`, `aat`, `kraytdragon`,
                                  `speederbike` and so on
                              leaderboardType:
                                const: 2
                              monthOffset:
                                type: number
                                enum:
                                  - 0
                                  - 1
                          - description: Leaderboard type - Galactic Power
                            type: object
                            properties:
                              leaderboardType:
                                const: 3
                              monthOffset:
                                type: number
                                enum:
                                  - 0
                                  - 1
                          - description: Leaderboard type - TB stars
                            type: object
                            properties:
                              defId:
                                type: string
                                description: Values such as `t01D`, `t02D`, and so on
                              leaderboardType:
                                const: 4
                              monthOffset:
                                type: number
                                enum:
                                  - 0
                                  - 1
                          - description: Leaderboard type - TW
                            type: object
                            properties:
                              defId:
                                const: TERRITORY_WAR_LEADERBOARD
                              leaderboardType:
                                const: 5
                              monthOffset:
                                type: number
                                enum:
                                  - 0
                                  - 1
                          - description: Leaderboard type - 'high water mark'
                            type: object
                            properties:
                              defId:
                                type: string
                                description: >-
                                  Values such as
                                  `GUILD:RAIDS:NORMAL_DIFF:SITH_RAID:DIFF06`. 
                                  Known values are `SITH_RAID:DIFF06` and
                                  `HEROIC85`, `AAT:DIFF06` and `HEROIC80`,
                                  `RANCOR:DIFF01` through `DIFF06`,
                                  `KRAYTDRAGON:DIFF01`, and `ROTJ:SPEEDERBIKE`
                              leaderboardType:
                                const: 6
                              monthOffset:
                                type: number
                                enum:
                                  - 0
                                  - 1
                  additionalProperties: false
              additionalProperties: false
        required: true
      responses:
        2XX:
          description: getGuildLeaderboard successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  leaderboard:
                    type: array
                    items:
                      $ref: '#/components/schemas/GuildLeaderboard'
        4XX:
          $ref: '#/components/responses/errorResponse'
  /getGuilds:
    post:
      summary: Search guilds
      operationId: getGuilds
      tags:
        - guild
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - payload
              properties:
                enums:
                  type: boolean
                  default: false
                payload:
                  type: object
                  properties:
                    filterType:
                      type: number
                      enum:
                        - 4
                        - 5
                  allOf:
                    - if:
                        properties:
                          filterType:
                            const: 4
                      then:
                        required:
                          - name
                        properties:
                          count:
                            type: number
                            default: 10
                          filterType:
                            const: 4
                          name:
                            type: string
                          startIndex:
                            type: number
                            default: 0
                        additionalProperties: false
                        errorMessage:
                          additionalProperties: >-
                            The searchCriteria field (and any other fields not
                            in the spec) must not be included when searching by
                            name
                      errorMessage:
                        then: ''
                    - errorMessage:
                        then: ''
                      if:
                        properties:
                          filterType:
                            const: 5
                      then:
                        required:
                          - searchCriteria
                        additionalProperties: false
                        errorMessage:
                          additionalProperties: >-
                            The name field (and any other fields not in the
                            spec) must not be included when searching by
                            searchCriteria
                        properties:
                          count:
                            type: number
                            default: 10
                          filterType:
                            const: 5
                          searchCriteria:
                            type: object
                            properties:
                              includeInviteOnly:
                                type: boolean
                                default: true
                              maxGuildGalacticPower:
                                type: number
                                default: 500000000
                              maxMemberCount:
                                type: number
                                default: 50
                              minGuildGalacticPower:
                                type: number
                                default: 1
                              minMemberCount:
                                type: number
                                default: 1
                              recentTbParticipatedIn:
                                type: array
                                items:
                                  type: string
                          startIndex:
                            type: number
                            default: 0
              additionalProperties: false
        required: true
      responses:
        2XX:
          description: getGuilds successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  guild:
                    type: array
                    items:
                      $ref: '#/components/schemas/GuildProfile'
                  includeStarterGuild:
                    type: boolean
                  totalRecords:
                    type: integer
                    format: int32
        4XX:
          $ref: '#/components/responses/errorResponse'
  /getLeaderboard:
    post:
      summary: >-
        View GAC leaderboards.  Supports both the global leaderboards, as well
        as the leaderboards for the GAC groupings of 8.
      operationId: getLeaderboard
      tags:
        - gac
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - payload
              properties:
                enums:
                  type: boolean
                  default: false
                payload:
                  type: object
                  properties:
                    leaderboardType:
                      type: number
                      enum:
                        - 4
                        - 6
                  allOf:
                    - if:
                        properties:
                          leaderboardType:
                            const: 4
                      then:
                        description: >-
                          Leaderboards from the individual brackets of 8. Only
                          returns results while the event bracket is active.
                        required:
                          - eventInstanceId
                          - groupId
                        properties:
                          eventInstanceId:
                            type: string
                            description: >-
                              Combination of the event Id and the instance ID,
                              separated by :
                            example: >-
                              CHAMPIONSHIPS_GRAND_ARENA_GA2_EVENT_SEASON_36:O1675202400000
                          groupId:
                            type: string
                            description: >-
                              Must start with the same eventInstanceId, followed
                              by the league and bracketId, separated by :. The
                              number at the end is the bracketId, and goes from
                              0 to N, where N is the last group of 8 players.
                            example: >-
                              CHAMPIONSHIPS_GRAND_ARENA_GA2_EVENT_SEASON_36:O1675202400000:CARBONITE:10431
                          leaderboardType:
                            const: 4
                        additionalProperties: false
                        errorMessage:
                          additionalProperties: >-
                            Fields other than groupId and eventInstanceId must
                            not be included when using leaderboardType 4
                      errorMessage:
                        then: ''
                    - errorMessage:
                        then: ''
                      if:
                        properties:
                          leaderboardType:
                            const: 6
                      then:
                        description: '''Global'' GAC leaderboards for each league and division'
                        required:
                          - league
                          - division
                        additionalProperties: false
                        errorMessage:
                          additionalProperties: >-
                            Fields other than league and division must not be
                            included when using leaderboardType 6
                        properties:
                          division:
                            type: number
                            enum:
                              - 5
                              - 10
                              - 15
                              - 20
                              - 25
                            description: >-
                              Enum values 5, 10, 15, 20, and 25 correspond to
                              divisions 5 through 1 respectively
                          leaderboardType:
                            const: 6
                          league:
                            type: number
                            enum:
                              - 20
                              - 40
                              - 60
                              - 80
                              - 100
                            description: >-
                              Enum values 20, 40, 60, 80, and 100 correspond to
                              carbonite, bronzium, chromium, aurodium, and kyber
                              respectively
              additionalProperties: false
        required: true
      responses:
        2XX:
          description: getLeaderboard successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  leaderboard:
                    type: array
                    items:
                      $ref: '#/components/schemas/LeaderboardData'
                  player:
                    type: array
                    items:
                      $ref: '#/components/schemas/LeaderboardPlayer'
                  playerStatus:
                    $ref: '#/components/schemas/LeaderboardStatus'
        4XX:
          $ref: '#/components/responses/errorResponse'
  /getSegmentedContent:
    post:
      summary: Get the segmented content details
      operationId: getSegmentedContent
      tags:
        - game data
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enums:
                  type: boolean
                  default: false
                payload:
                  type: object
                  properties:
                    acceptLanguage:
                      type: string
                      default: ENG_US
                    contentNameSpace:
                      type: string
                      default: current
                  additionalProperties: false
              additionalProperties: false
        required: false
      responses:
        2XX:
          description: getSegmentedContent successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  content:
                    $ref: '#/components/schemas/SegmentedContent'
        4XX:
          $ref: '#/components/responses/errorResponse'
  /guild:
    post:
      summary: Get information about a guild
      operationId: getGuild
      tags:
        - guild
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - payload
              properties:
                enums:
                  type: boolean
                  default: false
                payload:
                  type: object
                  required:
                    - guildId
                  properties:
                    guildId:
                      type: string
                      pattern: ^[A-Za-z0-9\-_]{22}$
                      errorMessage:
                        pattern: >-
                          must be 22 digits long and only contain alphanumeric
                          characters plus - and _
                    includeRecentGuildActivityInfo:
                      type: boolean
                      default: false
                  additionalProperties: false
              additionalProperties: false
        required: true
      responses:
        2XX:
          description: getGuild successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  guild:
                    $ref: '#/components/schemas/Guild'
        4XX:
          $ref: '#/components/responses/errorResponse'
  /livez:
    get:
      summary: Endpoint to check if the service is alive
      tags: []
      responses:
        2XX:
          $ref: '#/components/responses/successResponse'
        4XX:
          $ref: '#/components/responses/errorResponse'
  /localization:
    post:
      summary: Get the localization bundle
      operationId: getLocalizationBundle
      tags:
        - game data
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - payload
              properties:
                enums:
                  type: boolean
                  default: false
                payload:
                  type: object
                  required:
                    - id
                  properties:
                    id:
                      type: string
                      allOf:
                        - pattern: ^[A-Za-z0-9\-_]{22}(?::[^:]+)?$
                          errorMessage:
                            pattern: >-
                              must be a 22-character localization version,
                              optionally followed by ':<locale>'
                        - if:
                            pattern: '^[A-Za-z0-9\-_]{22}:'
                          then:
                            pattern: >-
                              ^[A-Za-z0-9\-_]{22}:(?:CHS_CN|CHT_CN|ENG_US|FRE_FR|GER_DE|IND_ID|ITA_IT|JPN_JP|KOR_KR|POR_BR|RUS_RU|SPA_XM|THA_TH|TUR_TR)$
                            errorMessage:
                              pattern: >-
                                unsupported locale suffix; supported: CHS_CN,
                                CHT_CN, ENG_US, FRE_FR, GER_DE, IND_ID, ITA_IT,
                                JPN_JP, KOR_KR, POR_BR, RUS_RU, SPA_XM, THA_TH,
                                TUR_TR
                          errorMessage:
                            then: ''
                      description: >-
                        The localization bundle ID from the /metadata response
                        can be appended with the locale desired to decrease the
                        response size, example: ':ENG_US'
                  additionalProperties: false
                unzip:
                  type: boolean
              additionalProperties: false
        required: true
      responses:
        2XX:
          description: getLocalizationBundle successful response
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      localizationBundle:
                        type: string
                        contentEncoding: base64
                        contentMediaType: application/zip
                  - type: object
        4XX:
          $ref: '#/components/responses/errorResponse'
  /metadata:
    post:
      summary: Get the game metadata
      operationId: getMetaData
      tags:
        - game data
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                enums:
                  type: boolean
                  default: false
                payload:
                  type: object
                  properties:
                    clientSpecs:
                      type: object
                      properties:
                        bundleId:
                          type: string
                        externalVersion:
                          type: string
                        internalVersion:
                          type: string
                        platform:
                          type: string
                        region:
                          type: string
                      additionalProperties: false
                  additionalProperties: false
              additionalProperties: false
        required: false
      responses:
        2XX:
          description: getMetaData successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  assetPath:
                    type: string
                  assetSubpath:
                    type: string
                  assetVersion:
                    type: integer
                    format: int32
                  clientCache:
                    type: array
                    items:
                      $ref: '#/components/schemas/ClientCacheEntry'
                  config:
                    type: array
                    items:
                      $ref: '#/components/schemas/ConfigEntry'
                  debugMode:
                    type: boolean
                  eadpParameters:
                    $ref: '#/components/schemas/EADPParameters'
                  gamedataRevision:
                    type: string
                  latestGamedataVersion:
                    type: string
                  latestLocalizationBundleVersion:
                    type: string
                  latestLocalizationRevision:
                    type: string
                  latestSegmentedContentVersion:
                    type: string
                  monoExtraMemoryAllocationDivisor:
                    type: integer
                    format: int32
                  qualityData:
                    $ref: '#/components/schemas/ClientQualityData'
                  resourceCacheMemoryLimit:
                    type: integer
                    format: int32
                  serverProperty:
                    type: array
                    items:
                      $ref: '#/components/schemas/ServerProperty'
                  serverTimestamp:
                    type: integer
                    format: int64
                  serverVersion:
                    type: string
                  texFormat:
                    type: string
        4XX:
          $ref: '#/components/responses/errorResponse'
  /metrics:
    get:
      summary: Get prometheus metrics
      tags: []
      responses:
        2XX:
          $ref: '#/components/responses/plainSuccessResponse'
        4XX:
          $ref: '#/components/responses/plainErrorResponse'
  /player:
    post:
      summary: Get a player profile
      operationId: getPlayer
      tags:
        - player
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - payload
              properties:
                enums:
                  type: boolean
                  default: false
                payload:
                  type: object
                  oneOf:
                    - required:
                        - allyCode
                    - required:
                        - playerId
                  properties:
                    allyCode:
                      type: string
                      pattern: ^[1-9]{9}$
                      errorMessage:
                        pattern: must be 9 digits long and only contain numbers 1-9
                    playerId:
                      type: string
                      pattern: ^[A-Za-z0-9\-_]{22}$
                      errorMessage:
                        pattern: >-
                          must be 22 digits long and only contain alphanumeric
                          characters plus - and _
                  additionalProperties: false
                  errorMessage:
                    oneOf: Must include either allyCode or playerId, but not both
              additionalProperties: false
        required: true
      responses:
        2XX:
          description: getPlayer successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  allyCode:
                    type: integer
                    format: int64
                  datacron:
                    type: array
                    items:
                      $ref: '#/components/schemas/Datacron'
                  eraUnitStatus:
                    type: array
                    items:
                      $ref: '#/components/schemas/EraUnitStatus'
                  guildBannerColor:
                    type: string
                  guildBannerLogo:
                    type: string
                  guildId:
                    type: string
                  guildLogoBackground:
                    type: string
                  guildName:
                    type: string
                  guildTypeId:
                    type: string
                  lastActivityTime:
                    type: integer
                    format: int64
                  level:
                    type: integer
                    format: int32
                  lifetimeSeasonScore:
                    type: integer
                    format: int64
                  loanedUnitEraLevel:
                    type: integer
                    format: int32
                  localTimeZoneOffsetMinutes:
                    type: integer
                    format: int32
                  name:
                    type: string
                  nucleusId:
                    type: string
                  playerId:
                    type: string
                  playerRating:
                    $ref: '#/components/schemas/PlayerRating'
                  profileStat:
                    type: array
                    items:
                      $ref: '#/components/schemas/PlayerProfileStat'
                  pvpProfile:
                    type: array
                    items:
                      $ref: '#/components/schemas/PlayerPvpProfile'
                  rosterUnit:
                    type: array
                    items:
                      $ref: '#/components/schemas/Unit'
                  seasonStatus:
                    type: array
                    items:
                      $ref: '#/components/schemas/SeasonStatus'
                  selectedPlayerPortrait:
                    $ref: '#/components/schemas/PlayerPortrait'
                  selectedPlayerTitle:
                    $ref: '#/components/schemas/PlayerTitle'
                  unlockedPlayerPortrait:
                    type: array
                    items:
                      $ref: '#/components/schemas/PlayerPortrait'
                  unlockedPlayerTitle:
                    type: array
                    items:
                      $ref: '#/components/schemas/PlayerTitle'
        4XX:
          $ref: '#/components/responses/errorResponse'
  /playerArena:
    post:
      summary: Get a player's arena profile
      operationId: getPlayerArenaProfile
      tags:
        - player
        - arena
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - payload
              properties:
                enums:
                  type: boolean
                  default: false
                payload:
                  type: object
                  oneOf:
                    - required:
                        - allyCode
                    - required:
                        - playerId
                  properties:
                    allyCode:
                      type: string
                      pattern: ^[1-9]{9}$
                      errorMessage:
                        pattern: must be 9 digits long and only contain numbers 1-9
                    playerDetailsOnly:
                      type: boolean
                      default: false
                    playerId:
                      type: string
                      pattern: ^[A-Za-z0-9\-_]{22}$
                      errorMessage:
                        pattern: >-
                          must be 22 digits long and only contain alphanumeric
                          characters plus - and _
                  additionalProperties: false
                  errorMessage:
                    oneOf: Must include either allyCode or playerId, but not both
              additionalProperties: false
        required: true
      responses:
        2XX:
          description: getPlayerArenaProfile successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  allyCode:
                    type: integer
                    format: int64
                  level:
                    type: integer
                    format: int32
                  lifetimeSeasonScore:
                    type: integer
                    format: int64
                  localTimeZoneOffsetMinutes:
                    type: integer
                    format: int32
                  name:
                    type: string
                  nucleusId:
                    type: string
                  playerId:
                    type: string
                  playerRating:
                    $ref: '#/components/schemas/PlayerRating'
                  pvpProfile:
                    type: array
                    items:
                      $ref: '#/components/schemas/PlayerPvpProfile'
        4XX:
          $ref: '#/components/responses/errorResponse'
  /readyz:
    get:
      summary: Endpoint to check if the service is ready
      tags: []
      responses:
        2XX:
          $ref: '#/components/responses/successResponse'
        4XX:
          $ref: '#/components/responses/errorResponse'
components:
  schemas:
    GameEvent:
      type: object
      properties:
        campaignElementIdentifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        combatType:
          $ref: '#/components/schemas/CombatType'
        conquestId:
          type: string
        defensiveSquadType:
          $ref: '#/components/schemas/SquadType'
        defensiveSquadUsageCostEnabled:
          type: boolean
        descKey:
          type: string
        descKeyUnitCriteriaMet:
          type: string
        detailsType:
          $ref: '#/components/schemas/GameEventDetailsType'
        encounterMessage:
          type: array
          items:
            $ref: '#/components/schemas/ContextualMessageGroup'
        environment:
          type: array
          items:
            $ref: '#/components/schemas/Environment'
        factionImage:
          type: string
        feat:
          type: array
          items:
            $ref: '#/components/schemas/Feat'
        hideCompleted:
          type: boolean
        icon:
          type: string
        iconAttack:
          type: string
        iconJoin:
          type: string
        iconSetDefense:
          type: string
        id:
          type: string
        image:
          type: string
        imageEffect:
          type: string
        instance:
          type: array
          items:
            $ref: '#/components/schemas/GameEventInstance'
        linkedStoreItemId:
          type: array
          items:
            type: string
        marqueeUnitBaseId:
          type: string
        marqueeUnitTexture:
          type: string
        nameKey:
          type: string
        previewKey:
          type: string
        priority:
          type: integer
          format: int32
        pushNotificationDescKey:
          type: string
        pushNotificationTitleKey:
          type: string
        rankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        reviewKey:
          type: string
        seasonDefId:
          type: string
        showFutureEventsInFindFlow:
          type: boolean
        squadType:
          $ref: '#/components/schemas/SquadType'
        status:
          $ref: '#/components/schemas/GameEventStatus'
        summaryKey:
          type: string
        territoryMapId:
          type: string
        type:
          $ref: '#/components/schemas/GameEventType'
        uiLocation:
          $ref: '#/components/schemas/GameEventUILocation'
        unlockRequirementId:
          type: string
        unlockRequirementLocalizationKey:
          type: string
    GameEventType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 8
            - 9
            - 10
            - 11
            - 12
            - 13
            - 14
        - type: string
          enum:
            - GameEventType_DEFAULT
            - SCHEDULED
            - KEYCARD
            - PROGRESSION
            - MODS
            - PVP_EVENT
            - ECONOMY_EVENT
            - TERRITORY_WAR_EVENT
            - TERRITORY_BATTLE_EVENT
            - TERRITORY_TOURNAMENT_EVENT
            - ARCADE_RAID
            - SEASON
            - LIFECYCLED
            - CONQUEST_EVENT
    GameEventInstance:
      type: object
      properties:
        campaignElementIdentifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        defensiveSquadSaveTimeLimit:
          type: integer
          format: int64
        defensiveSquadSize:
          type: integer
          format: int32
        displayEndTime:
          type: integer
          format: int64
        displayStartTime:
          type: integer
          format: int64
        endTime:
          type: integer
          format: int64
        entryCategoryAllowed:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        id:
          type: string
        joined:
          type: boolean
        linkedEventId:
          type: array
          items:
            type: string
        rankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        rewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        rewardTime:
          type: integer
          format: int64
        rosterRefreshTime:
          type: integer
          format: int64
        startTime:
          type: integer
          format: int64
        summaryKey:
          type: string
        supportsPushNotifications:
          type: boolean
        systemModifier:
          $ref: '#/components/schemas/SystemModifier'
        timeLimited:
          type: boolean
        unitDailyUsageCapKey:
          type: string
    CampaignElementIdentifier:
      type: object
      properties:
        campaignId:
          type: string
        campaignMapId:
          type: string
        campaignMissionId:
          type: string
        campaignNodeDifficulty:
          $ref: '#/components/schemas/CampaignNodeDifficulty'
        campaignNodeId:
          type: string
    CampaignNodeDifficulty:
      oneOf:
        - type: integer
          enum:
            - 0
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
            - 13
        - type: string
          enum:
            - NOT_SET
            - NORMAL_DIFF
            - HARD_DIFF
            - NIGHTMARE_DIFF
            - SPECIAL_DIFF
            - I_DIFF
            - II_DIFF
            - III_DIFF
            - IV_DIFF
            - V_DIFF
            - VI_DIFF
    BucketItem:
      type: object
      properties:
        id:
          type: string
        maxQuantity:
          type: integer
          format: int32
        minQuantity:
          type: integer
          format: int32
        previewPriority:
          type: integer
          format: int32
        primaryReward:
          type: boolean
        rarity:
          $ref: '#/components/schemas/Rarity'
        statMod:
          $ref: '#/components/schemas/StatMod'
        type:
          $ref: '#/components/schemas/ItemType'
        unitLevel:
          type: integer
          format: int32
        unitTier:
          $ref: '#/components/schemas/UnitTier'
    ItemType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 6
            - 7
            - 8
            - 11
            - 12
            - 13
            - 14
            - 15
            - 16
            - 17
            - 18
            - 19
            - 20
            - 21
            - 22
            - 23
            - 24
            - 25
            - 26
            - 27
            - 28
            - 29
            - 30
            - 31
            - 32
            - 33
            - 34
            - 35
        - type: string
          enum:
            - ItemType_DEFAULT
            - EMPTY
            - UNIT
            - CURRENCY
            - BUCKET
            - XP
            - MATERIAL
            - ENERGY
            - EQUIPMENT
            - EVENT_KEYCARD
            - POWERUP_BUNDLE
            - MYSTERY_BOX
            - STAT_MOD
            - MYSTERY_STAT_MOD
            - PLAYER_TITLE
            - STAT_MOD_PARAMETERIZED
            - PLAYER_PORTRAIT
            - SEASON_POINT
            - GALACTIC_BUNDLE
            - CONQUEST_POINT
            - ARTIFACT
            - CONQUEST_CONSUMABLE
            - BATTLE_PASS
            - LOGIN_CALENDAR
            - CONQUEST_STAMINA_REGEN_REDUCE
            - CONQUEST_ENERGY_REGEN_REDUCE
            - CONQUEST_ARTIFACT_FREE_SWAP_BONUS
            - DATACRON
            - EPISODE_XP
            - EPISODE_PASS
            - EPISODE_PASS_PLUS
            - LIGHTSPEED_TOKEN
            - LOANED_UNIT_ERA_LEVEL_INCREASE
    Rarity:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
        - type: string
          enum:
            - Rarity_DEFAULT
            - ONE_STAR
            - TWO_STAR
            - THREE_STAR
            - FOUR_STAR
            - FIVE_STAR
            - SIX_STAR
            - SEVEN_STAR
            - NO_STAR
    StatMod:
      type: object
      properties:
        bonusQuantity:
          type: integer
          format: int32
        convertedItem:
          $ref: '#/components/schemas/BucketItem'
        definitionId:
          type: string
        id:
          type: string
        level:
          type: integer
          format: int32
        levelCost:
          $ref: '#/components/schemas/CurrencyItem'
        locked:
          type: boolean
        primaryStat:
          $ref: '#/components/schemas/StatModStat'
        removeCost:
          $ref: '#/components/schemas/CurrencyItem'
        rerolledCount:
          type: integer
          format: int32
        secondaryStat:
          type: array
          items:
            $ref: '#/components/schemas/StatModStat'
        sellValue:
          $ref: '#/components/schemas/CurrencyItem'
        tier:
          $ref: '#/components/schemas/StatModTier'
        xp:
          type: integer
          format: int32
    StatModTier:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
        - type: string
          enum:
            - StatModTier_DEFAULT
            - STATMOD_TIER_01
            - STATMOD_TIER_02
            - STATMOD_TIER_03
            - STATMOD_TIER_04
            - STATMOD_TIER_05
    CurrencyItem:
      type: object
      properties:
        bonusQuantity:
          type: integer
          format: int32
        currency:
          $ref: '#/components/schemas/CurrencyType'
        quantity:
          type: integer
          format: int64
    CurrencyType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 8
            - 9
            - 10
            - 11
            - 12
            - 13
            - 14
            - 15
            - 16
            - 17
            - 18
            - 19
            - 20
            - 21
            - 22
            - 23
            - 24
            - 25
            - 26
            - 27
            - 28
            - 29
            - 30
            - 31
            - 32
            - 33
            - 34
            - 35
            - 36
            - 37
            - 38
            - 39
            - 40
            - 41
            - 42
            - 43
            - 44
            - 45
            - 46
            - 47
            - 48
            - 49
            - 50
        - type: string
          enum:
            - CurrencyType_DEFAULT
            - GRIND
            - PREMIUM
            - REAL_MONEY
            - SOCIAL
            - IGC_EVENT_KEYCARD
            - XP_EVENT_KEYCARD
            - PVP_CURRENCY
            - FORCE_POINT
            - PVP_SHIP_CURRENCY
            - FREE
            - WAR_SHIP_CURRENCY
            - GRIND_TICKET
            - SHARD_CURRENCY
            - GUILD_CURRENCY
            - GUILD_BANK_CURRENCY
            - SHIP_GRIND
            - GUILD_RAID_CURRENCY_01
            - GUILD_RAID_CURRENCY_02
            - GUILD_RAID_CURRENCY_03
            - GUILD_RAID_CURRENCY_04
            - GUILD_RAID_CURRENCY_05
            - GUILD_RAID_CURRENCY_06
            - GUILD_RAID_CURRENCY_07
            - GUILD_RAID_CURRENCY_08
            - GUILD_RAID_CURRENCY_09
            - GUILD_RAID_CURRENCY_10
            - GUILD_RAID_CURRENCY_11
            - GUILD_RAID_CURRENCY_12
            - TERRITORY_BATTLE_CURRENCY
            - SEASONS_CURRENCY
            - TERRITORY_BATTLE_CURRENCY_02
            - GALACTIC_BUNDLE_CURRENCY
            - LIGHT_SIDE_CURRENCY
            - DARK_SIDE_CURRENCY
            - GALACTIC_CHALLENGE_CURRENCY
            - CONQUEST_CURRENCY
            - DATACRON_CURRENCY
            - MOD_REROLL_CURRENCY
            - TERRITORY_BATTLE_CURRENCY_03
            - RAID_REWARD_CURRENCY_01
            - RAID_REWARD_CURRENCY_02
            - RAID_REWARD_CURRENCY_03
            - RAID_REWARD_CURRENCY_04
            - GL_EVENT_CURRENCY
            - EPISODE_CURRENCY
            - ERA_CURRENCY
            - ERA_UPGRADE_CURRENCY
    StatModStat:
      type: object
      properties:
        roll:
          type: array
          items:
            type: string
        stat:
          $ref: '#/components/schemas/Stat'
        statRollerBoundsMax:
          type: integer
          format: int64
        statRollerBoundsMin:
          type: integer
          format: int64
        statRolls:
          type: integer
          format: int32
        unscaledRollValue:
          type: array
          items:
            type: integer
            format: int64
    Stat:
      type: object
      properties:
        scalar:
          type: integer
          format: int64
        statValueDecimal:
          type: integer
          format: int64
        uiDisplayOverrideValue:
          type: integer
          format: int64
        unitStatId:
          $ref: '#/components/schemas/UnitStat'
        unscaledDecimalValue:
          type: integer
          format: int64
    UnitStat:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
            - 13
            - 14
            - 15
            - 16
            - 17
            - 18
            - 19
            - 20
            - 21
            - 22
            - 23
            - 24
            - 25
            - 26
            - 27
            - 28
            - 29
            - 30
            - 31
            - 32
            - 33
            - 34
            - 35
            - 36
            - 37
            - 38
            - 39
            - 40
            - 41
            - 42
            - 43
            - 44
            - 45
            - 46
            - 47
            - 48
            - 49
            - 50
            - 51
            - 52
            - 53
            - 54
            - 55
            - 56
            - 57
            - 58
            - 59
            - 60
            - 61
        - type: string
          enum:
            - UnitStat_DEFAULT
            - UNIT_STAT_MAX_HEALTH
            - UNIT_STAT_STRENGTH
            - UNIT_STAT_AGILITY
            - UNIT_STAT_INTELLIGENCE
            - UNIT_STAT_SPEED
            - UNIT_STAT_ATTACK_DAMAGE
            - UNIT_STAT_ABILITY_POWER
            - UNIT_STAT_ARMOR
            - UNIT_STAT_SUPPRESSION
            - UNIT_STAT_ARMOR_PENETRATION
            - UNIT_STAT_SUPPRESSION_PENETRATION
            - UNIT_STAT_DODGE_RATING
            - UNIT_STAT_DEFLECTION_RATING
            - UNIT_STAT_ATTACK_CRITICAL_RATING
            - UNIT_STAT_ABILITY_CRITICAL_RATING
            - UNIT_STAT_CRITICAL_DAMAGE
            - UNIT_STAT_ACCURACY
            - UNIT_STAT_RESISTANCE
            - UNIT_STAT_DODGE_PERCENT_ADDITIVE
            - UNIT_STAT_DEFLECTION_PERCENT_ADDITIVE
            - UNIT_STAT_ATTACK_CRITICAL_PERCENT_ADDITIVE
            - UNIT_STAT_ABILITY_CRITICAL_PERCENT_ADDITIVE
            - UNIT_STAT_ARMOR_PERCENT_ADDITIVE
            - UNIT_STAT_SUPPRESSION_PERCENT_ADDITIVE
            - UNIT_STAT_ARMOR_PENETRATION_PERCENT_ADDITIVE
            - UNIT_STAT_SUPPRESSION_PENETRATION_PERCENT_ADDITIVE
            - UNIT_STAT_HEALTH_STEAL
            - UNIT_STAT_MAX_SHIELD
            - UNIT_STAT_SHIELD_PENETRATION
            - UNIT_STAT_HEALTH_REGEN
            - UNIT_STAT_ATTACK_DAMAGE_PERCENT_ADDITIVE
            - UNIT_STAT_ABILITY_POWER_PERCENT_ADDITIVE
            - UNIT_STAT_DODGE_NEGATE_PERCENT_ADDITIVE
            - UNIT_STAT_DEFLECTION_NEGATE_PERCENT_ADDITIVE
            - UNIT_STAT_ATTACK_CRITICAL_NEGATE_PERCENT_ADDITIVE
            - UNIT_STAT_ABILITY_CRITICAL_NEGATE_PERCENT_ADDITIVE
            - UNIT_STAT_DODGE_NEGATE_RATING
            - UNIT_STAT_DEFLECTION_NEGATE_RATING
            - UNIT_STAT_ATTACK_CRITICAL_NEGATE_RATING
            - UNIT_STAT_ABILITY_CRITICAL_NEGATE_RATING
            - UNIT_STAT_OFFENSE
            - UNIT_STAT_DEFENSE
            - UNIT_STAT_DEFENSE_PENETRATION
            - UNIT_STAT_EVASION_RATING
            - UNIT_STAT_CRITICAL_RATING
            - UNIT_STAT_EVASION_NEGATE_RATING
            - UNIT_STAT_CRITICAL_NEGATE_RATING
            - UNIT_STAT_OFFENSE_PERCENT_ADDITIVE
            - UNIT_STAT_DEFENSE_PERCENT_ADDITIVE
            - UNIT_STAT_DEFENSE_PENETRATION_PERCENT_ADDITIVE
            - UNIT_STAT_EVASION_PERCENT_ADDITIVE
            - UNIT_STAT_EVASION_NEGATE_PERCENT_ADDITIVE
            - UNIT_STAT_CRITICAL_CHANCE_PERCENT_ADDITIVE
            - UNIT_STAT_CRITICAL_NEGATE_CHANCE_PERCENT_ADDITIVE
            - UNIT_STAT_MAX_HEALTH_PERCENT_ADDITIVE
            - UNIT_STAT_MAX_SHIELD_PERCENT_ADDITIVE
            - UNIT_STAT_SPEED_PERCENT_ADDITIVE
            - UNIT_STAT_COUNTER_ATTACK_RATING
            - UNIT_STAT_TAUNT
            - UNIT_STAT_DEFENSE_PENETRATION_TARGET_PERCENT_ADDITIVE
            - UNIT_STAT_MASTERY
    UnitTier:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
            - 13
            - 14
            - 15
            - 16
            - 17
            - 18
            - 19
            - 20
        - type: string
          enum:
            - TIER_UNDEFINED
            - TIER_01
            - TIER_02
            - TIER_03
            - TIER_04
            - TIER_05
            - TIER_06
            - TIER_07
            - TIER_08
            - TIER_09
            - TIER_10
            - TIER_11
            - TIER_12
            - TIER_13
            - TIER_14
            - TIER_15
            - TIER_16
            - TIER_17
            - TIER_18
            - TIER_19
            - TIER_20
    RankRewardPreview:
      type: object
      properties:
        detailedReward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        primaryReward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        rankEnd:
          type: integer
          format: int32
        rankStart:
          type: integer
          format: int32
    EntryCategoryAllowed:
      type: object
      properties:
        bigUnitLimit:
          type: integer
          format: int32
        categoryId:
          type: array
          items:
            type: string
        commanderCategoryId:
          type: array
          items:
            type: string
        eraExclusive:
          type: boolean
        excludeCategoryId:
          type: array
          items:
            type: string
        legendLimit:
          type: integer
          format: int32
        mandatoryDatacron:
          $ref: '#/components/schemas/MandatoryDatacron'
        mandatoryRosterUnit:
          type: array
          items:
            $ref: '#/components/schemas/MandatoryRosterUnit'
        matchType:
          $ref: '#/components/schemas/CategoryMatchType'
        maximumAllowedUnitQuantity:
          type: integer
          format: int32
        maximumReinforcement:
          type: integer
          format: int32
        minimumAbilityLevelAll:
          type: integer
          format: int32
        minimumAbilityLevelAvg:
          type: integer
          format: int32
        minimumEraLevel:
          type: integer
          format: int32
        minimumGalacticPower:
          type: integer
          format: int32
        minimumModRarity:
          $ref: '#/components/schemas/Rarity'
        minimumOwnedUnitQuantity:
          type: integer
          format: int32
        minimumReinforcement:
          type: integer
          format: int32
        minimumRelicTier:
          $ref: '#/components/schemas/RelicTier'
        minimumRequiredUnitQuantity:
          type: integer
          format: int32
        minimumUnitLevel:
          type: integer
          format: int32
        minimumUnitRarity:
          $ref: '#/components/schemas/Rarity'
        minimumUnitTier:
          $ref: '#/components/schemas/UnitTier'
        unitGuideMinimumRequiredUnitQuantity:
          type: integer
          format: int32
    CategoryMatchType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - CategoryMatchType_DEFAULT
            - MATCH_ALL
            - MATCH_ANY
    MandatoryRosterUnit:
      type: object
      properties:
        id:
          type: string
        slot:
          type: integer
          format: int32
    RelicTier:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
            - 13
            - 14
            - 15
            - 16
            - 17
            - 18
            - 19
            - 20
            - 21
            - 22
            - 23
            - 24
            - 25
            - 26
            - 27
            - 28
            - 29
            - 30
            - 31
            - 32
            - 33
            - 34
            - 35
            - 36
            - 37
            - 38
            - 39
            - 40
            - 41
            - 42
            - 43
            - 44
            - 45
            - 46
            - 47
            - 48
            - 49
            - 50
            - 51
            - 52
        - type: string
          enum:
            - RelicTier_DEFAULT
            - RELIC_LOCKED
            - RELIC_UNLOCKED
            - RELIC_TIER_01
            - RELIC_TIER_02
            - RELIC_TIER_03
            - RELIC_TIER_04
            - RELIC_TIER_05
            - RELIC_TIER_06
            - RELIC_TIER_07
            - RELIC_TIER_08
            - RELIC_TIER_09
            - RELIC_TIER_10
            - RELIC_TIER_11
            - RELIC_TIER_12
            - RELIC_TIER_13
            - RELIC_TIER_14
            - RELIC_TIER_15
            - RELIC_TIER_16
            - RELIC_TIER_17
            - RELIC_TIER_18
            - RELIC_TIER_19
            - RELIC_TIER_20
            - RELIC_TIER_21
            - RELIC_TIER_22
            - RELIC_TIER_23
            - RELIC_TIER_24
            - RELIC_TIER_25
            - RELIC_TIER_26
            - RELIC_TIER_27
            - RELIC_TIER_28
            - RELIC_TIER_29
            - RELIC_TIER_30
            - RELIC_TIER_31
            - RELIC_TIER_32
            - RELIC_TIER_33
            - RELIC_TIER_34
            - RELIC_TIER_35
            - RELIC_TIER_36
            - RELIC_TIER_37
            - RELIC_TIER_38
            - RELIC_TIER_39
            - RELIC_TIER_40
            - RELIC_TIER_41
            - RELIC_TIER_42
            - RELIC_TIER_43
            - RELIC_TIER_44
            - RELIC_TIER_45
            - RELIC_TIER_46
            - RELIC_TIER_47
            - RELIC_TIER_48
            - RELIC_TIER_49
            - RELIC_TIER_50
    MandatoryDatacron:
      type: object
      properties:
        minLevel:
          type: integer
          format: int32
        setId:
          type: integer
          format: int32
        templateId:
          type: string
    SystemModifier:
      type: object
      properties:
        actionLink:
          $ref: '#/components/schemas/ActionLink'
        additionalItemModifier:
          $ref: '#/components/schemas/AdditionalItemModifier'
        descKey:
          type: string
        id:
          type: string
        location:
          type: array
          items:
            $ref: '#/components/schemas/ModifierLocation'
        scaleItemModifier:
          $ref: '#/components/schemas/ScaleItemModifier'
    ScaleItemModifier:
      type: object
      properties:
        scale:
          type: integer
          format: int32
        target:
          type: array
          items:
            $ref: '#/components/schemas/ModifierItem'
    ModifierItem:
      type: object
      properties:
        category:
          type: string
        id:
          type: string
        materialType:
          $ref: '#/components/schemas/MaterialType'
        type:
          $ref: '#/components/schemas/ItemType'
    MaterialType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
            - 13
            - 14
            - 15
            - 16
        - type: string
          enum:
            - MaterialType_DEFAULT
            - CRAFTING_MATERIAL
            - XP_MATERIAL
            - UNIT_SHARD_MATERIAL
            - PROMOTION_MATERIAL
            - SKILL_MATERIAL
            - SELL_MATERIAL
            - SHIP_XP_MATERIAL
            - SHIP_SKILL_MATERIAL
            - STAT_MOD_SLICING_MATERIAL
            - STAT_MOD_OVERCLOCKING_MATERIAL
            - RELIC_MATERIAL
            - SCRAP_MATERIAL
            - SCRAP_SURPLUS
            - DATACRON_MATERIAL
            - TRACKING_MATERIAL
            - ERA_UPGRADE_MATERIAL
    ModifierLocation:
      type: object
      properties:
        identifier:
          type: string
        type:
          $ref: '#/components/schemas/ModifierLocationType'
    ModifierLocationType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - ModifierLocationType_DEFAULT
            - MODIFIER_LOCATION_CAMPAIGN
            - MODIFIER_LOCATION_GALACTIC_WAR
    AdditionalItemModifier:
      type: object
      properties:
        addedItem:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
    ActionLink:
      type: object
      properties:
        link:
          type: string
        type:
          $ref: '#/components/schemas/ActionLinkType'
    ActionLinkType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - ActionLinkType_DEFAULT
            - INTERNAL
            - EXTERNAL
    GameEventStatus:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - GameEventStatus_DEFAULT
            - EVENT_LOCKED
            - EVENT_UNLOCKED
    SquadType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
            - 13
            - 14
            - 15
            - 16
            - 17
            - 18
            - 19
            - 20
            - 21
            - 22
            - 23
            - 24
            - 25
            - 26
            - 27
            - 28
            - 29
            - 30
            - 31
            - 32
            - 33
            - 34
            - 35
            - 36
            - 37
            - 38
            - 39
            - 40
            - 41
            - 42
            - 43
            - 44
            - 45
            - 46
            - 47
            - 48
            - 49
            - 50
            - 51
            - 52
            - 53
            - 54
            - 55
            - 56
            - 57
            - 58
            - 59
        - type: string
          enum:
            - SquadType_DEFAULT
            - SQUAD_NEUTRAL
            - SQUAD_LIGHT
            - SQUAD_DARK
            - SQUAD_EVENT
            - SQUAD_PVP
            - SQUAD_RESTRICTED
            - SQUAD_SUPPLIED
            - SQUAD_WAR
            - SQUAD_EVENT_01
            - SQUAD_EVENT_02
            - SQUAD_EVENT_03
            - SQUAD_EVENT_04
            - SQUAD_EVENT_05
            - SQUAD_EVENT_06
            - SQUAD_EVENT_07
            - SQUAD_EVENT_08
            - SQUAD_EVENT_09
            - SQUAD_EVENT_10
            - SQUAD_EVENT_11
            - SQUAD_EVENT_12
            - SQUAD_EVENT_13
            - SQUAD_EVENT_14
            - SQUAD_EVENT_15
            - SQUAD_EVENT_16
            - SQUAD_EVENT_17
            - SQUAD_EVENT_18
            - SQUAD_EVENT_19
            - SQUAD_EVENT_20
            - SQUAD_WAR_DEFENSIVE
            - SQUAD_GUILD_RAID
            - SQUAD_STAT_MOD_BATTLES
            - SQUAD_EVENT_DEFENSIVE
            - SQUAD_EVENT_DEFENSIVE_01
            - SQUAD_EVENT_DEFENSIVE_02
            - SQUAD_EVENT_DEFENSIVE_03
            - SQUAD_EVENT_DEFENSIVE_04
            - SQUAD_EVENT_DEFENSIVE_05
            - SQUAD_EVENT_DEFENSIVE_06
            - SQUAD_EVENT_DEFENSIVE_07
            - SQUAD_EVENT_DEFENSIVE_08
            - SQUAD_EVENT_DEFENSIVE_09
            - SQUAD_EVENT_DEFENSIVE_10
            - SQUAD_EVENT_DEFENSIVE_11
            - SQUAD_EVENT_DEFENSIVE_12
            - SQUAD_EVENT_DEFENSIVE_13
            - SQUAD_EVENT_DEFENSIVE_14
            - SQUAD_EVENT_DEFENSIVE_15
            - SQUAD_EVENT_DEFENSIVE_16
            - SQUAD_EVENT_DEFENSIVE_17
            - SQUAD_EVENT_DEFENSIVE_18
            - SQUAD_EVENT_DEFENSIVE_19
            - SQUAD_EVENT_DEFENSIVE_20
            - SQUAD_TERRITORY_WAR_ATTACK
            - SQUAD_TERRITORY_WAR_DEFENSIVE
            - SQUAD_TERRITORY_TOURNAMENT_ATTACK
            - SQUAD_TERRITORY_TOURNAMENT_DEFENSIVE
            - SQUAD_ARCADE_RAID
            - SQUAD_CONQUEST
            - SQUAD_COLISEUM
    GameEventUILocation:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
        - type: string
          enum:
            - GameEventUILocation_DEFAULT
            - GAME_EVENT_UI_LOCATION_TRIALS
            - GAME_EVENT_UI_LOCATION_EVENTS
            - GAME_EVENT_UI_LOCATION_MODS
            - GAME_EVENT_UI_LOCATION_SHIP_TRIALS
            - GAME_EVENT_UI_LOCATION_NONE
            - GAME_EVENT_UI_LOCATION_SEASON_HUB
            - GAME_EVENT_UI_LOCATION_CONQUEST
    ContextualMessageGroup:
      type: object
      properties:
        canDismissWhileHidden:
          type: boolean
        endTime:
          type: integer
          format: int64
        groupId:
          type: string
        isFtue:
          type: boolean
        message:
          type: array
          items:
            $ref: '#/components/schemas/ContextualMessage'
        priority:
          type: integer
          format: int32
        startMessage:
          type: string
        startTime:
          type: integer
          format: int64
    ContextualMessage:
      type: object
      properties:
        actionLink:
          type: string
        actionLinkDef:
          $ref: '#/components/schemas/ActionLink'
        appearEvent:
          type: array
          items:
            type: string
        canDismissWhileHidden:
          type: boolean
        cantinaCharacterDialog:
          $ref: '#/components/schemas/CantinaCharacterDialog'
        characterDialog:
          $ref: '#/components/schemas/CharacterDialog'
        clientRequirement:
          $ref: '#/components/schemas/Requirement'
        dismissEvent:
          type: array
          items:
            type: string
        ftueSubStep:
          type: integer
          format: int32
        hideEvent:
          type: array
          items:
            type: string
        id:
          type: string
        messageContextData:
          $ref: '#/components/schemas/MessageContextData'
        nextMessageId:
          type: string
        nextMessageIdDecline:
          type: string
        pointAt:
          $ref: '#/components/schemas/PointAtElement'
        showExitButton:
          type: boolean
        storePromoDialog:
          $ref: '#/components/schemas/StorePromoDialog'
        textKey:
          type: string
        titleKey:
          type: string
        type:
          $ref: '#/components/schemas/ContextualMessageType'
    ContextualMessageType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
        - type: string
          enum:
            - ContextualMessageType_DEFAULT
            - POINT_AT_VIEW_ELEMENT
            - CHARACTER_DIALOG
            - MODAL_DIALOG_ONE_BUTTON
            - MODAL_DIALOG_TWO_BUTTON
            - CANTINA_CHARACTER_DIALOG
            - UNIT_UNLOCK
            - STORE_PROMO_DIALOG
            - CHALLENGE_QUEST_REWARDS
            - RETURNING_USER_EXPERIENCE_DIALOG
            - REWARD_PREVIEW_DIALOG
    PointAtElement:
      type: object
      properties:
        bartenderTexture:
          type: string
        clamp:
          type: boolean
        delaySeconds:
          type: number
          format: float
        elementId:
          type: string
        imageHeight:
          type: integer
          format: int32
        imageOffsetX:
          type: integer
          format: int32
        imageOffsetY:
          type: integer
          format: int32
        imageSource:
          type: string
        imageWidth:
          type: integer
          format: int32
        offsetX:
          type: integer
          format: int32
        offsetY:
          type: integer
          format: int32
        pointerType:
          $ref: '#/components/schemas/PointerType'
        rotation:
          type: number
          format: float
        rotationBehavior:
          $ref: '#/components/schemas/PointAtRotationBehavior'
        scrimBlocking:
          type: boolean
        scrimVisible:
          type: boolean
        showArrow:
          type: boolean
        showBartender:
          type: boolean
        showHighlight:
          type: boolean
        showText:
          type: boolean
        tapDismiss:
          type: boolean
        textOffsetAnchor:
          type: string
        textOffsetX:
          type: integer
          format: int32
        textOffsetY:
          type: integer
          format: int32
        update:
          type: boolean
    PointAtRotationBehavior:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - PointAtRotationBehavior_DEFAULT
            - ROTATION_BEHAVIOR_NONE
            - ROTATION_BEHAVIOR_AUTO_FROM_CENTER
            - ROTATION_BEHAVIOR_AUTO_FROM_CENTER_IF_CLAMPED
    PointerType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - PointerType_DEFAULT
            - POINT
            - CLICK
            - SWIPE
    Requirement:
      type: object
      properties:
        descKey:
          type: string
        evalType:
          $ref: '#/components/schemas/EvaluationType'
        id:
          type: string
        requirementItem:
          type: array
          items:
            $ref: '#/components/schemas/RequirementItem'
    EvaluationType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - EvaluationType_DEFAULT
            - AND
            - OR
    RequirementItem:
      type: object
      properties:
        dateParam:
          type: integer
          format: int64
        id:
          type: string
        locKey:
          type: string
        negate:
          type: boolean
        rosterUnitType:
          $ref: '#/components/schemas/RosterUnitType'
        type:
          $ref: '#/components/schemas/RequirementType'
        value:
          type: integer
          format: int32
    RequirementType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 3
            - 10
            - 11
            - 12
            - 13
            - 14
            - 15
            - 16
            - 19
            - 20
            - 22
            - 23
            - 24
            - 25
            - 26
            - 27
            - 28
            - 29
            - 30
            - 31
            - 32
            - 33
            - 34
            - 35
            - 36
            - 37
            - 38
            - 39
            - 40
            - 41
            - 42
            - 43
            - 44
            - 45
            - 46
            - 47
            - 48
            - 49
            - 50
            - 51
            - 52
            - 53
            - 54
            - 55
            - 56
            - 57
            - 58
            - 59
            - 60
            - 61
            - 62
            - 63
            - 64
            - 65
            - 66
            - 67
            - 68
            - 69
            - 70
            - 71
            - 72
            - 73
            - 74
            - 75
            - 76
            - 77
            - 78
            - 79
            - 80
            - 81
            - 82
            - 83
            - 84
            - 85
            - 86
            - 87
            - 88
            - 89
            - 90
            - 91
            - 92
            - 93
            - 94
            - 95
            - 96
            - 97
            - 98
            - 99
            - 100
            - 101
            - 102
            - 103
            - 104
            - 105
            - 106
            - 107
            - 108
            - 109
            - 110
            - 111
            - 112
            - 113
            - 114
            - 115
            - 116
            - 117
            - 118
            - 119
            - 120
            - 121
            - 122
            - 123
            - 135
            - 136
            - 137
            - 138
            - 139
            - 140
            - 141
            - 142
            - 143
            - 144
        - type: string
          enum:
            - RequirementType_DEFAULT
            - CURRENCY_REQUIREMENT
            - ROSTER_CHARACTER_NOT_CATEGORY_NOT_IN_SQUAD_REQUIREMENT
            - SQUAD_SIZE_MAXIMUM_REQUIREMENT
            - ROSTER_CHARACTER_CATEGORY_NOT_IN_USE_REQUIREMENT
            - ROSTER_CHARACTER_NOT_IN_USE_REQUIREMENT
            - SQUAD_SIZE_MINIMUM_REQUIREMENT
            - ENEMY_THREAT_LEVEL_REQUIREMENT
            - ANY_CHARACTER_READY_FOR_PROMOTION
            - UNIT_TRAINING_AVAILABLE
            - PLAYER_LEVEL_MIN_REQUIREMENT
            - ROSTER_UNIT_TYPE_REQUIREMENT
            - ROSTER_UNIT_TYPE_MAX_REQUIREMENT
            - UNIT_ABILITY_UPGRADE_AVAILABLE
            - UNIT_GEAR_EQUIP_AVAILABLE
            - CURRENT_UNIT_GEAR_EQUIP_AVAILABLE
            - PLAYER_UNIT_HEALTH_BELOW_PERCENT
            - REQUIREMENT_INVALID
            - CURRENT_CHARACTER_READY_FOR_PROMOTION
            - BATTLE_ANY_STATUS_EFFECT_ACTIVE
            - STORE_ITEM_AVAILABLE_FOR_PURCHASE
            - CURRENT_MISSION_HAS_GEAR_DROP
            - PLAYER_LEVEL_MAX_REQUIREMENT
            - CAMPAIGN_REQUIREMENT
            - ANY_DAILY_ACTIVITY_READY_FOR_CLAIM
            - FACEBOOK_LOGIN_AVAILABLE
            - ANY_UNIT_REACHED_MAX_RARITY
            - CURRENT_CHARACTER_READY_FOR_TIER_UP
            - EVENT_ACTIVE
            - BATTLE_ANY_UNIT_HAS_SHIELD
            - CURRENT_CHARACTER_MIN_TIER
            - UNIT_LEVEL_MAX_REQUIREMENT
            - UNIT_LEVEL_MIN_REQUIREMENT
            - ROSTER_UNIT_REQUIREMENT
            - UNIT_SHARD_REQUIREMENT
            - ROSTER_UNIT_COMBAT_TYPE_REQUIREMENT
            - BATTLE_TURN_COUNT
            - BATTLE_ENCOUNTER_STARTED
            - BATTLE_UNIT_TURN_SQUAD_CELL_INDEX
            - ROSTER_UNIT_CLASS_REQUIREMENT
            - SHIPS_UNLOCKED
            - UNIT_HAS_ALLY_ABILITY_REQUIREMENT
            - UNIT_HAS_REINFORCEMENT_ABILITY_READY
            - REINFORCEMENT_SLOT_AVAILABLE
            - ROSTER_CAN_BUILD_VALID_SQUAD_REQUIREMENT
            - BATTLE_ACTIVE_COMBAT_TYPE
            - BATTLE_PLAYER_UNIT_ABILITY_CAN_BE_ACTIVATED
            - BATTLE_TURN_OWNER
            - ROSTER_UNIT_NOT_OWNED_REQUIREMENT
            - UNIT_UNLOCK_REQUIREMENT
            - GUILD_TERRITORY_MAP_CONFLICT_COMPLETED
            - GUILD_TERRITORY_RECON_SCORE_MIN
            - GUILD_TERRITORY_RECON_SCORE_MAX
            - UNIT_DEPLOY_REQUIREMENT
            - GUILD_TERRITORY_ZONE_STATUS
            - TERRITORY_WAR_EVENT_AVAILABLE
            - CHALLENGE_QUEST_REWARDS_PENDING
            - QUEST_COMPLETE_REQUIREMENT
            - GRAND_ARENA_EVENT_ACTIVE
            - GUILD_STAT_REQUIREMENT
            - GUILD_CAMPAIGN_WIN_REQUIREMENT
            - GUILD_GALACTIC_POWER_MIN
            - AUTO_BATTLE_INACTIVE
            - AUTO_BATTLE_ACTIVE
            - BATTLE_NOT_PAUSED
            - BATTLE_SETTINGS_CLOSED
            - SEASONS_MAX_DIVISION
            - SEASONS_MIN_DIVISION
            - SEASONS_IN_DIVISION
            - SEASONS_MAX_LEAGUE
            - SEASONS_MIN_LEAGUE
            - SEASONS_IN_LEAGUE
            - PLAYER_PORTRAIT_OWNED
            - SEASONS_EQUAL_HIGHEST_LIFETIME_LEAGUE
            - SEASONS_MAX_HIGHEST_LIFETIME_LEAGUE
            - SEASONS_MIN_HIGHEST_LIFETIME_LEAGUE
            - EQUIPMENT_OWNED_COUNT
            - RELIC_UNLOCK_AVAILABLE
            - MESSAGE_GROUP_AVAILABLE
            - REQUIREMENT
            - DAYS_SINCE_INSTALL_MIN_REQUIREMENT
            - DAYS_SINCE_INSTALL_MAX_REQUIREMENT
            - UNIT_MIN_RELIC_LEVEL
            - ANY_UNIT_MIN_RELIC_LEVEL
            - GALACTIC_BUNDLE_REQUIREMENT
            - UNIT_MIN_GALACTIC_POWER
            - UNIT_MAX_GALACTIC_POWER
            - OWNED_UNIT_MAX_RARITY
            - EVENT_COMPLETED_REQUIREMENT
            - GALACTIC_POWER_HIGHWATERMARK_REQUIREMENT
            - PLAYER_IS_ELIGIBLE_FOR_ACTIVE_TERRITORY_BATTLE
            - TERRITORY_BATTLE_MIN_ROUND
            - TERRITORY_BATTLE_MAX_ROUND
            - RAID_ACTIVE_REQUIREMENT
            - CHALLENGE_REQUIREMENT
            - PLAYER_IN_GUILD_REQUIREMENT
            - EVENT_MISSIONS_VIEW_VISIBLE
            - FIND_FLOW_FIRST_TIME_REWARD
            - CAMPAIGN_TIMES_COMPLETED
            - CURRENT_CHARACTER_READY_FOR_ABILITY_UPGRADE
            - CONQUEST_ACTIVE_EVENT_JOINED
            - LOGIN_CALENDAR_ACTIVE
            - GALACTIC_LEGENDS_OWNED_MIN
            - DATACRONS_OWNED_MIN
            - UNIT_OWNED_SHARD_REQUIREMENT
            - WIN_MISSION_N_TIMES
            - FILL_SPECIFIC_PLATOON
            - CONQUEST_PASS_OWNED
            - CACHED_EPISODE_PASS_OWNED
            - CACHED_EPISODE_PASS_PLUS_OWNED
            - CACHED_EPISODE_STATUS_ACTIVE
            - DATACRON_SET_OWNED_MIN_LEVEL
            - DATACRON_TEMPLATE_OWNED_MIN_LEVEL
            - GUILD_JOIN_TIME_REQUIREMENT
            - RECENT_BATTLE
            - ERA_UNIT_LEVEL_MIN_REQUIREMENT
            - TOTAL_ERA_LEVEL_MIN_REQUIREMENT
            - PLAYER_LAPSED_DURATION_DAYS
            - UNIT_GUIDE_UNITS_MIN_RARITY
            - PLAYER_DAYS_SINCE_RETURN
            - PLAYER_LAPSED_ON_OR_AFTER_DATE
            - PLAYER_LAPSED_DURATION_MIN_DAYS
            - PLAYER_LAPSED_DURATION_MAX_DAYS
    RosterUnitType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 99
        - type: string
          enum:
            - ROSTER_LEGACY
            - ROSTER_ERA
            - ROSTER_ALL
    CharacterDialog:
      type: object
      properties:
        animations:
          type: array
          items:
            type: string
        audioKey:
          type: string
        characterPrefab:
          type: string
        layout:
          type: string
        useHologramEffect:
          type: boolean
    CantinaCharacterDialog:
      type: object
      properties:
        texture:
          type: string
    StorePromoDialog:
      type: object
      properties:
        buttonKey:
          type: string
        descriptionTexture:
          type: string
        showPrice:
          type: boolean
        storeItemId:
          type: string
    MessageContextData:
      type: object
      properties:
        rewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
    Environment:
      type: object
      properties:
        layout:
          type: string
        layoutPrefab:
          type: string
        prefab:
          type: string
    CombatType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - CombatType_DEFAULT
            - CHARACTER
            - SHIP
    Feat:
      type: object
      properties:
        challengeId:
          type: string
    GameEventDetailsType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - GameEventDetailsType_DEFAULT
            - EVENT_DEFAULT
            - EVENT_MODULAR
            - EVENT_MARQUEE
    UnitDef:
      type: object
      properties:
        actionCountMax:
          type: integer
          format: int32
        actionCountMin:
          type: integer
          format: int32
        associatedEventId:
          type: string
        baseId:
          type: string
        basePower:
          type: integer
          format: int32
        baseStat:
          $ref: '#/components/schemas/StatDef'
        basicAttack:
          $ref: '#/components/schemas/Ability'
        basicAttackRef:
          $ref: '#/components/schemas/AbilityReference'
        battlePortraitNameKey:
          type: string
        battlePortraitPrefab:
          type: string
        battlePortraitTexture:
          type: string
        big:
          type: boolean
        capitalUnlockKey:
          type: string
        categoryId:
          type: array
          items:
            type: string
        combatType:
          $ref: '#/components/schemas/CombatType'
        commandCost:
          type: integer
          format: int32
        creationRecipeReference:
          type: string
        crew:
          type: array
          items:
            $ref: '#/components/schemas/CrewMember'
        crewContributionTableId:
          type: string
        descKey:
          type: string
        effectIconPriorityOverride:
          type: array
          items:
            type: string
        eraThumbnailName:
          type: string
        exampleSquad:
          type: array
          items:
            $ref: '#/components/schemas/RecommendedSquad'
        featuredEndTime:
          type: integer
          format: int64
        forceAlignment:
          $ref: '#/components/schemas/ForceAlignment'
        grantStartTime:
          type: integer
          format: int64
        hideInTurnOrder:
          type: boolean
        id:
          type: string
        leaderAbility:
          $ref: '#/components/schemas/Ability'
        leaderAbilityRef:
          $ref: '#/components/schemas/AbilityReference'
        legend:
          type: boolean
        limitBreak:
          type: array
          items:
            $ref: '#/components/schemas/Ability'
        limitBreakRef:
          type: array
          items:
            $ref: '#/components/schemas/AbilityReference'
        loanedUnit:
          type: boolean
        maxLevelOverride:
          type: integer
          format: int32
        maxRarity:
          $ref: '#/components/schemas/Rarity'
        modRecommendation:
          type: array
          items:
            $ref: '#/components/schemas/UnitModRecommendation'
        nameKey:
          type: string
        obtainable:
          type: boolean
        obtainableTime:
          type: integer
          format: int64
        primaryStat:
          type: string
        primaryUnitStat:
          $ref: '#/components/schemas/UnitStat'
        promotionRecipeReference:
          type: string
        rarity:
          $ref: '#/components/schemas/Rarity'
        relicDefinition:
          $ref: '#/components/schemas/RelicDefinition'
        requireUltimateUnlock:
          type: boolean
        skillReference:
          type: array
          items:
            $ref: '#/components/schemas/SkillDefinitionReference'
        squadPositionPriority:
          type: integer
          format: int32
        statProgressionId:
          type: string
        summonStatTable:
          type: array
          items:
            $ref: '#/components/schemas/SummonStatTable'
        threatLevel:
          $ref: '#/components/schemas/ThreatLevel'
        thumbImageTurnOrder:
          type: string
        thumbnailName:
          type: string
        trainingCostMultiplierOverride:
          type: integer
          format: int32
        trainingXpWorthBaseValueOverride:
          type: integer
          format: int32
        uniqueAbility:
          type: array
          items:
            $ref: '#/components/schemas/Ability'
        uniqueAbilityRef:
          type: array
          items:
            $ref: '#/components/schemas/AbilityReference'
        unitClass:
          $ref: '#/components/schemas/UnitClass'
        unitPrefab:
          type: string
        unitTier:
          type: array
          items:
            $ref: '#/components/schemas/UnitTierDef'
        xpTableId:
          type: string
    ForceAlignment:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - ForceAlignment_DEFAULT
            - NEUTRAL
            - LIGHT
            - DARK
    ThreatLevel:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
        - type: string
          enum:
            - ThreatLevel_DEFAULT
            - NORMAL
            - ELITE
            - BOSS
            - ANY
            - SUMMON
    SkillDefinitionReference:
      type: object
      properties:
        requiredRarity:
          $ref: '#/components/schemas/Rarity'
        requiredRelicTier:
          $ref: '#/components/schemas/RelicTier'
        requiredTier:
          $ref: '#/components/schemas/UnitTier'
        skillId:
          type: string
    StatDef:
      type: object
      properties:
        stat:
          type: array
          items:
            $ref: '#/components/schemas/Stat'
    UnitTierDef:
      type: object
      properties:
        baseStat:
          $ref: '#/components/schemas/StatDef'
        equipmentSet:
          type: array
          items:
            type: string
        tier:
          $ref: '#/components/schemas/UnitTier'
    Ability:
      type: object
      properties:
        abilityType:
          $ref: '#/components/schemas/AbilityType'
        aiParams:
          $ref: '#/components/schemas/AbilityAIParams'
        allyTargetingRuleId:
          type: string
        alwaysDisplayInBattleUi:
          type: boolean
        applyTypeTooltipKey:
          type: string
        blockedLocKey:
          type: string
        blockingEffectId:
          type: string
        buttonLocation:
          $ref: '#/components/schemas/AbilityButtonLocationType'
        confirmationMessage:
          $ref: '#/components/schemas/MessageDialog'
        cooldown:
          type: integer
          format: int32
        cooldownType:
          $ref: '#/components/schemas/AbilityCooldownType'
        descKey:
          type: string
        descriptiveTag:
          type: array
          items:
            $ref: '#/components/schemas/EffectTag'
        detailLocation:
          $ref: '#/components/schemas/UnitDetailsAbilityLocation'
        effectReference:
          type: array
          items:
            $ref: '#/components/schemas/EffectReference'
        grantedPriority:
          type: integer
          format: int32
        hideCooldownDescription:
          type: boolean
        highlightWhenReadyInBattleUi:
          type: boolean
        icon:
          type: string
        id:
          type: string
        interactsWithTag:
          type: array
          items:
            $ref: '#/components/schemas/EffectTag'
        nameKey:
          type: string
        prefabName:
          type: string
        shortDescKey:
          type: string
        stackingLineOverride:
          type: string
        subIcon:
          type: string
        synergy:
          $ref: '#/components/schemas/AbilitySynergy'
        tier:
          type: array
          items:
            $ref: '#/components/schemas/AbilityTier'
        triggerCondition:
          type: array
          items:
            $ref: '#/components/schemas/BattleCondition'
        ultimateChargeRequired:
          type: array
          items:
            type: integer
            format: int32
        useAsReinforcementDesc:
          type: boolean
        visualTarget:
          $ref: '#/components/schemas/EffectTarget'
    BattleCondition:
      type: object
      properties:
        conditionType:
          $ref: '#/components/schemas/ConditionType'
        conditionValue:
          type: string
        priority:
          type: integer
          format: int32
    ConditionType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
            - 13
            - 14
            - 15
            - 16
            - 17
            - 18
            - 19
            - 20
            - 21
            - 22
            - 23
            - 24
            - 25
            - 26
            - 27
            - 28
            - 29
            - 30
            - 31
            - 32
            - 33
            - 34
            - 35
            - 36
            - 37
            - 38
            - 39
            - 40
            - 41
            - 42
            - 43
            - 44
            - 45
            - 46
            - 47
            - 48
            - 49
            - 50
            - 51
            - 52
            - 53
            - 54
            - 55
            - 56
            - 57
            - 58
            - 59
            - 60
            - 61
            - 62
            - 63
            - 64
            - 65
            - 66
            - 67
            - 68
            - 69
            - 70
            - 71
            - 72
            - 73
            - 74
            - 75
            - 76
            - 77
            - 78
            - 79
            - 80
            - 83
            - 84
            - 85
            - 86
            - 87
            - 88
            - 89
            - 90
            - 91
            - 92
            - 93
            - 94
            - 95
            - 96
            - 97
            - 98
            - 99
            - 100
            - 101
            - 102
            - 103
            - 104
            - 105
        - type: string
          enum:
            - ConditionType_DEFAULT
            - ROUND_COUNT
            - END_OF_ROUND
            - START_OF_ROUND
            - START_OF_BATTLE
            - CHANCE
            - START_OF_ENCOUNTER
            - CRIT
            - RECEIVE_CRIT
            - PERFORM_MOVE
            - ATTACK
            - LIMIT_BREAK
            - RECEIVE_DAMAGE
            - RECEIVE_HEAL
            - COMBO
            - RECEIVE_COMBO
            - KILL
            - REVIVE
            - ENEMY_KILLED
            - ALLY_KILLED
            - DEATH
            - ALLY_REVIVED
            - ENEMY_REVIVED
            - END_OF_ENCOUNTER
            - START_OF_TURN
            - HEALTH_DECREASE
            - HEALTH_INCREASE
            - PERSISTENT_EFFECT_ADD
            - PERSISTENT_EFFECT_REMOVE
            - DODGED
            - WAS_DODGED
            - END_OF_TURN
            - RESISTED
            - WAS_RESISTED
            - START_MOVE
            - START_ATTACK
            - START_LIMIT_BREAK
            - PRE_EFFECT_EVAL
            - RECEIVE_PRE_EFFECT_EVAL
            - POST_EFFECT_EVAL
            - RECEIVE_POST_EFFECT_EVAL
            - PRE_EVASION_EVAL
            - RECEIVE_PRE_EVASION_EVAL
            - POST_EVASION_EVAL
            - RECEIVE_POST_EVASION_EVAL
            - START_OF_GUILD_RAID_FOR_PLAYER
            - START_OF_GUILD_RAID_ENCOUNTER_FOR_PLAYER
            - PRE_RECEIVE_DAMAGE
            - FULL_TURN_COMPLETE
            - PERSISTENT_EFFECT_ADD_INSTANCE
            - PERSISTENT_EFFECT_REMOVE_INSTANCE
            - FLED
            - ALLY_FLED
            - ENEMY_FLED
            - REINFORCED
            - ALLY_REINFORCED
            - ENEMY_REINFORCED
            - DEAL_DAMAGE
            - PERSISTENT_EFFECT_INFLICTED
            - PERSISTENT_EFFECT_INFLICTED_INSTANCE
            - DODGED_POST_EVASION_EVAL
            - HEALTH_MAX_LIMIT_REACHED
            - HEALTH_MIN_LIMIT_REACHED
            - RECEIVE_PROTECTION_HEAL
            - BONUS_SPEED_GAIN
            - BONUS_SPEED_REMOVE
            - RECEIVE_PROTECTION_HEAL_ACTUAL
            - BONUS_SPEED_GAIN_ACTUAL
            - BONUS_SPEED_REMOVE_ACTUAL
            - RECEIVE_HEAL_ACTUAL
            - PRE_DAMAGE
            - SUMMONED
            - ALLY_SUMMONED
            - ENEMY_SUMMONED
            - ULTIMATE_CHARGE_INCREASED
            - ULTIMATE_CHARGE_DECREASED
            - ULTIMATE_THRESHOLD_GAINED
            - ULTIMATE_THRESHOLD_LOST
            - ALLY_TRANSFORMED
            - ENEMY_TRANSFORMED
            - PERSISTENT_EFFECT_DISPELLED
            - PERSISTENT_EFFECT_DISPELLED_INSTANCE
            - PERSISTENT_EFFECT_WAS_DISPELLED_INSTANCE
            - PERSISTENT_EFFECT_WAS_DISPELLED
            - ALLY_PERSISTENT_EFFECT_ADD
            - ALLY_PERSISTENT_EFFECT_ADD_INSTANCE
            - ENEMY_PERSISTENT_EFFECT_ADD
            - ENEMY_PERSISTENT_EFFECT_ADD_INSTANCE
            - ALLY_PERSISTENT_EFFECT_REMOVE
            - ALLY_PERSISTENT_EFFECT_REMOVE_INSTANCE
            - ENEMY_PERSISTENT_EFFECT_REMOVE
            - ENEMY_PERSISTENT_EFFECT_REMOVE_INSTANCE
            - OWNERSHIP_MODIFIED
            - ALLY_OWNERSHIP_MODIFIED
            - ENEMY_OWNERSHIP_MODIFIED
            - BLACKBOARD_MIN_LIMIT_REACHED
            - BLACKBOARD_MAX_LIMIT_REACHED
            - BLACKBOARD_INCREASED
            - BLACKBOARD_DECREASED
            - SQUAD_BLACKBOARD_MIN_LIMIT_REACHED
            - SQUAD_BLACKBOARD_MAX_LIMIT_REACHED
            - SQUAD_BLACKBOARD_INCREASED
            - SQUAD_BLACKBOARD_DECREASED
    AbilityTier:
      type: object
      properties:
        blockedLocKey:
          type: string
        blockingEffectId:
          type: string
        cooldownMaxOverride:
          type: integer
          format: int32
        descKey:
          type: string
        effectReference:
          type: array
          items:
            $ref: '#/components/schemas/EffectReference'
        interactsWithTag:
          type: array
          items:
            $ref: '#/components/schemas/EffectTag'
        upgradeDescKey:
          type: string
    EffectReference:
      type: object
      properties:
        contextIndex:
          type: array
          items:
            type: integer
            format: int32
        id:
          type: string
        maxBonusMove:
          type: integer
          format: int32
    EffectTag:
      type: object
      properties:
        exclude:
          type: boolean
        tag:
          type: string
    MessageDialog:
      type: object
      properties:
        descKey:
          type: string
        titleKey:
          type: string
    AbilityButtonLocationType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
        - type: string
          enum:
            - AbilityButtonLocationType_DEFAULT
            - ABILITY_STANDARD
            - ABILITY_ADDITIONAL
            - ABILITY_HIDDEN
            - ABILITY_SECOND_STANDARD
    AbilityType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 7
            - 8
            - 9
            - 10
            - 11
        - type: string
          enum:
            - AbilityType_DEFAULT
            - ABILITY_ACTIVATED
            - ABILITY_PASSIVE
            - ABILITY_REINFORCEMENT
            - ABILITY_ACTIVATED_ALLY_SELECT
            - ABILITY_HARDWARE
    UnitDetailsAbilityLocation:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
        - type: string
          enum:
            - UnitDetailsAbilityLocation_DEFAULT
            - ABILITY_LOCATION_NORMAL
            - ABILITY_LOCATION_ADVANCED
            - ABILITY_LOCATION_CREW
            - ABILITY_LOCATION_HIDDEN
    AbilityAIParams:
      type: object
      properties:
        preferredAllyTargetingRuleId:
          type: string
        preferredAllyTargetingRuleIdList:
          type: array
          items:
            type: string
        preferredEnemyTargetingRuleId:
          type: string
        preferredEnemyTargetingRuleIdList:
          type: array
          items:
            type: string
        requireAllyTargets:
          type: boolean
        requireEnemyPreferredTargets:
          type: boolean
    AbilityCooldownType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - AbilityCooldownType_DEFAULT
            - ABILITY_COOLDOWN_TURN_BASED
            - ABILITY_COOLDOWN_SPEED_BASED
    AbilitySynergy:
      type: object
      properties:
        groupedCategoryId:
          type: array
          items:
            type: string
        separateCategoryId:
          type: array
          items:
            type: string
    EffectTarget:
      type: object
      properties:
        activeEffectTagCriteria:
          type: array
          items:
            $ref: '#/components/schemas/EffectTagCriteria'
        battleDeploymentState:
          $ref: '#/components/schemas/BattleDeploymentState'
        battleSide:
          $ref: '#/components/schemas/EffectTargetBattleSide'
        category:
          $ref: '#/components/schemas/EffectTargetCategoryCriteria'
        excludeSelectedTarget:
          type: boolean
        excludeSelf:
          type: boolean
        forceAlignment:
          type: array
          items:
            $ref: '#/components/schemas/ForceAlignment'
        healthState:
          $ref: '#/components/schemas/UnitHealthState'
        id:
          type: string
        requiredActiveEffectTagCriteria:
          type: array
          items:
            $ref: '#/components/schemas/EffectTagCriteria'
        requiredCategory:
          $ref: '#/components/schemas/EffectTargetCategoryCriteria'
        statValue:
          type: array
          items:
            $ref: '#/components/schemas/StatValueRange'
        unitClass:
          type: array
          items:
            $ref: '#/components/schemas/UnitClass'
        unitSelect:
          $ref: '#/components/schemas/EffectTargetUnitSelect'
    EffectTargetUnitSelect:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
        - type: string
          enum:
            - EffectTargetUnitSelect_DEFAULT
            - SELECT_ALL
            - SELECTED_TARGET
            - SELECT_RANDOM
            - SELECT_SELF
            - SELECT_PREVIOUS
            - SELECT_LAST_REINFORCEMENT
            - SELECT_LOWEST_SURVIVABILITY
            - SELECT_HIGHEST_SURVIVABILITY
            - SELECT_LEADER
            - SELECT_SUPPORT
            - SELECT_LAST_SUMMON
    EffectTargetBattleSide:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
        - type: string
          enum:
            - EffectTargetBattleSide_DEFAULT
            - BOTH_SIDES
            - ALLY_SIDE
            - ENEMY_SIDE
            - PLAYER_SIDE
            - OPPONENT_SIDE
    UnitClass:
      oneOf:
        - type: integer
          enum:
            - 0
            - 6
            - 7
        - type: string
          enum:
            - UnitClass_DEFAULT
            - UNITCLASS_STANDARD
            - UNITCLASS_COMMANDER
    EffectTargetCategoryCriteria:
      type: object
      properties:
        category:
          type: array
          items:
            $ref: '#/components/schemas/EffectTargetCategory'
        categoryId:
          type: array
          items:
            type: string
        exclude:
          type: boolean
    EffectTargetCategory:
      type: object
      properties:
        categoryId:
          type: string
        exclude:
          type: boolean
    UnitHealthState:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - UnitHealthState_DEFAULT
            - UNIT_HEALTH_STATE_ANY
            - UNIT_HEALTH_STATE_ALIVE
            - UNIT_HEALTH_STATE_DEAD
    StatValueRange:
      type: object
      properties:
        battleStat:
          $ref: '#/components/schemas/BattleUnitStateStat'
        max:
          $ref: '#/components/schemas/StatValueRangeNumber'
        min:
          $ref: '#/components/schemas/StatValueRangeNumber'
        stat:
          $ref: '#/components/schemas/UnitStat'
    BattleUnitStateStat:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
        - type: string
          enum:
            - BattleUnitStateStat_DEFAULT
            - BATTLE_UNIT_STAT_UNDEFINED
            - BATTLE_UNIT_STAT_HEALTH
            - BATTLE_UNIT_STAT_HEALTH_PERCENT
            - BATTLE_UNIT_STAT_SPEED_FILL
            - BATTLE_UNIT_STAT_SPEED_FILL_PERCENT
            - BATTLE_UNIT_STAT_SHIELD_PERCENT
    StatValueRangeNumber:
      type: object
      properties:
        inclusive:
          type: boolean
        value:
          type: integer
          format: int32
    EffectTagCriteria:
      type: object
      properties:
        exclude:
          type: boolean
        tag:
          type: string
    BattleDeploymentState:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - BattleDeploymentState_DEFAULT
            - BATTLE_DEPLOYMENT_STATE_ANY
            - BATTLE_DEPLOYMENT_STATE_DEPLOYED
            - BATTLE_DEPLOYMENT_STATE_REINFORCEMENT
    AbilityReference:
      type: object
      properties:
        abilityId:
          type: string
        inheritMappingId:
          type: string
        overrideAlwaysDisplayInBattleUi:
          type: boolean
        overrideDescKey:
          type: string
        overrideIcon:
          type: string
        overrideNameKey:
          type: string
        powerAdditiveTag:
          type: string
        requiredRarity:
          $ref: '#/components/schemas/Rarity'
        requiredRelicTier:
          $ref: '#/components/schemas/RelicTier'
        requiredSkillTier:
          type: integer
          format: int32
        requiredTier:
          $ref: '#/components/schemas/UnitTier'
        unlockRecipeId:
          type: string
    CrewMember:
      type: object
      properties:
        skillReference:
          type: array
          items:
            $ref: '#/components/schemas/SkillDefinitionReference'
        skilllessCrewAbilityId:
          type: string
        slot:
          type: integer
          format: int32
        unitId:
          type: string
    UnitModRecommendation:
      type: object
      properties:
        recommendationSetId:
          type: string
        unitTier:
          $ref: '#/components/schemas/UnitTier'
    SummonStatTable:
      type: object
      properties:
        rarity:
          $ref: '#/components/schemas/Rarity'
        statTable:
          type: string
    RelicDefinition:
      type: object
      properties:
        alignmentColorOverride:
          type: string
        nameKey:
          type: string
        relicTierDefinitionId:
          type: array
          items:
            type: string
        texture:
          type: string
        upgradeTableId:
          type: string
    RecommendedSquad:
      type: object
      properties:
        actionLink:
          $ref: '#/components/schemas/ActionLink'
        descriptionKey:
          type: string
        hideRequirement:
          $ref: '#/components/schemas/Requirement'
        id:
          type: string
        name:
          type: string
        showRequirement:
          $ref: '#/components/schemas/Requirement'
        thumbnail:
          type: string
        unitDefId:
          type: array
          items:
            type: string
    BattleEnvironment:
      type: object
      properties:
        audioPackage:
          type: array
          items:
            type: string
        prefab:
          type: string
    XpTable:
      type: object
      properties:
        id:
          type: string
        row:
          type: array
          items:
            $ref: '#/components/schemas/XpTableRow'
    XpTableRow:
      type: object
      properties:
        index:
          type: integer
          format: int32
        xp:
          type: integer
          format: int32
    CraftingMaterialDef:
      type: object
      properties:
        actionLinkLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupActionLink'
        descKey:
          type: string
        iconKey:
          type: string
        id:
          type: string
        lookupMission:
          type: array
          items:
            $ref: '#/components/schemas/LookupMission'
        nameKey:
          type: string
        obtainableTime:
          type: integer
          format: int64
        raidImmediateLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupMission'
        raidLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupMission'
        rarity:
          $ref: '#/components/schemas/Rarity'
        recipeId:
          type: string
        sellValue:
          $ref: '#/components/schemas/CurrencyItem'
        tier:
          $ref: '#/components/schemas/UnitTier'
        trainingCost:
          type: integer
          format: int32
        trainingCostMaxLevel:
          type: integer
          format: int32
        type:
          $ref: '#/components/schemas/MaterialType'
        unitDefReference:
          type: string
        xpValue:
          type: integer
          format: int32
    LookupMission:
      type: object
      properties:
        missionIdentifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        requirementId:
          type: array
          items:
            type: string
    LookupActionLink:
      type: object
      properties:
        actionLink:
          $ref: '#/components/schemas/ActionLink'
        deskKey:
          type: string
    Recipe:
      type: object
      properties:
        craftRequirement:
          $ref: '#/components/schemas/Requirement'
        descKey:
          type: string
        id:
          type: string
        ingredients:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        requiredEraLevel:
          type: integer
          format: int32
        result:
          $ref: '#/components/schemas/BucketItem'
        type:
          $ref: '#/components/schemas/RecipeType'
        unlockLevel:
          type: integer
          format: int32
        viewRequirement:
          $ref: '#/components/schemas/Requirement'
    RecipeType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          enum:
            - RecipeType_DEFAULT
            - RECIPE_INVALID
            - RECIPE_PROMOTION
            - RECIPE_SHIP
            - RECIPE_CONSUMABLE
            - RECIPE_CHARACTER
            - RECIPE_SKILL
            - RECIPE_EQUIPMENT
            - RECIPE_MOD_SLICING
            - RECIPE_MATERIAL
            - RECIPE_RELIC
            - RECIPE_DATACRON
            - RECIPE_ERA_LEVEL
    StatProgression:
      type: object
      properties:
        id:
          type: string
        operation:
          $ref: '#/components/schemas/OperationType'
        stat:
          $ref: '#/components/schemas/StatDef'
    OperationType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - OperationType_DEFAULT
            - ADDITIVE
            - MULTIPLICATIVE
    Category:
      type: object
      properties:
        descKey:
          type: string
        id:
          type: string
        uiFilter:
          type: array
          items:
            $ref: '#/components/schemas/CombatType'
        visible:
          type: boolean
    HelpEntry:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/HelpType'
        tile:
          type: array
          items:
            $ref: '#/components/schemas/HelpTile'
    HelpType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - HelpType_DEFAULT
            - BATTLE
            - SQUAD
            - PROGRESS
    HelpTile:
      type: object
      properties:
        image:
          type: string
        textKey:
          type: string
        titleKey:
          type: string
    Challenge:
      type: object
      properties:
        actionLinkDef:
          $ref: '#/components/schemas/ActionLink'
        claimDisabled:
          type: boolean
        claimDisabledMessageKey:
          type: string
        claimRequirement:
          $ref: '#/components/schemas/Requirement'
        claimType:
          $ref: '#/components/schemas/ChallengeClaimType'
        descKey:
          type: string
        descParameterKey:
          type: array
          items:
            type: string
        detailsKey:
          type: string
        hiddenInMainQuests:
          type: boolean
        id:
          type: string
        messageGroup:
          $ref: '#/components/schemas/ContextualMessageGroup'
        nameKey:
          type: string
        nextChallengeId:
          type: string
        platformAchievementId:
          type: string
        priority:
          type: integer
          format: int32
        reward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        rewardDescKey:
          type: string
        rewardDialogKey:
          type: string
        rewardPoints:
          type: integer
          format: int32
        rewardPopupEnabled:
          type: boolean
        rewardRatio:
          type: number
          format: float
        rewardRedirectToHome:
          type: boolean
        rewardType:
          $ref: '#/components/schemas/ChallengeRewardType'
        starterGuildGraduation:
          type: boolean
        styleId:
          type: string
        task:
          type: array
          items:
            $ref: '#/components/schemas/ChallengeTask'
        type:
          $ref: '#/components/schemas/ChallengeType'
        viewRequirement:
          $ref: '#/components/schemas/Requirement'
    ChallengeType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
        - type: string
          enum:
            - ChallengeType_DEFAULT
            - DAILY_CHALLENGE
            - LIFETIME_CHALLENGE
            - QUEST_CHALLENGE
            - PLAYER_ACTIVATED_CHALLENGE
            - FEAT_CHALLENGE
            - EPISODE_QUEST_BLOCK
            - LOYALTY_MILESTONE
            - CHARACTER_QUEST_BLOCK
            - RETURNING_USER_EXPERIENCE_QUEST
    ChallengeClaimType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - ChallengeClaimType_DEFAULT
            - CHALLENGE_CLAIM_MANUAL
            - CHALLENGE_CLAIM_AUTOMATIC
            - CHALLENGE_CLAIM_DAILY
    ChallengeRewardType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - ChallengeRewardType_DEFAULT
            - CHALLENGE_REWARD_FIXED
            - CHALLENGE_REWARD_RATIO
    ChallengeTask:
      type: object
      properties:
        actionLinkDef:
          $ref: '#/components/schemas/ActionLink'
        descKey:
          type: string
        hideToast:
          type: boolean
        id:
          type: string
        nameKey:
          type: string
    SkillDefinition:
      type: object
      properties:
        abilityReference:
          type: string
        iconKey:
          type: string
        id:
          type: string
        isZeta:
          type: boolean
        nameKey:
          type: string
        omicronMode:
          $ref: '#/components/schemas/OmicronMode'
        skillType:
          $ref: '#/components/schemas/SkillType'
        tier:
          type: array
          items:
            $ref: '#/components/schemas/SkillTierDefinition'
    SkillTierDefinition:
      type: object
      properties:
        isOmicronTier:
          type: boolean
        isZetaTier:
          type: boolean
        powerOverrideTag:
          type: string
        recipeId:
          type: string
        requiredUnitLevel:
          type: integer
          format: int32
        requiredUnitRarity:
          $ref: '#/components/schemas/Rarity'
        requiredUnitRelicTier:
          $ref: '#/components/schemas/RelicTier'
        requiredUnitTier:
          $ref: '#/components/schemas/UnitTier'
    SkillType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - SkillType_DEFAULT
            - UNIT_SKILL
            - CREW_SKILL
    OmicronMode:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
            - 13
            - 14
            - 15
            - 16
            - 17
        - type: string
          enum:
            - OmicronMode_DEFAULT
            - ALL_OMICRON
            - PVE_OMICRON
            - PVP_OMICRON
            - GUILD_RAID_OMICRON
            - TERRITORY_STRIKE_OMICRON
            - TERRITORY_COVERT_OMICRON
            - TERRITORY_BATTLE_BOTH_OMICRON
            - TERRITORY_WAR_OMICRON
            - TERRITORY_TOURNAMENT_OMICRON
            - WAR_OMICRON
            - CONQUEST_OMICRON
            - GALACTIC_CHALLENGE_OMICRON
            - PVE_EVENT_OMICRON
            - TERRITORY_TOURNAMENT_3_OMICRON
            - TERRITORY_TOURNAMENT_5_OMICRON
            - GALACTIC_CHALLENGE_3_OMICRON
            - GALACTIC_CHALLENGE_5_OMICRON
    EventSampling:
      type: object
      properties:
        eventId:
          type: string
        nonSpenderValue:
          type: integer
          format: int32
        spenderValue:
          type: integer
          format: int32
    EquipmentDef:
      type: object
      properties:
        actionLinkLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupActionLink'
        equipmentStat:
          $ref: '#/components/schemas/StatDef'
        findFlowDisabled:
          type: boolean
        iconKey:
          type: string
        id:
          type: string
        lookupMission:
          type: array
          items:
            $ref: '#/components/schemas/LookupMission'
        mark:
          type: string
        nameKey:
          type: string
        obtainableTime:
          type: integer
          format: int64
        raidImmediateLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupMission'
        raidLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupMission'
        recipeId:
          type: string
        requiredLevel:
          type: integer
          format: int32
        requiredRarity:
          $ref: '#/components/schemas/Rarity'
        sellValue:
          $ref: '#/components/schemas/CurrencyItem'
        tier:
          $ref: '#/components/schemas/UnitTier'
        type:
          $ref: '#/components/schemas/EquipmentType'
    EquipmentType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - EquipmentType_DEFAULT
            - EQUIPMENT_EQUIPPABLE
            - EQUIPMENT_UNRELEASED
            - EQUIPMENT_MATERIAL
    WarDef:
      type: object
      properties:
        bracket:
          type: array
          items:
            $ref: '#/components/schemas/WarBracketDef'
        dailyResetCapKey:
          type: string
        difficulty:
          $ref: '#/components/schemas/CampaignNodeDifficulty'
        id:
          type: string
        node:
          type: array
          items:
            $ref: '#/components/schemas/WarNodeDef'
        type:
          $ref: '#/components/schemas/CombatType'
    WarNodeDef:
      type: object
      properties:
        combatType:
          $ref: '#/components/schemas/CombatType'
        id:
          type: string
        position:
          $ref: '#/components/schemas/Position'
        type:
          $ref: '#/components/schemas/WarNodeType'
    WarNodeType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
        - type: string
          enum:
            - WarNodeType_DEFAULT
            - NODETYPE_OPPONENT
            - NODETYPE_CHEST_COMMON
            - NODETYPE_CHEST_RARE
            - NODETYPE_CHEST_EPIC
    Position:
      type: object
      properties:
        x:
          type: string
        'y':
          type: string
        z:
          type: string
    WarBracketDef:
      type: object
      properties:
        max:
          type: integer
          format: int32
        min:
          type: integer
          format: int32
        node:
          type: array
          items:
            $ref: '#/components/schemas/WarNodeDef'
    TargetingSet:
      type: object
      properties:
        id:
          type: string
        weight:
          type: array
          items:
            $ref: '#/components/schemas/TargetingWeight'
    TargetingWeight:
      type: object
      properties:
        param:
          type: string
        type:
          type: string
        valueDecimal:
          type: integer
          format: int32
    Effect:
      type: object
      properties:
        additiveAmountDecimal:
          type: integer
          format: int64
        applyEffectEnabled:
          type: boolean
        applyEffectLabel:
          type: string
        applyType:
          $ref: '#/components/schemas/EffectApplyType'
        blackboardCompareName:
          type: string
        blackboardName:
          type: string
        chance:
          type: integer
          format: int32
        contextIndex:
          type: array
          items:
            type: integer
            format: int32
        contextMultiplierDecimal:
          type: integer
          format: int32
        damageType:
          $ref: '#/components/schemas/EffectDamageType'
        descriptiveTag:
          type: array
          items:
            $ref: '#/components/schemas/EffectTag'
        effectDefinition:
          type: array
          items:
            $ref: '#/components/schemas/Effect'
        effectReference:
          type: array
          items:
            $ref: '#/components/schemas/EffectReference'
        effectedTag:
          type: array
          items:
            $ref: '#/components/schemas/EffectTag'
        expirationCondition:
          type: array
          items:
            $ref: '#/components/schemas/BattleCondition'
        expireOnApplication:
          type: boolean
        iconColor:
          type: string
        id:
          type: string
        ignoreDamageAnimation:
          type: boolean
        infiniteCycleEffect:
          type: array
          items:
            type: string
        maxBonusMoves:
          type: integer
          format: int32
        multiplierAmountDecimal:
          type: integer
          format: int32
        param:
          type: array
          items:
            type: string
        persistentIcon:
          type: string
        persistentIconGroupable:
          type: boolean
        persistentIconOverlay:
          type: string
        persistentIconPriority:
          type: integer
          format: int32
        persistentLocKey:
          type: string
        persistentVfxReference:
          $ref: '#/components/schemas/PersistentVfxReference'
        replaceTableId:
          type: string
        resultVarianceDecimal:
          type: integer
          format: int32
        stackingLineOverride:
          type: string
        summonCount:
          type: integer
          format: int32
        summonEffect:
          type: array
          items:
            $ref: '#/components/schemas/Effect'
        summonEnableInitialVfx:
          type: boolean
        summonEraLevel:
          type: integer
          format: int32
        summonId:
          type: string
        summonLevel:
          type: integer
          format: int32
        summonMarkerIndex:
          type: integer
          format: int32
        summonRarity:
          $ref: '#/components/schemas/Rarity'
        summonSquadIncrease:
          type: integer
          format: int32
        summonTier:
          $ref: '#/components/schemas/UnitTier'
        target:
          type: array
          items:
            $ref: '#/components/schemas/EffectTarget'
        triggerCondition:
          type: array
          items:
            $ref: '#/components/schemas/BattleCondition'
        triggerOnApplication:
          type: boolean
        triggeredLocKey:
          type: string
        triggeredVfx:
          type: string
        type:
          $ref: '#/components/schemas/EffectType'
    EffectType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
            - 13
            - 14
            - 15
            - 16
            - 17
            - 18
            - 19
            - 20
            - 21
            - 22
            - 23
            - 24
            - 25
            - 26
            - 27
            - 28
            - 29
            - 30
            - 31
            - 32
            - 33
            - 34
            - 35
            - 36
            - 37
            - 38
            - 39
            - 40
            - 41
            - 42
            - 43
            - 44
            - 45
            - 46
        - type: string
          enum:
            - EffectType_DEFAULT
            - DAMAGE
            - RECOVER
            - PARALYSIS
            - CURSE
            - DISPELL
            - IMMUNITY
            - BONUS_MOVE
            - MODIFY_STAT
            - APPLY_EFFECT
            - DISTRIBUTE_RECOVERY
            - QUERY_COUNT
            - QUERY_STAT
            - REVIVE_UNIT
            - SCRIPT_COMPONENT
            - FLEE
            - DESTROY
            - REINFORCE
            - GRANT_SHIELD
            - GRANT_ABILITY
            - HEALTH_LIMIT
            - BLACKBOARD_MODIFY
            - BLACKBOARD_QUERY
            - STAT_LIMIT
            - SUMMON_UNIT
            - QUERY_COOLDOWN
            - QUERY_UNIT_VALUE
            - BATTLE_RESOLUTION
            - MODIFY_ULTIMATE_CHARGE
            - MODIFY_DAMAGE
            - FORCE_ABILITY
            - OVERHEAD_DISPLAY
            - QUERY_BATTLE_TYPE
            - MODIFY_RECOVER
            - QUERY_DATACRON_LEVEL
            - SQUAD_BLACKBOARD_MODIFY
            - SQUAD_BLACKBOARD_QUERY
            - MODIFY_COOLDOWN
            - MODIFY_CATEGORY
            - MODIFY_OWNERSHIP
            - BLACKBOARD_COMPARE
            - SQUAD_BLACKBOARD_COMPARE
            - BLACKBOARD_LIMIT
            - SQUAD_BLACKBOARD_LIMIT
            - COPY_EFFECT
            - REPLACE_EFFECT
            - BLACKBOARD_LOOP
    EffectApplyType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - EffectApplyType_DEFAULT
            - UNAVOIDABLE
            - PHYSICAL
            - MENTAL
    EffectDamageType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - EffectDamageType_DEFAULT
            - UNMITIGABLE
            - ATTACK_DAMAGE
            - ABILITY_POWER
    PersistentVfxReference:
      type: object
      properties:
        id:
          type: string
    PowerUpBundle:
      type: object
      properties:
        autoSelectTier:
          type: boolean
        id:
          type: string
        targetGearTier:
          $ref: '#/components/schemas/UnitTier'
        targetLevel:
          type: integer
          format: int32
    GuildBannerDef:
      type: object
      properties:
        color:
          type: array
          items:
            $ref: '#/components/schemas/GuildBannerColorDef'
        logo:
          type: array
          items:
            type: string
        logoDefinition:
          type: array
          items:
            $ref: '#/components/schemas/GuildBannerLogoDef'
    GuildBannerColorDef:
      type: object
      properties:
        backgroundColor:
          type: string
        hidden:
          type: boolean
        id:
          type: string
        tintColor:
          type: string
    GuildBannerLogoDef:
      type: object
      properties:
        hidden:
          type: boolean
        id:
          type: string
        logo:
          type: string
        uiLogo:
          type: string
    GuildRaidConfig:
      type: object
      properties:
        id:
          type: string
        raidDuration:
          type: integer
          format: int64
        raidType:
          $ref: '#/components/schemas/GuildRaidType'
        rosterRefresh:
          $ref: '#/components/schemas/GuildRaidRosterRefresh'
        rosterRefreshType:
          $ref: '#/components/schemas/GuildRaidRosterRefreshType'
    GuildRaidType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - GuildRaidType_DEFAULT
            - RAID_TYPE_PERMANENT
            - RAID_TYPE_TIME_LIMITED
    GuildRaidRosterRefreshType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
        - type: string
          enum:
            - GuildRaidRosterRefreshType_DEFAULT
            - RAID_ROSTER_REFRESH_NONE
            - RAID_ROSTER_REFRESH_SCHEDULED
            - RAID_ROSTER_REFRESH_PURCHASABLE
            - RAID_ROSTER_REFRESH_TIMED
    GuildRaidRosterRefresh:
      type: object
      properties:
        type:
          type: string
        value:
          type: array
          items:
            type: integer
            format: int32
    GuildRaid:
      type: object
      properties:
        audioDefeatKey:
          type: string
        audioVictoryKey:
          type: string
        campaignElementIdentifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        currencyReward:
          type: array
          items:
            type: string
        descKey:
          type: string
        guildRewardsRequireAttempt:
          type: boolean
        iconPrefab:
          type: string
        id:
          type: string
        image:
          type: string
        infoImage:
          type: string
        legacyRaid:
          type: boolean
        lockout:
          $ref: '#/components/schemas/GuildRaidLockout'
        nameKey:
          type: string
        portraitIcon:
          type: string
        priority:
          type: integer
          format: int32
        promotionKey:
          type: string
        raidSim:
          $ref: '#/components/schemas/GuildRaidSim'
        squadType:
          $ref: '#/components/schemas/SquadType'
        summaryKey:
          type: string
    GuildRaidSim:
      type: object
      properties:
        campaignElementIdentifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        requirementId:
          type: string
        simReward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
    GuildRaidLockout:
      type: object
      properties:
        lockoutEndTime:
          type: integer
          format: int64
        lockoutStartTime:
          type: integer
          format: int64
    StatModSetDefinition:
      type: object
      properties:
        completeBonus:
          $ref: '#/components/schemas/StatModSetBonus'
        icon:
          type: string
        id:
          type: string
        maxLevelBonus:
          $ref: '#/components/schemas/StatModSetBonus'
        name:
          type: string
        overclockBonus:
          $ref: '#/components/schemas/StatModSetBonus'
        setCount:
          type: integer
          format: int32
    StatModSetBonus:
      type: object
      properties:
        abilityId:
          type: array
          items:
            type: string
        stat:
          $ref: '#/components/schemas/Stat'
    StatModDefinition:
      type: object
      properties:
        actionLinkLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupActionLink'
        descKey:
          type: string
        id:
          type: string
        levelTableId:
          type: string
        missionLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupMission'
        nameKey:
          type: string
        overclockRecipeTableId:
          type: string
        promotionId:
          type: string
        promotionRecipeId:
          type: string
        raidImmediateLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupMission'
        raidLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupMission'
        rarity:
          $ref: '#/components/schemas/Rarity'
        rerollCapTableId:
          type: string
        setId:
          type: string
        slot:
          $ref: '#/components/schemas/StatModSlot'
        tierUpRecipeTableId:
          type: string
    StatModSlot:
      oneOf:
        - type: integer
          enum:
            - 0
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
        - type: string
          enum:
            - StatModSlot_DEFAULT
            - STATMOD_SLOT_01
            - STATMOD_SLOT_02
            - STATMOD_SLOT_03
            - STATMOD_SLOT_04
            - STATMOD_SLOT_05
            - STATMOD_SLOT_06
    GuildExchangeItem:
      type: object
      properties:
        item:
          $ref: '#/components/schemas/BucketItem'
    Table:
      type: object
      properties:
        id:
          type: string
        row:
          type: array
          items:
            $ref: '#/components/schemas/TableRow'
    TableRow:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
    UnlockAnnouncementDefinition:
      type: object
      properties:
        feature:
          type: string
        interval:
          type: integer
          format: int32
        messageKey:
          type: string
        startOffset:
          type: integer
          format: int32
    TerritoryBattleDefinition:
      type: object
      properties:
        bonusZoneDefinition:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryBonusZoneDefinition'
        commandNotificationCooldownDuration:
          type: integer
          format: int32
        conflictZoneDefinition:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryBattleConflictZoneDefinition'
        covertZoneDefinition:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryCovertZoneDefinition'
        descriptionKey:
          type: string
        detailImage:
          type: string
        dynamicDescription:
          type: array
          items:
            $ref: '#/components/schemas/DynamicDescription'
        environmentNameKey:
          type: string
        environmentPrefab:
          type: string
        forceAlignment:
          $ref: '#/components/schemas/ForceAlignment'
        grantedAbilities:
          type: array
          items:
            $ref: '#/components/schemas/MissionGrantedAbility'
        iconPrefab:
          type: string
        id:
          type: string
        infoImage:
          type: string
        localNotifications:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryLocalNote'
        minMemberLevelForCommandingGuild:
          $ref: '#/components/schemas/GuildMemberLevel'
        minimapPrefab:
          type: string
        nameKey:
          type: string
        prefabName:
          type: string
        rankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        reconZoneDefinition:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryReconZoneDefinition'
        roundCount:
          type: integer
          format: int32
        roundDuration:
          type: integer
          format: int64
        roundTallyDuration:
          type: integer
          format: int32
        searchImage:
          type: string
        statCategory:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryMapStatCategory'
        strikeZoneDefinition:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryStrikeZoneDefinition'
        territoryBattleVersion_3:
          type: boolean
        territoryCategory:
          type: string
    TerritoryBattleConflictZoneDefinition:
      type: object
      properties:
        alternateChaseIcon:
          type: boolean
        combatType:
          $ref: '#/components/schemas/CombatType'
        conflictImage:
          type: string
        flipChaseIconX:
          type: boolean
        flipChaseIconY:
          type: boolean
        forceAlignment:
          $ref: '#/components/schemas/ForceAlignment'
        isBonus:
          type: boolean
        isNewestBonusZone:
          type: boolean
        territoryBattleZoneUnitType:
          $ref: '#/components/schemas/TerritoryBattleZoneUnitType'
        victoryPointRewards:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryRewardBracket'
        zoneDefinition:
          $ref: '#/components/schemas/TerritoryZoneDefinition'
    TerritoryRewardBracket:
      type: object
      properties:
        galacticScoreRequirement:
          type: integer
          format: int64
        reward:
          $ref: '#/components/schemas/TerritoryReward'
        victoryPointReward:
          type: integer
          format: int32
    TerritoryReward:
      type: object
      properties:
        rewardId:
          type: string
        type:
          $ref: '#/components/schemas/TerritoryRewardType'
        value:
          type: integer
          format: int64
    TerritoryRewardType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - TerritoryRewardType_DEFAULT
            - GALACTIC_SCORE
            - VICTORY_POINT
            - MYSTERY_BOX_CONFLICT
    TerritoryZoneDefinition:
      type: object
      properties:
        descriptionKey:
          type: string
        detailViewIconOverrideName:
          type: string
        grantedAbilities:
          type: array
          items:
            $ref: '#/components/schemas/MissionGrantedAbility'
        linkedConflictId:
          type: string
        mapIconOverrideName:
          type: string
        maxAttemptsAllowed:
          type: integer
          format: int32
        maxUnitCountPerPlayer:
          type: integer
          format: int32
        nameKey:
          type: string
        prefabName:
          type: string
        unlockRequirement:
          $ref: '#/components/schemas/Requirement'
        zoneId:
          type: string
    MissionGrantedAbility:
      type: object
      properties:
        abilityId:
          type: string
        conditionDescKey:
          type: string
        modifierData:
          $ref: '#/components/schemas/AbilityModifierData'
        overlaySpriteName:
          type: string
        rankLabelOverrideKey:
          type: string
        showInPlatoonView:
          type: boolean
        targetRuleId:
          type: string
        unlockRequirement:
          $ref: '#/components/schemas/Requirement'
        useOverlayIcon:
          type: boolean
        zonesToApplyTo:
          type: array
          items:
            type: string
    AbilityModifierData:
      type: object
      properties:
        battleSide:
          $ref: '#/components/schemas/EffectTargetBattleSide'
        icon:
          type: string
        tierKey:
          type: string
        tint:
          type: string
    TerritoryBattleZoneUnitType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
        - type: string
          enum:
            - TerritoryBattleZoneUnitType_DEFAULT
            - CHARACTER_ZONE
            - SHIP_ZONE
            - MIXED_ZONE
            - UNDEFINED_ZONE
    TerritoryStrikeZoneDefinition:
      type: object
      properties:
        campaignElementIdentifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        combatType:
          $ref: '#/components/schemas/CombatType'
        encounterRewardTableId:
          type: string
        zoneDefinition:
          $ref: '#/components/schemas/TerritoryZoneDefinition'
    TerritoryReconZoneDefinition:
      type: object
      properties:
        abilityImage:
          type: string
        abilityLongDescKey:
          type: string
        abilityShortDescKey:
          type: string
        combatType:
          $ref: '#/components/schemas/CombatType'
        goalDescKey:
          type: string
        goalImage:
          type: string
        grantedAbilities:
          type: array
          items:
            $ref: '#/components/schemas/MissionGrantedAbility'
        platoonDefinition:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryReconPlatoonDefinition'
        rewardDescKey:
          type: string
        strategicAbilities:
          type: array
          items:
            $ref: '#/components/schemas/MissionGrantedAbility'
        subTitleKey:
          type: string
        territoryBattleZoneUnitType:
          $ref: '#/components/schemas/TerritoryBattleZoneUnitType'
        unitRarity:
          $ref: '#/components/schemas/Rarity'
        unitRelicTier:
          $ref: '#/components/schemas/RelicTier'
        zoneDefinition:
          $ref: '#/components/schemas/TerritoryZoneDefinition'
    TerritoryReconPlatoonDefinition:
      type: object
      properties:
        id:
          type: string
        nameKey:
          type: string
        reward:
          $ref: '#/components/schemas/TerritoryReward'
        squad:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryReconSquadDefinition'
    TerritoryReconSquadDefinition:
      type: object
      properties:
        id:
          type: string
        nameKey:
          type: string
    DynamicDescription:
      type: object
      properties:
        abilityDescriptionKey:
          type: string
        abilityNameKey:
          type: string
        abilityTexture:
          type: string
        backgroundOverrideSprite:
          type: string
        descriptionType:
          $ref: '#/components/schemas/DynamicDescriptionType'
        headerKey:
          type: string
        marginLeft:
          type: integer
          format: int32
        textAlignment:
          $ref: '#/components/schemas/DynamicDescriptionTextAlignmentType'
        textColumn:
          type: array
          items:
            $ref: '#/components/schemas/DynamicDescriptionTextColumn'
        textKey:
          type: string
        unitNameKey:
          type: string
        unitTexture:
          type: string
    DynamicDescriptionType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
        - type: string
          enum:
            - DynamicDescriptionType_DEFAULT
            - LAYOUT_TEXT
            - LAYOUT_UNIT
            - LAYOUT_ABILITY
            - LAYOUT_HEADER
            - LAYOUT_TEXT_COLUMN
            - LAYOUT_HORIZONTAL_BREAK
    DynamicDescriptionTextColumn:
      type: object
      properties:
        bodyAlignment:
          $ref: '#/components/schemas/DynamicDescriptionTextAlignmentType'
        bodyKey:
          type: string
        headerKey:
          type: string
        tag:
          type: string
    DynamicDescriptionTextAlignmentType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - DynamicDescriptionTextAlignmentType_DEFAULT
            - TEXT_ALIGNMENT_LEFT
            - TEXT_ALIGNMENT_RIGHT
            - TEXT_ALIGNMENT_CENTER
    TerritoryCovertZoneDefinition:
      type: object
      properties:
        campaignElementIdentifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        combatType:
          $ref: '#/components/schemas/CombatType'
        disableRewardOnMap:
          type: boolean
        victoryReward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        zoneDefinition:
          $ref: '#/components/schemas/TerritoryZoneDefinition'
    TerritoryMapStatCategory:
      type: object
      properties:
        id:
          type: string
        nameKey:
          type: string
    TerritoryLocalNote:
      type: object
      properties:
        finalMatchOnly:
          type: boolean
        messageKey:
          type: string
        optedIn:
          type: boolean
        perSubPhaseRoundEnd:
          type: boolean
        phase:
          $ref: '#/components/schemas/TerritoryMapPhase'
        phaseTimeOffsetSeconds:
          type: integer
          format: int32
        titleKey:
          type: string
    TerritoryMapPhase:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
        - type: string
          enum:
            - TerritoryMapPhase_DEFAULT
            - TERRITORY_MAP_OPT_IN
            - TERRITORY_MAP_MATCHMAKING
            - TERRITORY_MAP_SET_INITIAL_DEFENSE
            - TERRITORY_MAP_ATTACK
            - TERRITORY_MAP_REVIEW
            - TERRITORY_MAP_EXPIRED
    GuildMemberLevel:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
        - type: string
          enum:
            - GuildMemberLevel_DEFAULT
            - GUILD_PENDING
            - GUILD_MEMBER
            - GUILD_OFFICER
            - GUILD_LEADER
    TerritoryBonusZoneDefinition:
      type: object
      properties:
        linkedBonusConflictId:
          type: string
        zoneDefinition:
          $ref: '#/components/schemas/TerritoryZoneDefinition'
    TerritoryWarDefinition:
      type: object
      properties:
        commandNotificationCooldownDuration:
          type: integer
          format: int32
        defaultCharacterBattleEnvironments:
          type: array
          items:
            $ref: '#/components/schemas/Environment'
        defaultShipBattleEnvironments:
          type: array
          items:
            $ref: '#/components/schemas/Environment'
        defensiveCharacterDeployWarningThreshold:
          type: number
          format: float
        defensiveShipDeployWarningThreshold:
          type: number
          format: float
        descriptionKey:
          type: string
        detailImage:
          type: string
        dynamicDescription:
          type: array
          items:
            $ref: '#/components/schemas/DynamicDescription'
        firstRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        grantedAbilities:
          type: array
          items:
            $ref: '#/components/schemas/MissionGrantedAbility'
        hideLeaderboard:
          type: boolean
        iconPrefab:
          type: string
        id:
          type: string
        joinEventActionCapKey:
          type: string
        leaderboardKey:
          type: string
        localNotifications:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryLocalNote'
        mapTypeNameKey:
          type: string
        matchmakingDuration:
          type: integer
          format: int32
        maxParticipants:
          type: integer
          format: int32
        minMemberLevelForCommandingGuild:
          $ref: '#/components/schemas/GuildMemberLevel'
        minMemberLevelForReportingOpponent:
          $ref: '#/components/schemas/GuildMemberLevel'
        minParticipants:
          type: integer
          format: int32
        minPlayerScoreRequirement:
          type: integer
          format: int32
        minScoreRequirement:
          type: integer
          format: int64
        minimapPrefab:
          type: string
        nameKey:
          type: string
        prefabName:
          type: string
        reconZoneDefinition:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryReconZoneDefinition'
        restrictSetupDuringAttackPhase:
          type: boolean
        rewardStructure:
          $ref: '#/components/schemas/TerritoryRewardStructure'
        roundCount:
          type: integer
          format: int32
        roundTallyDuration:
          type: integer
          format: int32
        secondRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        setupDuration:
          type: integer
          format: int32
        showTimerOnEvent:
          type: boolean
        statCategory:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryMapStatCategory'
        terrainPrefabName:
          type: string
        uniqueJoinId:
          type: string
        warConflictZoneDefinition:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryWarConflictZoneDefinition'
    TerritoryWarConflictZoneDefinition:
      type: object
      properties:
        battleEnvironments:
          type: array
          items:
            $ref: '#/components/schemas/Environment'
        combatType:
          $ref: '#/components/schemas/CombatType'
        completeZoneReward:
          $ref: '#/components/schemas/TerritoryReward'
        completeZoneRewardPerDefensiveSquad:
          $ref: '#/components/schemas/TerritoryReward'
        conflictDetail:
          type: string
        conflictImage:
          type: string
        conflictRequirement:
          type: string
        defenseEntryCategoryAllowed:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        deployDefensiveSquadReward:
          $ref: '#/components/schemas/TerritoryReward'
        entryCategoryAllowed:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        offensiveWinReward:
          $ref: '#/components/schemas/TerritoryReward'
        pointStructure:
          $ref: '#/components/schemas/TerritoryWarPointStructure'
        zoneDefinition:
          $ref: '#/components/schemas/TerritoryZoneDefinition'
    TerritoryWarPointStructure:
      type: object
      properties:
        completeZoneReward:
          $ref: '#/components/schemas/TerritoryReward'
        completeZoneRewardPerDefensiveSquad:
          $ref: '#/components/schemas/TerritoryReward'
        defendDefeatBonus:
          type: array
          items:
            $ref: '#/components/schemas/GraduatingTerritoryReward'
        deployDefensiveSquadReward:
          $ref: '#/components/schemas/TerritoryReward'
        emptySquadSlotBonus:
          $ref: '#/components/schemas/TerritoryReward'
        enemyDefeatedBonus:
          $ref: '#/components/schemas/TerritoryReward'
        firstAttackBonus:
          $ref: '#/components/schemas/TerritoryReward'
        fullHealthUnitBonus:
          $ref: '#/components/schemas/TerritoryReward'
        fullProtectionUnitBonus:
          $ref: '#/components/schemas/TerritoryReward'
        offensiveWinReward:
          $ref: '#/components/schemas/TerritoryReward'
        survivingSquadUnitBonus:
          $ref: '#/components/schemas/TerritoryReward'
    GraduatingTerritoryReward:
      type: object
      properties:
        defendNumber:
          type: integer
          format: int32
        reward:
          $ref: '#/components/schemas/TerritoryReward'
    TerritoryRewardStructure:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - TerritoryRewardStructure_DEFAULT
            - TERRITORY_REWARD_PERSONAL
            - TERRITORY_REWARD_CUMULATIVE
    EnvironmentCollection:
      type: object
      properties:
        battleEnvironment:
          type: array
          items:
            $ref: '#/components/schemas/Environment'
        id:
          type: string
    ChallengeStyle:
      type: object
      properties:
        audioKey:
          type: string
        buttonIcon:
          type: string
        characterIcon:
          type: string
        characterNameKey:
          type: string
        characterRewardIcon:
          type: string
        completeKey:
          type: string
        id:
          type: string
        questTitleKey:
          type: string
    SocialStatus:
      type: object
      properties:
        chatIcons:
          type: array
          items:
            $ref: '#/components/schemas/SocialStatusIcon'
        chatPortraits:
          type: array
          items:
            $ref: '#/components/schemas/SocialStatusPortrait'
        chatTitles:
          type: array
          items:
            $ref: '#/components/schemas/SocialStatusTitle'
        guildColor:
          type: array
          items:
            $ref: '#/components/schemas/SocialStatusGuildBannerColor'
        guildLogo:
          type: array
          items:
            $ref: '#/components/schemas/SocialStatusGuildBannerLogo'
    SocialStatusIcon:
      type: object
      properties:
        id:
          type: integer
          format: int32
        texture:
          type: string
    SocialStatusTitle:
      type: object
      properties:
        id:
          type: integer
          format: int32
        playerTitleId:
          type: string
    SocialStatusGuildBannerLogo:
      type: object
      properties:
        guildBannerLogoId:
          type: string
        id:
          type: integer
          format: int32
    SocialStatusGuildBannerColor:
      type: object
      properties:
        guildBannerColorId:
          type: string
        id:
          type: integer
          format: int32
    SocialStatusPortrait:
      type: object
      properties:
        id:
          type: integer
          format: int32
        playerPortraitId:
          type: string
    StarterGuildDef:
      type: object
      properties:
        allowedRaidCampaignId:
          type: array
          items:
            type: string
        allowedRaidId:
          type: array
          items:
            type: string
        bannerColorId:
          type: string
        bannerLogoId:
          type: string
        externalMessageKey:
          type: string
        guildType:
          type: string
        messageKey:
          type: string
        nameKey:
          type: string
        subNameKey:
          type: string
    PlayerTitleDefinition:
      type: object
      properties:
        descKey:
          type: string
        hidden:
          type: boolean
        id:
          type: string
        nameKey:
          type: string
        obtainable:
          type: boolean
        shortDescKey:
          type: string
    ModRecommendation:
      type: object
      properties:
        id:
          type: string
        primaryStatRecommendation:
          type: array
          items:
            $ref: '#/components/schemas/ModRecommendationPrimaryStat'
        secondaryStatRecommendation:
          type: array
          items:
            $ref: '#/components/schemas/UnitStat'
        setRecommendation:
          type: array
          items:
            $ref: '#/components/schemas/ModRecommendationSetBonus'
        tipKey:
          type: string
    ModRecommendationSetBonus:
      type: object
      properties:
        modSetId:
          type: string
        quantity:
          type: integer
          format: int32
    ModRecommendationPrimaryStat:
      type: object
      properties:
        slot:
          $ref: '#/components/schemas/StatModSlot'
        stat:
          type: array
          items:
            $ref: '#/components/schemas/UnitStat'
    PersistentVfx:
      type: object
      properties:
        id:
          type: string
        lineOverride:
          type: string
        prefab:
          type: string
        priority:
          type: integer
          format: int32
    TerritoryTournamentDefinition:
      type: object
      properties:
        completeRankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        conflictZoneDefinition:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryTournamentConflictZoneDefinition'
        defensiveCharacterDeployWarningThreshold:
          type: number
          format: float
        defensiveShipDeployWarningThreshold:
          type: number
          format: float
        descriptionKey:
          type: string
        detailImage:
          type: string
        duelZoneDefinition:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryTournamentDuelZoneDefinition'
        dynamicDescription:
          type: array
          items:
            $ref: '#/components/schemas/DynamicDescription'
        grantedAbilities:
          type: array
          items:
            $ref: '#/components/schemas/MissionGrantedAbility'
        iconPrefab:
          type: string
        id:
          type: string
        localNotifications:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryLocalNote'
        matchCount:
          type: integer
          format: int32
        matchmakingDuration:
          type: integer
          format: int32
        minimapPrefab:
          type: string
        minimumBannerEventRewardThreshold:
          type: integer
          format: int32
        minimumBannerRoundRewardThreshold:
          type: integer
          format: int32
        nameKey:
          type: string
        noJoinDuration:
          type: integer
          format: int32
        prefabName:
          type: string
        restrictSetupDuringAttackPhase:
          type: boolean
        roundCount:
          type: integer
          format: int32
        roundRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        roundSeasonRewardTableId:
          type: string
        roundTallyDuration:
          type: integer
          format: int32
        savedSquadConfigId:
          type: string
        seasonPointsPerBannerPercent:
          type: integer
          format: int32
        territoryCategory:
          type: string
    TerritoryTournamentConflictZoneDefinition:
      type: object
      properties:
        combatType:
          $ref: '#/components/schemas/CombatType'
        victoryPointRewards:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryRewardBracket'
        zoneDefinition:
          $ref: '#/components/schemas/TerritoryZoneDefinition'
    TerritoryTournamentDuelZoneDefinition:
      type: object
      properties:
        battleEnvironments:
          type: array
          items:
            $ref: '#/components/schemas/Environment'
        defenseEntryCategoryAllowed:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        duelDetail:
          type: string
        duelImage:
          type: string
        duelRequirement:
          type: string
        entryCategoryAllowed:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        pointStructure:
          $ref: '#/components/schemas/TerritoryWarPointStructure'
        saveSquadZoneNumber:
          type: integer
          format: int32
        zoneDefinition:
          $ref: '#/components/schemas/TerritoryZoneDefinition'
    EventBonus:
      type: object
      properties:
        descKey:
          type: string
        iconKey:
          type: string
        id:
          type: string
        nameKey:
          type: string
        scoreModifier:
          type: number
          format: float
    SeasonDefinition:
      type: object
      properties:
        divisionSkillBoundary:
          type: array
          items:
            $ref: '#/components/schemas/SeasonDivisionSkillBoundary'
        id:
          type: string
        minimumBannerSeasonRewardThreshold:
          type: integer
          format: int32
        nameKey:
          type: string
        seasonDivisionReference:
          type: array
          items:
            $ref: '#/components/schemas/SeasonDivisionReference'
        seasonLeagueReference:
          type: array
          items:
            $ref: '#/components/schemas/SeasonLeagueReference'
        seasonRewardTableId:
          type: string
    SeasonLeagueReference:
      type: object
      properties:
        definitionId:
          type: string
        promoteCondition:
          type: integer
          format: int32
        promoteConditionTable:
          type: string
        promoteSystem:
          $ref: '#/components/schemas/SeasonLeaguePromoteSystem'
        rewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/LeagueDivisionRewardPreview'
    SeasonLeaguePromoteSystem:
      oneOf:
        - type: integer
          enum:
            - 0
            - 3
        - type: string
          enum:
            - SEASON_LEAGUE_PROMOTE_NONE
            - SEASON_LEAGUE_PROMOTE_SEASON_POINTS
    LeagueDivisionRewardPreview:
      type: object
      properties:
        detailedReward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        division:
          type: integer
          format: int32
        primaryReward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
    SeasonDivisionReference:
      type: object
      properties:
        id:
          type: integer
          format: int32
    SeasonDivisionSkillBoundary:
      type: object
      properties:
        divisionId:
          type: integer
          format: int32
        leagueId:
          type: string
        minSkill:
          type: integer
          format: int32
    PlayerPortraitDefinition:
      type: object
      properties:
        descKey:
          type: string
        hidden:
          type: boolean
        icon:
          type: string
        id:
          type: string
        nameKey:
          type: string
        obtainable:
          type: boolean
    TimeZoneChangeConfig:
      type: object
      properties:
        allowedChangesLocKey:
          type: string
        allowedChangesPerPeriod:
          type: integer
          format: int32
        allowedChangesResetLocKey:
          type: string
        maxTimeZoneChangeHoursExclusive:
          type: integer
          format: int32
        timeZoneChangeCooldownId:
          type: string
        timeZoneDefinition:
          type: array
          items:
            $ref: '#/components/schemas/TimeZoneDefinition'
    TimeZoneDefinition:
      type: object
      properties:
        primary:
          type: boolean
        timeZoneOffsetMinutes:
          type: integer
          format: int32
    MysteryBoxDefinition:
      type: object
      properties:
        descKey:
          type: string
        detailsDescKey:
          type: string
        detailsTitleKey:
          type: string
        iconTextKey:
          type: string
        id:
          type: string
        previewItem:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        showPrimaryRewards:
          type: boolean
        texture:
          type: string
        titleKey:
          type: string
    MysteryStatModDefinition:
      type: object
      properties:
        descKey:
          type: string
        id:
          type: string
        maxRarity:
          $ref: '#/components/schemas/Rarity'
        maxTier:
          $ref: '#/components/schemas/StatModTier'
        minRarity:
          $ref: '#/components/schemas/Rarity'
        minTier:
          $ref: '#/components/schemas/StatModTier'
        setId:
          type: string
        slot:
          type: array
          items:
            $ref: '#/components/schemas/StatModSlot'
        slotOld:
          $ref: '#/components/schemas/StatModSlot'
    Cooldown:
      type: object
      properties:
        id:
          type: string
        refreshCost:
          $ref: '#/components/schemas/BucketItem'
    DailyActionCap:
      type: object
      properties:
        id:
          type: string
        maxActions:
          type: integer
          format: int32
        purchaseCost:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        unlimitedPurchases:
          type: boolean
    EnergyRewardDefinition:
      type: object
      properties:
        claimableDescKey:
          type: string
        claimableTitleKey:
          type: string
        energyType:
          $ref: '#/components/schemas/EnergyType'
        instance:
          type: array
          items:
            $ref: '#/components/schemas/EnergyRewardInstance'
        showRequirement:
          $ref: '#/components/schemas/Requirement'
        upcomingDescKey:
          type: string
        upcomingTitleKey:
          type: string
    EnergyType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
        - type: string
          enum:
            - EnergyType_DEFAULT
            - PVE
            - PVP
            - SHIP_PVE
            - SHIP_PVP
            - CANTINA_PVE
            - MOD
            - CONQUEST
    EnergyRewardInstance:
      type: object
      properties:
        amount:
          type: integer
          format: int32
        duration:
          type: integer
          format: int32
        start:
          type: integer
          format: int32
        type:
          $ref: '#/components/schemas/EnergyRewardInstanceType'
    EnergyRewardInstanceType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
        - type: string
          enum:
            - EnergyRewardInstanceType_DEFAULT
            - HOUR_OF_DAY
    SeasonLeagueDefinition:
      type: object
      properties:
        icon:
          type: string
        id:
          type: string
        nameKey:
          type: string
        portraitFrame:
          type: string
        rank:
          type: integer
          format: int32
        sprite:
          type: string
    SeasonDivisionDefinition:
      type: object
      properties:
        id:
          type: integer
          format: int32
        minPower:
          type: integer
          format: int32
        nameKey:
          type: string
    SeasonRewardTable:
      type: object
      properties:
        id:
          type: string
        row:
          type: array
          items:
            $ref: '#/components/schemas/SeasonRewardTableRow'
    SeasonRewardTableRow:
      type: object
      properties:
        detailedReward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        key:
          $ref: '#/components/schemas/SeasonRewardTableKey'
        primaryReward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
    SeasonRewardTableKey:
      type: object
      properties:
        division:
          type: integer
          format: int32
        league:
          type: integer
          format: int32
        rank:
          type: integer
          format: int32
    RelicTierDefinition:
      type: object
      properties:
        id:
          type: string
        relicStatTable:
          type: string
        stat:
          $ref: '#/components/schemas/StatDef'
        tier:
          $ref: '#/components/schemas/RelicTier'
    ConversionSet:
      type: object
      properties:
        consumable:
          type: array
          items:
            $ref: '#/components/schemas/ConversionItem'
        output:
          $ref: '#/components/schemas/ConversionItemPrioritized'
        surplus:
          $ref: '#/components/schemas/ConversionItem'
    ConversionItemPrioritized:
      type: object
      properties:
        item:
          $ref: '#/components/schemas/ConversionItem'
        priority:
          type: integer
          format: int32
    ConversionItem:
      type: object
      properties:
        id:
          type: string
        pointValue:
          type: integer
          format: int32
        type:
          $ref: '#/components/schemas/ItemType'
    UnitGuideDefinition:
      type: object
      properties:
        actionLink:
          type: string
        actionLinkImage:
          type: string
        activityId:
          type: string
        additionalActivationRequirementId:
          type: string
        bannerImage:
          type: string
        bannerImageSubtextKey:
          type: string
        campaignElementIdentifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        characterRecommendedEntryCategory:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        descriptionKey:
          type: string
        displayEnabled:
          type: boolean
        featured:
          type: boolean
        galacticLegend:
          type: boolean
        hiddenUnitCount:
          type: integer
          format: int32
        inPreview:
          type: boolean
        overrideTexture:
          type: string
        previewArtImage:
          type: string
        recommendationRequirementId:
          type: string
        shipRecommendedEntryCategory:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        subtitleKey:
          type: string
        titleKey:
          type: string
        type:
          $ref: '#/components/schemas/UnitGuideActivityType'
        unitBaseId:
          type: string
        unitStagePrefab:
          type: string
        upcomingEventKey:
          type: string
    UnitGuideActivityType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 4
            - 5
        - type: string
          enum:
            - UnitGuideActivityType_DEFAULT
            - GUIDEACTIVITY_EVENT
            - GUIDEACTIVITY_RAID
            - GUIDEACTIVITY_TERRITORY_BATTLE
            - GUIDEACTIVITY_UNDEFINED
    GalacticBundle:
      type: object
      properties:
        id:
          type: string
        info:
          type: string
        inventoryItem:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        primaryGalacticBundle:
          type: boolean
        tabs:
          type: array
          items:
            $ref: '#/components/schemas/GalacticBundleTab'
        targetPlayerLevel:
          type: integer
          format: int32
        unitUpgrade:
          type: array
          items:
            $ref: '#/components/schemas/UnitUpgrade'
    UnitUpgrade:
      type: object
      properties:
        abilityDescriptiveTagSkillTier:
          type: array
          items:
            $ref: '#/components/schemas/TagTier'
        basicSkillTier:
          type: integer
          format: int32
        excludeOmicronSkills:
          type: boolean
        excludeZetaSkills:
          type: boolean
        id:
          type: string
        leaderSkillTier:
          type: integer
          format: int32
        level:
          type: integer
          format: int32
        rarity:
          $ref: '#/components/schemas/Rarity'
        relicTier:
          $ref: '#/components/schemas/RelicTier'
        skillOverride:
          type: array
          items:
            $ref: '#/components/schemas/SkillUpgrade'
        skillTier:
          type: integer
          format: int32
        specialSkillTier:
          type: integer
          format: int32
        tier:
          $ref: '#/components/schemas/UnitTier'
        uniqueSkillTier:
          type: integer
          format: int32
    SkillUpgrade:
      type: object
      properties:
        id:
          type: string
        tier:
          type: integer
          format: int32
        unlocked:
          type: boolean
    TagTier:
      type: object
      properties:
        tag:
          type: string
        tier:
          type: integer
          format: int32
    GalacticBundleTab:
      type: object
      properties:
        image:
          type: string
        mainElement:
          $ref: '#/components/schemas/GalacticBundleMainElement'
        text:
          type: string
    GalacticBundleMainElement:
      type: object
      properties:
        description:
          type: string
        elementType:
          $ref: '#/components/schemas/GalacticBundleMainElementType'
        image:
          type: string
        inventoryType:
          $ref: '#/components/schemas/GalacticBundleMainElementInventoryType'
        page:
          type: array
          items:
            $ref: '#/components/schemas/GalacticBundleMainElementPage'
        title:
          type: string
    GalacticBundleMainElementPage:
      type: object
      properties:
        description:
          type: array
          items:
            type: string
        image:
          type: string
        sprite:
          type: array
          items:
            type: string
        title:
          type: string
    GalacticBundleMainElementType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
        - type: string
          enum:
            - GalacticBundleMainElementType_DEFAULT
            - GALACTICBUNDLEMAINELEMENTTYPE_PAGINATION
            - GALACTICBUNDLEMAINELEMENTTYPE_INVENTORY
            - GALACTICBUNDLEMAINELEMENTTYPE_SPLIT
            - GALACTICBUNDLEMAINELEMENTTYPE_HIGHTLIGHTS
            - GALACTICBUNDLEMAINELEMENTTYPE_ACCESS
    GalacticBundleMainElementInventoryType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
        - type: string
          enum:
            - GalacticBundleMainElementInventoryType_DEFAULT
            - GALACTICBUNDLEMAINELEMENTINVENTORYTYPE_NONE
            - GALACTICBUNDLEMAINELEMENTINVENTORYTYPE_CHARACTERS
            - GALACTICBUNDLEMAINELEMENTINVENTORYTYPE_SHIPS
            - GALACTICBUNDLEMAINELEMENTINVENTORYTYPE_UNITS
            - GALACTICBUNDLEMAINELEMENTINVENTORYTYPE_ITEMS
            - GALACTICBUNDLEMAINELEMENTINVENTORYTYPE_ALL
    LinkedStoreItem:
      type: object
      properties:
        contextualStoreItem:
          type: array
          items:
            $ref: '#/components/schemas/ContextualStoreItem'
        linkId:
          type: string
        storeItem:
          type: array
          items:
            type: string
        type:
          $ref: '#/components/schemas/LinkedStoreItemType'
    LinkedStoreItemType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
        - type: string
          enum:
            - LinkedStoreItemType_DEFAULT
            - LINKEDSTOREITEM_UNIT
            - LINKEDSTOREITEM_EVENT
            - LINKEDSTOREITEM_RAID
            - LINKEDSTOREITEM_PREVIEW
    ContextualStoreItem:
      type: object
      properties:
        id:
          type: string
        storeItemId:
          type: array
          items:
            type: string
    TerritoryTournamentLeagueDefinition:
      type: object
      properties:
        blankIcon:
          type: string
        icon:
          type: string
        id:
          type: string
        nameKey:
          type: string
        portraitFrame:
          type: string
        rank:
          type: integer
          format: int32
        sprite:
          type: string
    TerritoryTournamentDivisionDefinition:
      type: object
      properties:
        icon:
          type: string
        id:
          type: integer
          format: int32
        nameKey:
          type: string
    SaveSquadConfig:
      type: object
      properties:
        descKey:
          type: string
        id:
          type: string
        tournamentMapDefinitionId:
          type: string
    GuildRaidGlobalConfig:
      type: object
      properties:
        guildRaidLockout:
          $ref: '#/components/schemas/GuildRaidLockout'
        lateEntryParticipationLockoutSeconds:
          type: integer
          format: int64
    LightspeedTokenDefinition:
      type: object
      properties:
        actionLinkLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupActionLink'
        applicableUnitDefs:
          type: array
          items:
            type: string
        combatType:
          $ref: '#/components/schemas/CombatType'
        descriptionKey:
          type: string
        dismantlingReward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        excludeTag:
          type: array
          items:
            type: string
        id:
          type: string
        includeTag:
          type: array
          items:
            type: string
        lookupMission:
          type: array
          items:
            $ref: '#/components/schemas/LookupMission'
        nameKey:
          type: string
        raidImmediateLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupMission'
        raidLookup:
          type: array
          items:
            $ref: '#/components/schemas/LookupMission'
        releaseEraTag:
          type: string
        tokenImage:
          type: string
        tokenTierLargeSprite:
          type: string
        tokenTierSmallSprite:
          type: string
        unitUpgrade:
          $ref: '#/components/schemas/UnitUpgrade'
    Campaign:
      type: object
      properties:
        campaignMap:
          type: array
          items:
            $ref: '#/components/schemas/CampaignMap'
        campaignType:
          $ref: '#/components/schemas/CampaignType'
        dailyBattleCapKey:
          type: string
        descriptionKey:
          type: string
        entryCategoryAllowed:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        grindEnabled:
          type: boolean
        id:
          type: string
        image:
          type: string
        nameKey:
          type: string
        progress:
          $ref: '#/components/schemas/CampaignElementProgress'
        unlockRequirementLocalizationKey:
          type: string
    CampaignType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 11
            - 12
            - 13
        - type: string
          enum:
            - CampaignType_DEFAULT
            - STANDARD
            - ONBOARDING
            - CAMPAIGN_EVENT
            - GUILD_RAID
            - CAMPAIGN_PVE_LIGHT
            - CAMPAIGN_PVE_DARK
            - CAMPAIGN_PVE_MOD_BATTLES
            - CAMPAIGN_PVE_HOLOCRON
            - CAMPAIGN_SHIP_PVE
            - TERRITORY_BATTLE
            - ARCADE_RAID_BATTLES
            - COLISEUM_PVE
    CampaignMap:
      type: object
      properties:
        campaignNodeDifficultyGroup:
          type: array
          items:
            $ref: '#/components/schemas/CampaignNodeDifficultyGroup'
        dailyBattleCapKey:
          type: string
        entryCategoryAllowed:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        entryOwnershipRequirement:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        gameModeKey:
          type: string
        grindEnabled:
          type: boolean
        id:
          type: string
        isPlayerSquadSupplied:
          type: boolean
        progress:
          $ref: '#/components/schemas/CampaignElementProgress'
        unlockRequirementLocalizationKey:
          type: string
    CampaignNodeDifficultyGroup:
      type: object
      properties:
        campaignNode:
          type: array
          items:
            $ref: '#/components/schemas/CampaignNode'
        campaignNodeDifficulty:
          $ref: '#/components/schemas/CampaignNodeDifficulty'
        dailyBattleCapKey:
          type: string
        entryCategoryAllowed:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        grindEnabled:
          type: boolean
        progress:
          $ref: '#/components/schemas/CampaignElementProgress'
        unlockRequirementLocalizationKey:
          type: string
    CampaignNode:
      type: object
      properties:
        campaignNodeMission:
          type: array
          items:
            $ref: '#/components/schemas/CampaignNodeMission'
        combatType:
          $ref: '#/components/schemas/CombatType'
        cooldownConditionalOverrideKey:
          type: string
        cooldownKey:
          type: string
        dailyBattleCapKey:
          type: string
        dominantClass:
          $ref: '#/components/schemas/UnitClass'
        entryCategoryAllowed:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        firstTimeFinishCost:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        forceAlignment:
          $ref: '#/components/schemas/ForceAlignment'
        grindEnabled:
          type: boolean
        homePrefab:
          type: string
        id:
          type: string
        isCannon:
          type: boolean
        nameKey:
          type: string
        progress:
          $ref: '#/components/schemas/CampaignElementProgress'
        unlockRequirementLocalizationKey:
          type: string
    CampaignNodeMission:
      type: object
      properties:
        activateCost:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        audioKey:
          type: string
        autoBattleEnabled:
          type: boolean
        battleDurationLimit:
          type: integer
          format: int64
        battleSpeedAdjustable:
          type: boolean
        battleSupportAllowed:
          type: boolean
        campaignNodeEncounter:
          type: array
          items:
            $ref: '#/components/schemas/CampaignNodeEncounter'
        coliseumPointSource:
          type: array
          items:
            type: string
        combatType:
          $ref: '#/components/schemas/CombatType'
        conditionalEntryCostOverride:
          $ref: '#/components/schemas/ConditionalBucket'
        conditionalRewardsPreview:
          type: array
          items:
            $ref: '#/components/schemas/ConditionalBucket'
        cooldownConditionalOverrideKey:
          type: string
        cooldownKey:
          type: string
        dailyBattleCapKey:
          type: string
        descKey:
          type: string
        detailDescKey:
          type: string
        detailImage:
          type: string
        dynamicDescription:
          type: array
          items:
            $ref: '#/components/schemas/DynamicDescription'
        enemyPreview:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        enemyUnitPreview:
          type: array
          items:
            $ref: '#/components/schemas/CampaignMissionEnemyPreview'
        entryCategoryAllowed:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        entryCostRequirement:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        featured:
          type: boolean
        firstCompleteRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        forcedPlayerSquad:
          $ref: '#/components/schemas/ForcedPlayerSquad'
        grantedAbilities:
          type: array
          items:
            $ref: '#/components/schemas/MissionGrantedAbility'
        grindEnabled:
          type: boolean
        groupImage:
          type: string
        groupNameKey:
          type: string
        hasForcedAlly:
          type: boolean
        holonodePlanetPrefabName:
          type: string
        id:
          type: string
        immediateRegularRankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        instanceFirstCompleteRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        maxPointsPerAttempt:
          type: integer
          format: int32
        nameKey:
          type: string
        nodeDisplayItem:
          $ref: '#/components/schemas/ItemType'
        overviewLocKey:
          type: string
        playerAbilityRef:
          type: array
          items:
            $ref: '#/components/schemas/AbilityReference'
        position:
          $ref: '#/components/schemas/Position'
        prefab:
          type: string
        progress:
          $ref: '#/components/schemas/CampaignElementProgress'
        pveDatacronAllowed:
          type: boolean
        raidConfigId:
          type: string
        raidPointsStructure:
          $ref: '#/components/schemas/RaidPointsStructure'
        rankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        recommendationKey:
          type: string
        recommendedEraLevel:
          type: integer
          format: int32
        recommendedGp:
          type: integer
          format: int32
        recommendedUnitGp:
          type: integer
          format: int32
        requirementOverrideKey:
          type: string
        retreatEnabled:
          type: boolean
        rewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        shortNameKey:
          type: string
        simmableOverrideEnabled:
          type: boolean
        unitReplacement:
          type: array
          items:
            $ref: '#/components/schemas/UnitReplacement'
        unlockRequirementId:
          type: string
        unlockRequirementLocalizationKey:
          type: string
        visibilityRequirementId:
          type: string
        volatileAccess:
          type: boolean
    CampaignNodeEncounter:
      type: object
      properties:
        allowChanceMechanics:
          type: boolean
        audioKey:
          type: string
        audioVictoryKey:
          type: string
        detailDescKey:
          type: string
        displayableEnemyId:
          type: array
          items:
            type: string
        displayableGrantedAbility:
          type: array
          items:
            type: string
        encounterCinematics:
          type: array
          items:
            $ref: '#/components/schemas/CampaignCinematic'
        encounterDescKey:
          type: string
        encounterDurationLimit:
          type: integer
          format: int64
        encounterIcon:
          type: string
        encounterIconPosition:
          type: integer
          format: int32
        encounterId:
          type: string
        encounterMessage:
          type: array
          items:
            $ref: '#/components/schemas/ContextualMessageGroup'
        environment:
          type: array
          items:
            $ref: '#/components/schemas/Environment'
        environmentCollectionId:
          type: string
        firstTimeEncounterMessage:
          type: array
          items:
            $ref: '#/components/schemas/ContextualMessageGroup'
        maxDeployedSquadSize:
          type: integer
          format: int32
        pointsToComplete:
          type: integer
          format: int64
        raidProgressColor:
          $ref: '#/components/schemas/ColorType'
        scoreToComplete:
          type: integer
          format: int64
    CampaignCinematic:
      type: object
      properties:
        environment:
          $ref: '#/components/schemas/Environment'
        subsequentViewingEnvironment:
          $ref: '#/components/schemas/Environment'
        trigger:
          $ref: '#/components/schemas/CinematicTrigger'
    CinematicTrigger:
      type: object
      properties:
        triggerCondition:
          type: string
    ColorType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
        - type: string
          enum:
            - ColorType_DEFAULT
            - WHITE
            - RED
            - ORANGE
            - YELLOW
            - GREEN
            - BLUE
    CampaignElementProgress:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
        - type: string
          enum:
            - CampaignElementProgress_DEFAULT
            - HIDDEN
            - LOCKED
            - UNLOCKED
            - COMPLETE
            - COMPLETE_ONE_STAR
            - COMPLETE_TWO_STAR
            - COMPLETE_THREE_STAR
    CampaignMissionEnemyPreview:
      type: object
      properties:
        baseEnemyItem:
          $ref: '#/components/schemas/BucketItem'
        displayedEnemy:
          type: boolean
        enemyForceAlignment:
          $ref: '#/components/schemas/ForceAlignment'
        enemyLevel:
          type: integer
          format: int32
        enemyRelicTier:
          $ref: '#/components/schemas/RelicTier'
        enemyTier:
          $ref: '#/components/schemas/UnitTier'
        eraLevel:
          type: integer
          format: int32
        eraThumbnailName:
          type: string
        isGalacticLegend:
          type: boolean
        isUltimateUnlocked:
          type: boolean
        omicronCount:
          type: integer
          format: int32
        prefabName:
          type: string
        threatLevel:
          $ref: '#/components/schemas/ThreatLevel'
        thumbnailName:
          type: string
        unitClass:
          $ref: '#/components/schemas/UnitClass'
        zetaCount:
          type: integer
          format: int32
    ForcedPlayerSquad:
      type: object
      properties:
        squad:
          $ref: '#/components/schemas/Squad'
        squadUnit:
          type: array
          items:
            $ref: '#/components/schemas/Unit'
    Squad:
      type: object
      properties:
        cell:
          type: array
          items:
            $ref: '#/components/schemas/SquadCell'
        datacron:
          $ref: '#/components/schemas/DatacronBattleStat'
        expireTime:
          type: integer
          format: int64
        lastSaveTime:
          type: integer
          format: int64
        squadType:
          $ref: '#/components/schemas/SquadType'
        supportInheritFromDefinitionId:
          type: string
        targetingSetId:
          type: string
        targetingTactic:
          $ref: '#/components/schemas/BattleTargetingTactic'
    SquadCell:
      type: object
      properties:
        cellIndex:
          type: integer
          format: int32
        crewBattleStat:
          type: array
          items:
            $ref: '#/components/schemas/UnitBattleStat'
        forcedUnitEraLevel:
          type: integer
          format: int32
        inheritFromDefinitionId:
          type: string
        messageReticle:
          type: string
        overkillItem:
          type: boolean
        progressItem:
          type: boolean
        selectable:
          type: boolean
        squadUnitType:
          $ref: '#/components/schemas/SquadUnitType'
        unitBattleStat:
          $ref: '#/components/schemas/UnitBattleStat'
        unitDefId:
          type: string
        unitId:
          type: string
        unitState:
          $ref: '#/components/schemas/BattleUnitState'
    UnitBattleStat:
      type: object
      properties:
        actionCountMax:
          type: integer
          format: int32
        actionCountMin:
          type: integer
          format: int32
        battleStat:
          $ref: '#/components/schemas/StatDef'
        enableLeaderAbility:
          type: boolean
        equipment:
          type: array
          items:
            $ref: '#/components/schemas/EquipmentSlot'
        eraLevel:
          type: integer
          format: int32
        level:
          type: integer
          format: int32
        overrideAllStatsMultiplier:
          type: number
          format: double
        overrideAllStatsTable:
          type: string
        overrideStatMultiplier:
          type: array
          items:
            $ref: '#/components/schemas/Stat'
        purchasedAbilityId:
          type: array
          items:
            type: string
        skill:
          type: array
          items:
            $ref: '#/components/schemas/Skill'
        skipStatsOverwrite:
          type: boolean
        statMod:
          type: array
          items:
            $ref: '#/components/schemas/StatMod'
        threatLevelOverride:
          $ref: '#/components/schemas/ThreatLevel'
        tier:
          $ref: '#/components/schemas/UnitTier'
        unitDefId:
          type: string
        unitId:
          type: string
        unitRelicTier:
          $ref: '#/components/schemas/RelicTier'
    EquipmentSlot:
      type: object
      properties:
        equipmentId:
          type: string
        slot:
          type: integer
          format: int32
    Skill:
      type: object
      properties:
        id:
          type: string
        tier:
          type: integer
          format: int32
    SquadUnitType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
        - type: string
          enum:
            - SquadUnitType_DEFAULT
            - UNITTYPE_DEFAULT
            - UNITTYPE_LEADER
            - UNITTYPE_COMMANDER
            - UNITTYPE_SUPPORT
            - UNITTYPE_REINFORCEMENT
    BattleUnitState:
      type: object
      properties:
        abilityState:
          type: array
          items:
            $ref: '#/components/schemas/BattleUnitAbilityState'
        battleContextMaxShield:
          type: integer
          format: int64
        currentHealth:
          type: integer
          format: int64
        currentShield:
          type: integer
          format: int64
        hasFled:
          type: boolean
        healthPercent:
          type: string
        isCommander:
          type: boolean
        isDeployed:
          type: boolean
        isUnscathed:
          type: boolean
        maxHealth:
          type: integer
          format: int64
        maxShield:
          type: integer
          format: int64
        overkillDamage:
          type: integer
          format: int64
        overkillItem:
          type: boolean
        progressItem:
          type: boolean
        shieldPercent:
          type: string
        turnPercent:
          type: string
        unitId:
          type: string
    BattleUnitAbilityState:
      type: object
      properties:
        abilityId:
          type: string
        cooldown:
          type: integer
          format: int32
    BattleTargetingTactic:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
        - type: string
          enum:
            - BattleTargetingTactic_DEFAULT
            - TARGET_RANDOM
            - TARGET_RANDOM_SWITCH
            - TARGET_RANDOM_OVERKILL
            - TARGET_RANDOM_WEIGHTED_SWITCH
    DatacronBattleStat:
      type: object
      properties:
        affix:
          type: array
          items:
            $ref: '#/components/schemas/DatacronAffix'
        highestTierApplied:
          type: integer
          format: int32
        id:
          type: string
        setId:
          type: integer
          format: int32
        tag:
          type: array
          items:
            type: string
        templateId:
          type: string
    DatacronAffix:
      type: object
      properties:
        abilityId:
          type: string
        requiredRelicTier:
          $ref: '#/components/schemas/RelicTier'
        requiredUnitTier:
          $ref: '#/components/schemas/UnitTier'
        scopeIcon:
          type: string
        statType:
          $ref: '#/components/schemas/UnitStat'
        statValue:
          type: integer
          format: int64
        tag:
          type: array
          items:
            type: string
        targetRule:
          type: string
    Unit:
      type: object
      properties:
        currentLevel:
          type: integer
          format: int32
        currentRarity:
          $ref: '#/components/schemas/Rarity'
        currentTier:
          $ref: '#/components/schemas/UnitTier'
        currentXp:
          type: integer
          format: int32
        definitionId:
          type: string
        equipment:
          type: array
          items:
            $ref: '#/components/schemas/EquipmentSlot'
        equippedStatMod:
          type: array
          items:
            $ref: '#/components/schemas/StatMod'
        equippedStatModOld:
          type: array
          items:
            type: string
        id:
          type: string
        promotionRecipeReference:
          type: string
        purchasedAbilityId:
          type: array
          items:
            type: string
        relic:
          $ref: '#/components/schemas/Relic'
        skill:
          type: array
          items:
            $ref: '#/components/schemas/Skill'
        unitStat:
          $ref: '#/components/schemas/StatDef'
    Relic:
      type: object
      properties:
        currentTier:
          $ref: '#/components/schemas/RelicTier'
    ConditionalBucket:
      type: object
      properties:
        bucketItem:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        requirementId:
          type: string
    RaidPointsStructure:
      type: object
      properties:
        blackboardPointSource:
          type: array
          items:
            $ref: '#/components/schemas/RaidBlackboardPointSource'
        modifier:
          type: array
          items:
            $ref: '#/components/schemas/RaidModifier'
    RaidBlackboardPointSource:
      type: object
      properties:
        id:
          type: string
        locKey:
          type: string
    RaidModifier:
      type: object
      properties:
        abilityOverride:
          type: array
          items:
            $ref: '#/components/schemas/RaidAbilityOverride'
        descKey:
          type: string
        grantedAbility:
          type: array
          items:
            $ref: '#/components/schemas/MissionGrantedAbility'
        overrideRelicTier:
          $ref: '#/components/schemas/RelicTier'
        requiredRelicTier:
          $ref: '#/components/schemas/RelicTier'
        requiredUnitTier:
          $ref: '#/components/schemas/UnitTier'
        scoreMultiplierUnscaled:
          type: integer
          format: int64
    RaidAbilityOverride:
      type: object
      properties:
        abilityId:
          type: string
        icon:
          type: string
        locKey:
          type: string
        targetRuleId:
          type: string
    UnitReplacement:
      type: object
      properties:
        replacementUnitId:
          type: string
        sourceUnitId:
          type: string
    ConquestDefinition:
      type: object
      properties:
        chaseCharacterTexture:
          type: string
        conquestDifficulty:
          type: array
          items:
            $ref: '#/components/schemas/ConquestDifficulty'
        consumableDetail:
          type: array
          items:
            $ref: '#/components/schemas/ConsumableDetails'
        descriptionKey:
          type: string
        id:
          type: string
        miscEntry:
          type: array
          items:
            $ref: '#/components/schemas/ConquestPurchasePassMiscTextEntry'
        nameKey:
          type: string
        staminaStatAllowlist:
          type: string
        visibility:
          type: array
          items:
            $ref: '#/components/schemas/ConquestVisibility'
    ConquestDifficulty:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/CampaignNodeDifficulty'
        immediateRankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        minGp:
          type: integer
          format: int32
        nameKey:
          type: string
        premiumImmediateRankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        rankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        recommendedMinGp:
          type: integer
          format: int32
        sector:
          type: array
          items:
            $ref: '#/components/schemas/ConquestSector'
    ConquestSector:
      type: object
      properties:
        artTile:
          type: string
        backgroundPrefabName:
          type: string
        environmentTitleKey:
          type: string
        id:
          type: string
        node:
          type: array
          items:
            $ref: '#/components/schemas/ConquestNode'
        prefabName:
          type: string
        titleKey:
          type: string
    ConquestNode:
      type: object
      properties:
        conquestCompletionNode:
          type: boolean
        conquestMissionId:
          type: string
        enemyUnitPreview:
          type: array
          items:
            $ref: '#/components/schemas/CampaignMissionEnemyPreview'
        finishSector:
          type: boolean
        id:
          type: string
        nameKey:
          type: string
        style:
          $ref: '#/components/schemas/ConquestNodeStyle'
        type:
          $ref: '#/components/schemas/ConquestNodeType'
        unlockRequirementId:
          type: string
    ConquestNodeType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
        - type: string
          enum:
            - ConquestNodeType_DEFAULT
            - COMBAT_NODE
            - ARTIFACT_NODE
            - MERCHANT_NODE
            - START_NODE
            - BOSS_NODE
            - COMBAT_NO_POINTS_NODE
    ConquestNodeStyle:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - ConquestNodeStyle_DEFAULT
            - DEFAULT_STYLE
            - LEGEND
            - DATACRON_STYLE
    ConsumableDetails:
      type: object
      properties:
        maxCount:
          type: integer
          format: int32
        typeId:
          type: string
    ConquestVisibility:
      type: object
      properties:
        distance:
          type: integer
          format: int32
        type:
          $ref: '#/components/schemas/ConquestNodeType'
    ConquestPurchasePassMiscTextEntry:
      type: object
      properties:
        spriteName:
          type: string
        textId:
          type: string
        type:
          $ref: '#/components/schemas/ConquestPurchasePassMiscTextEntryType'
    ConquestPurchasePassMiscTextEntryType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - ConquestPurchasePassMiscTextEntryType_DEFAULT
            - PASS_WITH_EXTRAS
            - PASS_ONLY
            - ALL_PASS_VARIANTS
    ConquestMission:
      type: object
      properties:
        battleDetails:
          $ref: '#/components/schemas/BattleDetails'
        conditionalRewardsPreview:
          type: array
          items:
            $ref: '#/components/schemas/ConditionalBucket'
        entryCostRequirement:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        id:
          type: string
        instanceFirstCompleteRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        recommendationKey:
          type: string
        rewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
    BattleDetails:
      type: object
      properties:
        audioKey:
          type: string
        autoBattleEnabled:
          type: boolean
        battleDurationLimit:
          type: integer
          format: int64
        battleEncounter:
          type: array
          items:
            $ref: '#/components/schemas/CampaignNodeEncounter'
        battleSpeedAdjustable:
          type: boolean
        combatType:
          $ref: '#/components/schemas/CombatType'
        entryCategoryAllowed:
          $ref: '#/components/schemas/EntryCategoryAllowed'
        grantedAbility:
          type: array
          items:
            $ref: '#/components/schemas/MissionGrantedAbility'
        id:
          type: string
        pveDatacronAllowed:
          type: boolean
        retreatEnabled:
          type: boolean
    ArtifactDefinition:
      type: object
      properties:
        descriptionKey:
          type: string
        grantedAbility:
          type: array
          items:
            $ref: '#/components/schemas/MissionGrantedAbility'
        id:
          type: string
        nameKey:
          type: string
        powerLevel:
          type: integer
          format: int32
        targetedStat:
          type: array
          items:
            $ref: '#/components/schemas/TargetedStat'
        texture:
          type: string
        tierId:
          type: string
    TargetedStat:
      type: object
      properties:
        stat:
          $ref: '#/components/schemas/Stat'
        targetRuleId:
          type: string
    AbilityDecisionTree:
      type: object
      properties:
        abilityDecisionNode:
          type: array
          items:
            $ref: '#/components/schemas/AbilityDecisionNode'
        abilityDecisionTreeId:
          type: string
    AbilityDecisionNode:
      type: object
      properties:
        chance:
          type: integer
          format: int64
        decisionResult:
          $ref: '#/components/schemas/AbilityDecisionResult'
        decisionTarget:
          $ref: '#/components/schemas/AbilityDecisionTarget'
        decisionType:
          $ref: '#/components/schemas/AbilityDecisionType'
        negate:
          type: boolean
        param:
          type: array
          items:
            type: string
        paramModifier:
          $ref: '#/components/schemas/AbilityDecisionParamModifier'
        targetExcludeSelf:
          type: boolean
    AbilityDecisionType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
            - 7
            - 8
            - 9
            - 10
            - 11
            - 12
        - type: string
          enum:
            - AbilityDecisionType_DEFAULT
            - SINGLE_HEALTH
            - MEDIAN_HEALTH
            - NUMBER_OF_TARGETS
            - PERSISTENT_EFFECT
            - NUMBER_OF_ENEMIES_ALIVE
            - REINFORCE_AVAILABLE
            - OUTNUMBERED
            - SINGLE_SURVIVABILITY_PERCENT
            - SUMMON_AVAILABLE
            - SINGLE_PROTECTION
            - SINGLE_SPEED_FILL
            - TARGET_BY_UNIT_IDS
    AbilityDecisionTarget:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
        - type: string
          enum:
            - AbilityDecisionTarget_DEFAULT
            - SELF
            - ALLY
            - ENEMY
            - DEAD_ALLY
    AbilityDecisionParamModifier:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - AbilityDecisionParamModifier_DEFAULT
            - GREATER_THAN
            - EQUAL_TO
            - LESS_THAN
    AbilityDecisionResult:
      type: object
      properties:
        allyTargetId:
          type: array
          items:
            type: string
        chosenAbilityTag:
          type: string
        decisionResultTarget:
          $ref: '#/components/schemas/AbilityDecisionResultTarget'
    AbilityDecisionResultTarget:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - AbilityDecisionResultTarget_DEFAULT
            - ALL
            - LOWEST_ABSOLUTE_HEALTH
    ConsumableDefinition:
      type: object
      properties:
        activeTimeInSeconds:
          type: integer
          format: int64
        consumableTypeId:
          type: string
        descriptionKey:
          type: string
        effectIconKey:
          type: string
        energyRegenTimeReduction:
          type: integer
          format: int32
        grantedAbility:
          type: array
          items:
            $ref: '#/components/schemas/MissionGrantedAbility'
        iconKey:
          type: string
        id:
          type: string
        nameKey:
          type: string
        staminaRecovery:
          type: integer
          format: int32
        staminaRegenTimeReduction:
          type: integer
          format: int32
        targetedStat:
          type: array
          items:
            $ref: '#/components/schemas/TargetedStat'
        tierId:
          type: string
        totalBattleUse:
          type: integer
          format: int32
    ConsumableType:
      type: object
      properties:
        descriptionKey:
          type: string
        iconKey:
          type: string
        nameKey:
          type: string
        typeId:
          type: string
    ArtifactTierDefinition:
      type: object
      properties:
        iconKey:
          type: string
        id:
          type: string
        nameKey:
          type: string
        rarity:
          $ref: '#/components/schemas/Rarity'
    ConsumableTierDefinition:
      type: object
      properties:
        effectIconFrameKey:
          type: string
        iconKey:
          type: string
        id:
          type: string
        nameKey:
          type: string
        rarity:
          $ref: '#/components/schemas/Rarity'
    UnitGuideLayout:
      type: object
      properties:
        id:
          type: string
        layoutTier:
          type: array
          items:
            $ref: '#/components/schemas/UnitGuideLayoutTier'
        tabTitleKey:
          type: string
    UnitGuideLayoutTier:
      type: object
      properties:
        layoutLine:
          type: array
          items:
            $ref: '#/components/schemas/UnitGuideLayoutLine'
        subtitleKey:
          type: string
        titleKey:
          type: string
    UnitGuideLayoutLine:
      type: object
      properties:
        unitGuideId:
          type: array
          items:
            type: string
    DailyLoginRewardDefinition:
      type: object
      properties:
        catchUp:
          $ref: '#/components/schemas/CalendarCatchUp'
        catchupCost:
          $ref: '#/components/schemas/BucketItem'
        category:
          type: string
        completionBehavior:
          $ref: '#/components/schemas/CalendarCompletionBehavior'
        defaultBucketItem:
          $ref: '#/components/schemas/BucketItem'
        delayFirstReward:
          type: boolean
        expiry:
          $ref: '#/components/schemas/CalendarExpiry'
        icon:
          type: string
        id:
          type: string
        message:
          type: string
        missedConsequence:
          $ref: '#/components/schemas/CalendarMissedConsequence'
        monthly:
          type: boolean
        resetTimeOffset:
          type: integer
          format: int64
        reward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        title:
          type: string
        useServerResetTime:
          type: boolean
        visualOverride:
          $ref: '#/components/schemas/CalendarVisuals'
    CalendarMissedConsequence:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - IGNORE_MISSED
            - SKIP_MISSED
            - RESET_ON_MISS
    CalendarCompletionBehavior:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - REMAIN
            - REMOVE
            - REPEAT
    CalendarCatchUp:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - DISABLED
            - MISSED_DAY
            - ANY_DAY
    CalendarExpiry:
      type: object
      properties:
        duration:
          type: integer
          format: int64
        endTime:
          type: integer
          format: int64
        expiryRequirement:
          $ref: '#/components/schemas/Requirement'
    CalendarVisuals:
      type: object
      properties:
        background:
          type: string
        button:
          type: string
    CalendarCategoryDefinition:
      type: object
      properties:
        id:
          type: string
        sortOrder:
          type: integer
          format: int32
        textKey:
          type: string
        unlimited:
          type: boolean
    TerritoryTournamentDailyRewardTable:
      type: object
      properties:
        row:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryTournamentDailyRewardTableRow'
    TerritoryTournamentDailyRewardTableRow:
      type: object
      properties:
        detailedReward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
        division:
          type: integer
          format: int32
        league:
          type: integer
          format: int32
        primaryReward:
          type: array
          items:
            $ref: '#/components/schemas/BucketItem'
    DatacronSet:
      type: object
      properties:
        detailPrefab:
          type: string
        displayName:
          type: string
        expirationTimeMs:
          type: integer
          format: int64
        focusedTier:
          type: array
          items:
            $ref: '#/components/schemas/DatacronSetTier'
        icon:
          type: string
        id:
          type: integer
          format: int32
        setMaterial:
          type: array
          items:
            $ref: '#/components/schemas/DatacronSetMaterial'
        tier:
          type: array
          items:
            $ref: '#/components/schemas/DatacronSetTier'
    DatacronSetTier:
      type: object
      properties:
        dustGrantRecipeId:
          type: string
        id:
          type: integer
          format: int32
        rerollCostRecipeId:
          type: array
          items:
            type: string
        scopeIdentifier:
          $ref: '#/components/schemas/DatacronScopeIdentifier'
        upgradeCostRecipeId:
          type: string
    DatacronScopeIdentifier:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
        - type: string
          enum:
            - DatacronScopeIdentifier_DEFAULT
            - STAT_SCOPE
            - ALIGNMENT_SCOPE
            - FACTION_SCOPE
            - CHARACTER_SCOPE
    DatacronSetMaterial:
      type: object
      properties:
        dustGrantRecipeId:
          type: string
        materialId:
          type: string
        quantityPerDustGrant:
          type: integer
          format: int32
    DatacronTemplate:
      type: object
      properties:
        allowReroll:
          type: boolean
        fixedTag:
          type: array
          items:
            type: string
        focused:
          type: boolean
        focusedIcon:
          type: string
        focusedPrefab:
          type: string
        id:
          type: string
        initialTiers:
          type: integer
          format: int32
        maxRerolls:
          type: integer
          format: int32
        referenceTemplateId:
          type: string
        setId:
          type: integer
          format: int32
        tier:
          type: array
          items:
            $ref: '#/components/schemas/DatacronTemplateTier'
    DatacronTemplateTier:
      type: object
      properties:
        affixTemplateSetId:
          type: array
          items:
            type: string
        id:
          type: integer
          format: int32
        initialAffixTemplateSetIds:
          type: array
          items:
            type: string
        overrideScopeIdentifier:
          $ref: '#/components/schemas/DatacronScopeIdentifier'
        overrideUpgradeCostRecipeId:
          type: string
        requiredRelicTier:
          $ref: '#/components/schemas/RelicTier'
        requiredUnitTier:
          $ref: '#/components/schemas/UnitTier'
    DatacronAffixTemplateSet:
      type: object
      properties:
        affix:
          type: array
          items:
            $ref: '#/components/schemas/DatacronAffixTemplate'
        id:
          type: string
    DatacronAffixTemplate:
      type: object
      properties:
        abilityId:
          type: string
        maxTier:
          type: integer
          format: int32
        minTier:
          type: integer
          format: int32
        scopeIcon:
          type: string
        statType:
          $ref: '#/components/schemas/UnitStat'
        statValueMax:
          type: integer
          format: int64
        statValueMin:
          type: integer
          format: int64
        tag:
          type: array
          items:
            type: string
        targetRule:
          type: string
    DatacronHelpEntry:
      type: object
      properties:
        body:
          type: string
        title:
          type: string
    UnitDefPreview:
      type: object
      properties:
        basicAttackRef:
          $ref: '#/components/schemas/AbilityReference'
        id:
          type: string
        limitBreakRef:
          type: array
          items:
            $ref: '#/components/schemas/AbilityReference'
        nameKey:
          type: string
        thumbnailName:
          type: string
        uniqueAbilityRef:
          type: array
          items:
            $ref: '#/components/schemas/AbilityReference'
    EpisodeDefinition:
      type: object
      properties:
        characterQuestLine:
          type: array
          items:
            $ref: '#/components/schemas/CharacterQuestLine'
        endTime:
          type: integer
          format: int64
        episodePassIcon:
          type: string
        episodePassIconFree:
          type: string
        episodePassIconPremium:
          type: string
        episodeQuestBlock:
          type: array
          items:
            $ref: '#/components/schemas/QuestBlockDefinition'
        id:
          type: string
        introQuestBlock:
          type: array
          items:
            $ref: '#/components/schemas/QuestBlockDefinition'
        objectivesViewBackground:
          type: string
        premiumImmediateRankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        purchasePassPopupBackground:
          type: string
        purchasePassPopupCenterImageBack:
          type: string
        purchasePassPopupCenterImageFront:
          type: string
        regularImmediateRankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        repeatableMilestone:
          $ref: '#/components/schemas/RepeatableMilestone'
        startTime:
          type: integer
          format: int64
        title:
          type: string
    RepeatableMilestone:
      type: object
      properties:
        pointInterval:
          type: integer
          format: int32
        reward:
          $ref: '#/components/schemas/BucketItem'
    QuestBlockDefinition:
      type: object
      properties:
        headlineQuestCompleteRequirement:
          type: integer
          format: int32
        headlineReward:
          $ref: '#/components/schemas/BucketItem'
        id:
          type: string
        questPreview:
          type: array
          items:
            $ref: '#/components/schemas/QuestPreview'
        title:
          type: string
    QuestPreview:
      type: object
      properties:
        challengeId:
          type: string
        unlockTime:
          type: integer
          format: int64
    CharacterQuestLine:
      type: object
      properties:
        characterQuestBlock:
          type: array
          items:
            $ref: '#/components/schemas/QuestBlockDefinition'
        endTime:
          type: integer
          format: int64
        image:
          type: string
        startTime:
          type: integer
          format: int64
        titleKey:
          type: string
        unitId:
          type: string
    EraDefinition:
      type: object
      properties:
        coliseum:
          $ref: '#/components/schemas/ColiseumDefinition'
        endTimeMs:
          type: integer
          format: int64
        episode:
          type: array
          items:
            type: string
        eraFrameTable:
          type: string
        eraLevel:
          type: array
          items:
            $ref: '#/components/schemas/EraLevelDefinition'
        eraShardCount:
          type: integer
          format: int32
        eraStartJourneyUnitTexture:
          type: string
        eraStartMarqueeTexture:
          type: string
        eraStartMarqueeTextureBackground:
          type: string
        eraSummaryTexture:
          type: string
        eraSummaryTextureBackground:
          type: string
        eraUnitId:
          type: array
          items:
            type: string
        expectedEraUnitCount:
          type: integer
          format: int32
        icon:
          type: string
        id:
          type: string
        journeyUnit:
          type: string
        loanedUnit:
          type: array
          items:
            $ref: '#/components/schemas/LoanedUnitEraDefinition'
        maxLoanedUnitEraLevel:
          type: integer
          format: int32
        missingJourneyUnit:
          type: boolean
        nameKey:
          type: string
        startTimeMs:
          type: integer
          format: int64
        startingLoanedUnitEraLevel:
          type: integer
          format: int32
        totalEraLevelsRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
    ColiseumDefinition:
      type: object
      properties:
        bossDefinition:
          type: array
          items:
            $ref: '#/components/schemas/ColiseumBossDefinition'
        bossSchedule:
          type: array
          items:
            $ref: '#/components/schemas/ColiseumBossSchedule'
        dailyRankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        dailyRankRewardTableId:
          type: string
    ColiseumBossDefinition:
      type: object
      properties:
        bossHighlightText:
          type: string
        bossRewardTable:
          type: array
          items:
            $ref: '#/components/schemas/ColiseumBossRewardTableDefinition'
        cantinaPrefab:
          type: string
        environmentPrefab:
          type: string
        identifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        longIntroCinematic:
          type: string
        mediumIntroCinematic:
          type: string
        shortIntroCinematic:
          type: string
        unitPrefab:
          type: string
    ColiseumBossRewardTableDefinition:
      type: object
      properties:
        bossProgressionRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        bossProgressionRewardTableId:
          type: string
        missionId:
          type: string
    ColiseumBossSchedule:
      type: object
      properties:
        bossIndex:
          type: integer
          format: int32
        endTime:
          type: integer
          format: int64
        eraDayIndex:
          type: integer
          format: int32
        reviewTime:
          type: integer
          format: int64
        startTime:
          type: integer
          format: int64
    EraLevelDefinition:
      type: object
      properties:
        currentAbilityLevel:
          type: integer
          format: int32
        currentGearPieces:
          type: integer
          format: int32
        currentGearTier:
          $ref: '#/components/schemas/UnitTier'
        currentRelicTier:
          $ref: '#/components/schemas/RelicTier'
        currentUnitLevel:
          type: integer
          format: int32
        level:
          type: integer
          format: int32
        majorMilestone:
          type: boolean
        requiredRarity:
          $ref: '#/components/schemas/Rarity'
        upgradeRecipeId:
          type: string
    LoanedUnitEraDefinition:
      type: object
      properties:
        expireTime:
          type: integer
          format: int64
        id:
          type: string
    Guild:
      type: object
      properties:
        guildEvents:
          type: array
          items:
            $ref: '#/components/schemas/GameEvent'
        inventory:
          $ref: '#/components/schemas/GuildInventory'
        inviteStatus:
          type: array
          items:
            $ref: '#/components/schemas/GuildInviteStatus'
        lastRaidPointsSummary:
          type: array
          items:
            $ref: '#/components/schemas/GuildRaidPointsSummary'
        member:
          type: array
          items:
            $ref: '#/components/schemas/GuildMember'
        nextChallengesRefresh:
          type: integer
          format: int64
        profile:
          $ref: '#/components/schemas/GuildProfile'
        progress:
          $ref: '#/components/schemas/GuildProgress'
        raidResult:
          type: array
          items:
            $ref: '#/components/schemas/GuildRaidResult'
        raidStatus:
          type: array
          items:
            $ref: '#/components/schemas/GuildRaidStatus'
        recentRaidResult:
          type: array
          items:
            $ref: '#/components/schemas/GuildRaidResult'
        recentTerritoryBattleResult:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryBattleResult'
        recentTerritoryWarResult:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryWarResult'
        roomAvailable:
          type: array
          items:
            $ref: '#/components/schemas/RoomData'
        stat:
          type: array
          items:
            $ref: '#/components/schemas/GuildStat'
        territoryBattleResult:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryBattleResult'
        territoryBattleStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryBattleStatus'
        territoryWarStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryWarStatus'
    GuildProfile:
      type: object
      properties:
        autoLaunchConfig:
          $ref: '#/components/schemas/GuildRaidLaunchConfig'
        bannerColorId:
          type: string
        bannerLogoId:
          type: string
        chatChannelId:
          type: string
        enrollmentStatus:
          $ref: '#/components/schemas/EnrollmentStatus'
        externalMessageKey:
          type: string
        guildEventTracker:
          type: array
          items:
            $ref: '#/components/schemas/GuildEventTracker'
        guildGalacticPower:
          type: integer
          format: int64
        guildGalacticPowerForRequirement:
          type: integer
          format: int64
        guildType:
          type: string
        id:
          type: string
        leaderboardScore:
          type: integer
          format: int64
        level:
          type: integer
          format: int32
        levelRequirement:
          type: integer
          format: int32
        logoBackground:
          type: string
        memberCount:
          type: integer
          format: int32
        memberMax:
          type: integer
          format: int32
        messageCriteriaKey:
          type: array
          items:
            type: string
        name:
          type: string
        raidLaunchConfig:
          type: array
          items:
            $ref: '#/components/schemas/GuildRaidLaunchConfig'
        raidWin:
          type: integer
          format: int32
        rank:
          type: integer
          format: int32
        singleLaunchConfig:
          $ref: '#/components/schemas/GuildRaidLaunchConfig'
        trophy:
          type: integer
          format: int32
    EnrollmentStatus:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - EnrollmentStatus_DEFAULT
            - ENROLLMENT_OPEN
            - ENROLLMENT_INVITE
            - ENROLLMENT_CLOSED
    GuildRaidLaunchConfig:
      type: object
      properties:
        autoLaunch:
          type: boolean
        autoLaunchImmediately:
          type: boolean
        autoLaunchTime:
          type: integer
          format: int64
        autoSimEnabled:
          type: boolean
        campaignMissionIdentifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        immediate:
          type: boolean
        joinPeriodDuration:
          type: integer
          format: int64
        raidId:
          type: string
        scheduledUtcOffsetSeconds:
          type: integer
          format: int64
    GuildEventTracker:
      type: object
      properties:
        completedStars:
          type: integer
          format: int64
        definitionId:
          type: string
        endTime:
          type: integer
          format: int64
    GuildMember:
      type: object
      properties:
        characterGalacticPower:
          type: integer
          format: int64
        galacticPower:
          type: integer
          format: int64
        guildJoinTime:
          type: integer
          format: int64
        guildXp:
          type: integer
          format: int32
        lastActivityTime:
          type: integer
          format: int64
        leagueId:
          type: string
        lifetimeSeasonScore:
          type: integer
          format: int64
        memberContribution:
          type: array
          items:
            $ref: '#/components/schemas/GuildMemberContribution'
        memberLevel:
          $ref: '#/components/schemas/GuildMemberLevel'
        nucleusId:
          type: string
        playerId:
          type: string
        playerLevel:
          type: integer
          format: int32
        playerName:
          type: string
        playerPortrait:
          type: string
        playerTitle:
          type: string
        seasonStatus:
          type: array
          items:
            $ref: '#/components/schemas/SeasonStatus'
        shipGalacticPower:
          type: integer
          format: int64
        squadPower:
          type: integer
          format: int32
    GuildMemberContribution:
      type: object
      properties:
        currentValue:
          type: integer
          format: int64
        lifetimeValue:
          type: integer
          format: int64
        type:
          $ref: '#/components/schemas/MemberContributionType'
    MemberContributionType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - MemberContributionType_DEFAULT
            - CONTRIBUTION_TYPE_COMMENDATION
            - CONTRIBUTION_TYPE_TRIBUTE
            - CONTRIBUTION_TYPE_DONATION
    SeasonStatus:
      type: object
      properties:
        division:
          type: integer
          format: int32
        endTime:
          type: integer
          format: int64
        eventInstanceId:
          type: string
        joinTime:
          type: integer
          format: int64
        league:
          type: string
        losses:
          type: integer
          format: int32
        rank:
          type: integer
          format: int32
        remove:
          type: boolean
        seasonId:
          type: string
        seasonPoints:
          type: integer
          format: int32
        wins:
          type: integer
          format: int32
    GuildInviteStatus:
      type: object
      properties:
        expireTime:
          type: integer
          format: int64
        guildId:
          type: string
        lastActiveTime:
          type: integer
          format: int64
        leaderUnit:
          $ref: '#/components/schemas/Unit'
        playerId:
          type: string
        playerLevel:
          type: integer
          format: int32
        playerName:
          type: string
        playerPortraitId:
          type: string
        sentTime:
          type: integer
          format: int64
        territoryTournamentLeagueId:
          type: string
        type:
          $ref: '#/components/schemas/GuildInviteType'
    GuildInviteType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - GuildInviteType_DEFAULT
            - GUILD_JOIN_REQUEST
            - GUILD_INVITATION
    GuildRaidStatus:
      type: object
      properties:
        activateTimeMs:
          type: integer
          format: int64
        cachedRewards:
          $ref: '#/components/schemas/CachedRaidRewards'
        claimedImmediateRewards:
          type: array
          items:
            type: integer
            format: int32
        currentEncounterPointsScored:
          type: integer
          format: int32
        eligibleForRewards:
          type: boolean
        encounterId:
          type: string
        exhaustedDatacronId:
          type: array
          items:
            type: string
        expireTime:
          type: integer
          format: int64
        forbidLateEntry:
          type: boolean
        guildRewardScore:
          type: integer
          format: int64
        hasPlayerParticipated:
          type: boolean
        identifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        ineligibleMemberId:
          type: array
          items:
            type: string
        instanceId:
          type: string
        joinPeriodEndTimeMs:
          type: integer
          format: int64
        lastEncounterIdPlayerParticipated:
          type: string
        opponentUnitState:
          type: array
          items:
            $ref: '#/components/schemas/BattleUnitState'
        playerUnitState:
          type: array
          items:
            $ref: '#/components/schemas/BattleUnitState'
        raidId:
          type: string
        raidMember:
          type: array
          items:
            $ref: '#/components/schemas/RaidMember'
        raidState:
          $ref: '#/components/schemas/RaidState'
        rosterRefreshTime:
          type: integer
          format: int64
        tallyEndTime:
          type: integer
          format: int64
    RaidState:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
        - type: string
          enum:
            - RaidState_DEFAULT
            - RAID_IN_PROGRESS
            - RAID_IN_TALLY
            - RAID_COMPLETE
            - RAID_EXPIRED
            - RAID_PENDING_COMPLETE
    RaidMember:
      type: object
      properties:
        memberAttempt:
          type: integer
          format: int32
        memberProgress:
          type: integer
          format: int64
        memberRank:
          type: integer
          format: int32
        playerId:
          type: string
    CachedRaidRewards:
      type: object
      properties:
        immediateRegularRankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
        rankRewardPreview:
          type: array
          items:
            $ref: '#/components/schemas/RankRewardPreview'
    GuildInventory:
      type: object
      properties:
        currencyItem:
          type: array
          items:
            $ref: '#/components/schemas/CurrencyItem'
        currentDailyLimit:
          type: array
          items:
            $ref: '#/components/schemas/CurrencyItem'
    GuildRaidResult:
      type: object
      properties:
        cachedRewards:
          $ref: '#/components/schemas/CachedRaidRewards'
        duration:
          type: integer
          format: int64
        encounterProgress:
          type: array
          items:
            type: integer
            format: int64
        endTime:
          type: integer
          format: int64
        guildRewardScore:
          type: integer
          format: int64
        identifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        outcome:
          $ref: '#/components/schemas/RaidOutcome'
        participationLockoutTime:
          type: integer
          format: int64
        progress:
          type: number
          format: float
        raidId:
          type: string
        raidMember:
          type: array
          items:
            $ref: '#/components/schemas/RaidMember'
    RaidOutcome:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
        - type: string
          enum:
            - RAID_OUTCOME_UNDEFINED
            - RAID_OUTCOME_WIN
            - RAID_OUTCOME_EXPIRED
            - RAID_OUTCOME_IN_PROGRESS
            - RAID_OUTCOME_ABANDONED
            - RAID_OUTCOME_SIMMED
    GuildProgress:
      type: object
      properties:
        raidProgress:
          type: array
          items:
            $ref: '#/components/schemas/GuildRaidProgress'
    GuildRaidProgress:
      type: object
      properties:
        identifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        progress:
          $ref: '#/components/schemas/CampaignElementProgress'
        winCount:
          type: integer
          format: int32
    TerritoryBattleStatus:
      type: object
      properties:
        channelId:
          type: string
        conflictZoneStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryConflictZoneStatus'
        covertZoneStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryCovertZoneStatus'
        currentRound:
          type: integer
          format: int32
        currentRoundEndTime:
          type: integer
          format: int64
        currentStat:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryMapStat'
        definitionId:
          type: string
        instanceId:
          type: string
        lastCommandNotificationTime:
          type: integer
          format: int64
        mapCompletedEarly:
          type: boolean
        playerStatus:
          $ref: '#/components/schemas/TerritoryBattlePlayerStatus'
        reconZoneStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryReconZoneStatus'
        selected:
          type: boolean
        strikeZoneStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryStrikeZoneStatus'
    TerritoryConflictZoneStatus:
      type: object
      properties:
        zoneStatus:
          $ref: '#/components/schemas/TerritoryZoneStatus'
    TerritoryZoneStatus:
      type: object
      properties:
        channelId:
          type: string
        commandMessage:
          type: string
        commandState:
          $ref: '#/components/schemas/TerritoryZoneCommandState'
        score:
          type: integer
          format: int64
        zoneId:
          type: string
        zoneState:
          $ref: '#/components/schemas/TerritoryZoneState'
    TerritoryZoneState:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
        - type: string
          enum:
            - TerritoryZoneState_DEFAULT
            - ZONE_LOCKED
            - ZONE_ACTIVE
            - ZONE_OPEN
            - ZONE_COMPLETED
    TerritoryZoneCommandState:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - TerritoryZoneCommandState_DEFAULT
            - NO_COMMAND
            - FOCUSED
            - IGNORED
    TerritoryStrikeZoneStatus:
      type: object
      properties:
        playersParticipated:
          type: integer
          format: int32
        zoneStatus:
          $ref: '#/components/schemas/TerritoryZoneStatus'
    TerritoryReconZoneStatus:
      type: object
      properties:
        platoon:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryReconZonePlatoon'
        zoneStatus:
          $ref: '#/components/schemas/TerritoryZoneStatus'
    TerritoryReconZonePlatoon:
      type: object
      properties:
        id:
          type: string
        squad:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryReconZoneSquad'
    TerritoryReconZoneSquad:
      type: object
      properties:
        id:
          type: string
        unit:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryReconZoneUnit'
    TerritoryReconZoneUnit:
      type: object
      properties:
        level:
          type: integer
          format: int32
        memberId:
          type: string
        tier:
          $ref: '#/components/schemas/UnitTier'
        unitIdentifier:
          type: string
        unitRelicTier:
          $ref: '#/components/schemas/RelicTier'
    TerritoryBattlePlayerStatus:
      type: object
      properties:
        datacronStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryPlayerDatacronStatus'
        unitStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryPlayerUnitStatus'
        zoneStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryPlayerZoneStatus'
    TerritoryPlayerZoneStatus:
      type: object
      properties:
        attempt:
          type: integer
          format: int32
        zoneId:
          type: string
    TerritoryPlayerUnitStatus:
      type: object
      properties:
        deployedZoneId:
          type: string
        unitId:
          type: string
    TerritoryPlayerDatacronStatus:
      type: object
      properties:
        datacronId:
          type: string
        deployedZoneId:
          type: string
    TerritoryCovertZoneStatus:
      type: object
      properties:
        playersParticipated:
          type: integer
          format: int32
        successfulAttempts:
          type: integer
          format: int32
        zoneStatus:
          $ref: '#/components/schemas/TerritoryZoneStatus'
    TerritoryMapStat:
      type: object
      properties:
        mapStatId:
          type: string
        playerStat:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryPlayerStat'
    TerritoryPlayerStat:
      type: object
      properties:
        covertZoneResult:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryStatCovertZoneResult'
        memberId:
          type: string
        score:
          type: integer
          format: int64
    TerritoryStatCovertZoneResult:
      type: object
      properties:
        covertZoneId:
          type: string
        result:
          $ref: '#/components/schemas/TerritoryCovertMissionResult'
    TerritoryCovertMissionResult:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
        - type: string
          enum:
            - UNATTEMPTED
            - ATTEMPTED_FAILED
            - ATTEMPTED_SUCCEEDED
    TerritoryBattleResult:
      type: object
      properties:
        definitionId:
          type: string
        endTime:
          type: integer
          format: int64
        finalStat:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryMapStat'
        instanceId:
          type: string
        startTime:
          type: integer
          format: int64
        totalStars:
          type: integer
          format: int64
    TerritoryWarStatus:
      type: object
      properties:
        awayGuild:
          $ref: '#/components/schemas/TerritoryWarGuildStatus'
        channelId:
          type: string
        currentRound:
          type: integer
          format: int32
        currentRoundEndTime:
          type: integer
          format: int64
        currentStat:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryMapStat'
        definitionId:
          type: string
        excludedFromWar:
          type: boolean
        hasReportedEnemyGuild:
          type: boolean
        homeGuild:
          $ref: '#/components/schemas/TerritoryWarGuildStatus'
        instanceId:
          type: string
        lastCommandNotificationTime:
          type: integer
          format: int64
        mapCompletedEarly:
          type: boolean
        optedInMember:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryWarParticipant'
        optedInMemberId:
          type: array
          items:
            type: string
        playerStatus:
          $ref: '#/components/schemas/TerritoryWarPlayerStatus'
    TerritoryWarGuildStatus:
      type: object
      properties:
        conflictStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryWarConflictZoneStatus'
        profile:
          $ref: '#/components/schemas/TerritoryGuildProfile'
        reconStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryReconZoneStatus'
    TerritoryGuildProfile:
      type: object
      properties:
        bannerColorId:
          type: string
        bannerLogoId:
          type: string
        guildGalacticPower:
          type: integer
          format: int64
        id:
          type: string
        logoBackground:
          type: string
        name:
          type: string
    TerritoryWarConflictZoneStatus:
      type: object
      properties:
        defeatedSquadCount:
          type: integer
          format: int32
        squadCapacity:
          type: integer
          format: int32
        squadCount:
          type: integer
          format: int32
        warSquad:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryWarSquad'
        zoneStatus:
          $ref: '#/components/schemas/TerritoryZoneStatus'
    TerritoryWarSquad:
      type: object
      properties:
        crewInfo:
          type: array
          items:
            $ref: '#/components/schemas/UnitTierSummary'
        lockName:
          type: string
        playerId:
          type: string
        playerName:
          type: string
        power:
          type: integer
          format: int32
        squad:
          $ref: '#/components/schemas/Squad'
        squadId:
          type: string
        squadStatus:
          $ref: '#/components/schemas/TerritoryWarSquadStatus'
        successfulDefends:
          type: integer
          format: int32
    TerritoryWarSquadStatus:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - TerritoryWarSquadStatus_DEFAULT
            - SQUAD_AVAILABLE
            - SQUAD_LOCKED
            - SQUAD_DEFEATED
    UnitTierSummary:
      type: object
      properties:
        baseId:
          type: string
        tier:
          $ref: '#/components/schemas/UnitTier'
        unitRelicTier:
          $ref: '#/components/schemas/RelicTier'
    TerritoryWarPlayerStatus:
      type: object
      properties:
        datacronRoster:
          type: array
          items:
            $ref: '#/components/schemas/DatacronBattleStat'
        datacronStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryPlayerDatacronStatus'
        unitStatus:
          type: array
          items:
            $ref: '#/components/schemas/TerritoryPlayerUnitStatus'
        warRoster:
          type: array
          items:
            $ref: '#/components/schemas/UnitBattleStat'
    TerritoryWarParticipant:
      type: object
      properties:
        eligible:
          type: boolean
        joinTime:
          type: integer
          format: int64
        memberId:
          type: string
        power:
          type: integer
          format: int32
    RoomData:
      type: object
      properties:
        creationTime:
          type: integer
          format: int64
        name:
          type: string
        ownerId:
          type: string
        roomId:
          type: string
        topic:
          type: string
        type:
          $ref: '#/components/schemas/RoomType'
    RoomType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
        - type: string
          enum:
            - RoomType_DEFAULT
            - GUILD_DEFAULT
            - GUILD_CHAT
            - GUILD_CHAT_OFFICER
            - PLAYER_DIRECT_CHAT
            - PLAYER_GROUP_CHAT
    GuildStat:
      type: object
      properties:
        id:
          type: string
        value:
          type: integer
          format: int64
    TerritoryWarResult:
      type: object
      properties:
        endTimeSeconds:
          type: integer
          format: int64
        opponentGuildProfile:
          $ref: '#/components/schemas/TerritoryGuildProfile'
        opponentScore:
          type: integer
          format: int64
        power:
          type: integer
          format: int32
        score:
          type: integer
          format: int64
        startTime:
          type: integer
          format: int64
        territoryWarId:
          type: string
    GuildRaidPointsSummary:
      type: object
      properties:
        identifier:
          $ref: '#/components/schemas/CampaignElementIdentifier'
        totalPoints:
          type: integer
          format: int64
    GuildLeaderboard:
      type: object
      properties:
        guild:
          type: array
          items:
            $ref: '#/components/schemas/GuildProfile'
        leaderboardId:
          $ref: '#/components/schemas/GuildLeaderboardId'
        resetTimestamp:
          type: integer
          format: int64
    GuildLeaderboardId:
      type: object
      properties:
        defId:
          type: string
        leaderboardType:
          $ref: '#/components/schemas/GuildLeaderboardType'
        monthOffset:
          type: integer
          format: int32
    GuildLeaderboardType:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
            - 5
            - 6
        - type: string
          enum:
            - GuildLeaderboardType_DEFAULT
            - GUILD_RAID_ALL_COMP_PTS
            - GUILD_RAID_COMP_PTS
            - GUILD_GALACTIC_POWER
            - GUILD_TERRITORY_BATTLE_STARS
            - GUILD_TERRITORY_WAR_OPPONENT_GALACTIC_POWER
            - GUILD_RAID_HIGH_WATERMARK
    LeaderboardPlayer:
      type: object
      properties:
        guild:
          $ref: '#/components/schemas/LeaderboardGuild'
        id:
          type: string
        isFake:
          type: boolean
        level:
          type: integer
          format: int32
        name:
          type: string
        playerRating:
          $ref: '#/components/schemas/PlayerRating'
        portrait:
          type: string
        power:
          type: integer
          format: int32
        pvpStatus:
          $ref: '#/components/schemas/LeaderboardStatus'
        seasonLeagueId:
          type: string
        seasonsLifetimeScore:
          type: integer
          format: int64
        squadUnit:
          type: array
          items:
            $ref: '#/components/schemas/Unit'
        tier:
          type: integer
          format: int32
        title:
          type: string
    LeaderboardGuild:
      type: object
      properties:
        bannerColorId:
          type: string
        bannerLogoId:
          type: string
        guildTypeId:
          type: string
        id:
          type: string
        name:
          type: string
    LeaderboardStatus:
      type: object
      properties:
        rank:
          type: integer
          format: int32
        rankDelta:
          type: integer
          format: int32
        score:
          type: integer
          format: int32
        scoreDelta:
          type: integer
          format: int32
        tier:
          type: integer
          format: int32
    PlayerRating:
      type: object
      properties:
        playerRankStatus:
          $ref: '#/components/schemas/PlayerRankStatus'
        playerSkillRating:
          $ref: '#/components/schemas/PlayerSkillRating'
    PlayerSkillRating:
      type: object
      properties:
        skillRating:
          type: integer
          format: int32
    PlayerRankStatus:
      type: object
      properties:
        divisionId:
          type: integer
          format: int32
        leagueId:
          type: string
    LeaderboardData:
      type: object
      properties:
        id:
          type: string
        player:
          type: array
          items:
            $ref: '#/components/schemas/LeaderboardPlayer'
        playerStatus:
          $ref: '#/components/schemas/LeaderboardStatus'
    ConfigEntry:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
    ClientQualityData:
      type: object
      properties:
        flag:
          type: array
          items:
            type: string
        gcActivityLevel:
          $ref: '#/components/schemas/GcActivityLevel'
        memoryLevel:
          $ref: '#/components/schemas/MemoryLevel'
        performanceLevel:
          $ref: '#/components/schemas/PerformanceLevel'
        vfxAllocationLevel:
          $ref: '#/components/schemas/VfxAllocationLevel'
    PerformanceLevel:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - PerformanceLevel_DEFAULT
            - PERFORMANCE_LOW
            - PERFORMANCE_MEDIUM
            - PERFORMANCE_HIGH
    MemoryLevel:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - MemoryLevel_DEFAULT
            - MEMORY_LOW
            - MEMORY_MEDIUM
            - MEMORY_HIGH
    GcActivityLevel:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - GcActivityLevel_DEFAULT
            - GC_ACTIVITY_LOW
            - GC_ACTIVITY_MEDIUM
            - GC_ACTIVITY_HIGH
    VfxAllocationLevel:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - VfxAllocationLevel_DEFAULT
            - VFX_ON_DEMAND
            - VFX_PRELOAD
            - VFX_PRELOAD_AND_ALLOCATE
    ClientCacheEntry:
      type: object
      properties:
        domain:
          $ref: '#/components/schemas/ClientCacheDomain'
        version:
          type: integer
          format: int32
    ClientCacheDomain:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
            - 4
        - type: string
          enum:
            - ClientCacheDomain_DEFAULT
            - ASSETS
            - GAMEDATA
            - PLAYER_PREFS
            - LOCALIZATION
    EADPParameters:
      type: object
      properties:
        eaMobileClientId:
          type: string
        eadpAllowedCryptKey:
          type: string
        eadpBaseUrl:
          type: string
        eadpBaseUrlClient:
          type: string
        eadpClientId:
          type: string
        eadpClientSecret:
          type: string
        eadpEnv:
          type: string
        eadpWindowsAchievementCode:
          type: string
        eadpWindowsCommerceGroupName:
          type: string
        eadpWindowsContentId:
          type: string
        eadpWindowsEncryptSeed:
          type: string
        eadpWindowsMultiplayerId:
          type: string
        eadpWindowsTitle:
          type: string
    ServerProperty:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
    PlayerProfileStat:
      type: object
      properties:
        index:
          type: integer
          format: int32
        nameKey:
          type: string
        value:
          type: integer
          format: int64
        versionKey:
          type: string
    PlayerPvpProfile:
      type: object
      properties:
        eventId:
          type: string
        rank:
          type: integer
          format: int32
        squad:
          $ref: '#/components/schemas/Squad'
        tab:
          $ref: '#/components/schemas/PlayerProfileTab'
    PlayerProfileTab:
      oneOf:
        - type: integer
          enum:
            - 0
            - 1
            - 2
            - 3
        - type: string
          enum:
            - PlayerProfileTab_DEFAULT
            - PROFILE_PVP_CHARACTER
            - PROFILE_PVP_SHIP
            - PROFILE_PVP_TOURNAMENT
    PlayerTitle:
      type: object
      properties:
        id:
          type: string
    PlayerPortrait:
      type: object
      properties:
        id:
          type: string
    Datacron:
      type: object
      properties:
        affix:
          type: array
          items:
            $ref: '#/components/schemas/DatacronAffix'
        focused:
          type: boolean
        id:
          type: string
        locked:
          type: boolean
        rerollCount:
          type: integer
          format: int32
        rerollIndex:
          type: integer
          format: int32
        rerollOption:
          type: array
          items:
            $ref: '#/components/schemas/DatacronAffix'
        setId:
          type: integer
          format: int32
        tag:
          type: array
          items:
            type: string
        templateId:
          type: string
    EraUnitStatus:
      type: object
      properties:
        eraLevel:
          type: integer
          format: int32
        unitBaseId:
          type: string
    SegmentedContent:
      type: object
      properties:
        segments:
          type: array
          items:
            $ref: '#/components/schemas/ContentSegment'
    ContentSegment:
      type: object
      properties:
        files:
          type: array
          items:
            $ref: '#/components/schemas/ContentSegmentFile'
        name:
          type: string
    ContentSegmentFile:
      type: object
      properties:
        filters:
          type: string
        groupId:
          type: string
        id:
          type: string
        path:
          type: string
        size:
          type: integer
          format: int32
  responses:
    errorResponse:
      description: error response
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: string
              message:
                type: string
            additionalProperties: false
    successResponse:
      description: successful response
      content:
        application/json:
          schema:
            type: object
    plainSuccessResponse:
      description: successful response
      content:
        text/plain:
          schema:
            type: string
    plainErrorResponse:
      description: error response
      content:
        text/plain:
          schema:
            type: string
