openapi: 3.0.0
servers:
  - url: https://www.bungie.net/Platform
info:
  contact:
    email: support@bungie.com
    name: Bungie.net API Support
    url: https://github.com/Bungie-net/api
  description: These endpoints constitute the functionality exposed by Bungie.net, both for more traditional website functionality and for connectivity to Bungie video games and their related functionality.
  license:
    name: BSD License 2.0
    url: https://github.com/Bungie-net/api/blob/master/LICENSE
  termsOfService: https://www.bungie.net/en/View/Bungie/terms
  title: Bungie.Net API
  version: 2.18.0
  x-apisguru-categories:
    - media
  x-logo:
    backgroundColor: "#FFFFFF"
    url: https://pbs.twimg.com/profile_images/560547568992944129/x46z946T_400x400.jpeg
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/Bungie-net/api/master/openapi-2.json
      version: "3.0"
  x-providerName: bungie.net
externalDocs:
  description: Our Wiki page about OAuth through Bungie.net.
  url: https://github.com/Bungie-net/api/wiki/OAuth-Documentation
tags:
  - description: application
    name: App
  - description: user
    name: User
  - description: content
    name: Content
  - description: forum
    name: Forum
  - description: groupV2
    name: GroupV2
  - description: tokens
    name: Tokens
  - description: destiny2
    name: Destiny2
  - description: communitycontent
    name: CommunityContent
  - description: trending
    name: Trending
  - description: fireteam
    name: Fireteam
  - description: social
    name: Social
  - description: core
    name: ""
paths:
  "/App/ApiUsage/{applicationId}/":
    get:
      deprecated: false
      description: Get API usage by application for time frame specified. You can go as far back as 30 days ago, and can ask for up to a 48 hour window of time in a single request. You must be authenticated with at least the ReadUserData permission to access this endpoint.
      operationId: App.GetApplicationApiUsage
      parameters:
        - description: ID of the application to get usage statistics.
          in: path
          name: applicationId
          required: true
          schema:
            format: int32
            type: integer
        - description: End time for query. Goes to now if not specified.
          in: query
          name: end
          schema:
            format: date-time
            type: string
        - description: Start time for query. Goes to 24 hours ago if not specified.
          in: query
          name: start
          schema:
            format: date-time
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Applications.ApiUsage"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadUserData
      tags:
        - App
  /App/FirstParty/:
    get:
      deprecated: false
      description: Get list of applications created by Bungie.
      operationId: App.GetBungieApplications
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/Applications.Application"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - App
  "/CommunityContent/Get/{sort}/{mediaFilter}/{page}/":
    get:
      deprecated: false
      description: Returns community content.
      operationId: CommunityContent.GetCommunityContent
      parameters:
        - description: The type of media to get
          in: path
          name: mediaFilter
          required: true
          schema:
            format: int32
            type: integer
        - description: Zero based page
          in: path
          name: page
          required: true
          schema:
            format: int32
            type: integer
        - description: The sort mode.
          in: path
          name: sort
          required: true
          schema:
            format: uint8
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Forum.PostSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - CommunityContent
  "/Content/GetContentById/{id}/{locale}/":
    get:
      deprecated: false
      description: Returns a content item referenced by id
      operationId: Content.GetContentById
      parameters:
        - description: "false"
          in: query
          name: head
          schema:
            type: boolean
        - description: ""
          in: path
          name: id
          required: true
          schema:
            format: int64
            type: integer
        - description: ""
          in: path
          name: locale
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Content.ContentItemPublicContract"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Content
  "/Content/GetContentByTagAndType/{tag}/{type}/{locale}/":
    get:
      deprecated: false
      description: Returns the newest item that matches a given tag and Content Type.
      operationId: Content.GetContentByTagAndType
      parameters:
        - description: Not used.
          in: query
          name: head
          schema:
            type: boolean
        - description: ""
          in: path
          name: locale
          required: true
          schema:
            type: string
        - description: ""
          in: path
          name: tag
          required: true
          schema:
            type: string
        - description: ""
          in: path
          name: type
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Content.ContentItemPublicContract"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Content
  "/Content/GetContentType/{type}/":
    get:
      deprecated: false
      description: Gets an object describing a particular variant of content.
      operationId: Content.GetContentType
      parameters:
        - description: ""
          in: path
          name: type
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Content.Models.ContentTypeDescription"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Content
  "/Content/Rss/NewsArticles/{pageToken}/":
    get:
      deprecated: false
      description: Returns a JSON string response that is the RSS feed for news articles.
      operationId: Content.RssNewsArticles
      parameters:
        - description: Optionally filter response to only include news items in a certain category.
          in: query
          name: categoryfilter
          schema:
            type: string
        - description: Optionally include full content body for each news item.
          in: query
          name: includebody
          schema:
            type: boolean
        - description: Zero-based pagination token for paging through result sets.
          in: path
          name: pageToken
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Content.NewsArticleRssResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Content
  "/Content/Search/{locale}/":
    get:
      deprecated: false
      description: Gets content based on querystring information passed in. Provides basic search and text search capabilities.
      operationId: Content.SearchContentWithText
      parameters:
        - description: "Content type tag: Help, News, etc. Supply multiple ctypes separated by space."
          in: query
          name: ctype
          schema:
            type: string
        - description: Page number for the search results, starting with page 1.
          in: query
          name: currentpage
          schema:
            format: int32
            type: integer
        - description: Not used.
          in: query
          name: head
          schema:
            type: boolean
        - description: ""
          in: path
          name: locale
          required: true
          schema:
            type: string
        - description: Word or phrase for the search.
          in: query
          name: searchtext
          schema:
            type: string
        - description: For analytics, hint at the part of the app that triggered the search. Optional.
          in: query
          name: source
          schema:
            type: string
        - description: Tag used on the content to be searched.
          in: query
          name: tag
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/SearchResultOfContentItemPublicContract"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Content
  "/Content/SearchContentByTagAndType/{tag}/{type}/{locale}/":
    get:
      deprecated: false
      description: Searches for Content Items that match the given Tag and Content Type.
      operationId: Content.SearchContentByTagAndType
      parameters:
        - description: Page number for the search results starting with page 1.
          in: query
          name: currentpage
          schema:
            format: int32
            type: integer
        - description: Not used.
          in: query
          name: head
          schema:
            type: boolean
        - description: Not used.
          in: query
          name: itemsperpage
          schema:
            format: int32
            type: integer
        - description: ""
          in: path
          name: locale
          required: true
          schema:
            type: string
        - description: ""
          in: path
          name: tag
          required: true
          schema:
            type: string
        - description: ""
          in: path
          name: type
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/SearchResultOfContentItemPublicContract"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Content
  "/Content/SearchHelpArticles/{searchtext}/{size}/":
    get:
      deprecated: false
      description: Search for Help Articles.
      operationId: Content.SearchHelpArticles
      parameters:
        - description: ""
          in: path
          name: searchtext
          required: true
          schema:
            type: string
        - description: ""
          in: path
          name: size
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Content
  /Destiny2/Actions/Items/EquipItem/:
    post:
      deprecated: false
      description: Equip an item. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline.
      operationId: Destiny2.EquipItem
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - MoveEquipDestinyItems
      tags:
        - Destiny2
      x-documentation-attributes:
        ThrottleSecondsBetweenActionPerUser: "0.1"
  /Destiny2/Actions/Items/EquipItems/:
    post:
      deprecated: false
      description: Equip a list of items by itemInstanceIds. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline. Any items not found on your character will be ignored.
      operationId: Destiny2.EquipItems
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.DestinyEquipItemResults"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: The results of a bulk Equipping operation performed through the Destiny API.
      security:
        - oauth2:
            - MoveEquipDestinyItems
      tags:
        - Destiny2
      x-documentation-attributes:
        ThrottleSecondsBetweenActionPerUser: "0.1"
  /Destiny2/Actions/Items/InsertSocketPlug/:
    post:
      deprecated: false
      description: Insert a plug into a socketed item. I know how it sounds, but I assure you it's much more G-rated than you might be guessing. We haven't decided yet whether this will be able to insert plugs that have side effects, but if we do it will require special scope permission for an application attempting to do so. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline. Request must include proof of permission for 'InsertPlugs' from the account owner.
      operationId: Destiny2.InsertSocketPlug
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Responses.DestinyItemChangeResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdvancedWriteActions
      tags:
        - Destiny2
        - Preview
      x-documentation-attributes:
        ThrottleSecondsBetweenActionPerUser: "0.5"
      x-preview: true
  /Destiny2/Actions/Items/InsertSocketPlugFree/:
    post:
      deprecated: false
      description: Insert a 'free' plug into an item's socket. This does not require 'Advanced Write Action' authorization and is available to 3rd-party apps, but will only work on 'free and reversible' socket actions (Perks, Armor Mods, Shaders, Ornaments, etc.). You must have a valid Destiny Account, and the character must either be in a social space, in orbit, or offline.
      operationId: Destiny2.InsertSocketPlugFree
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Responses.DestinyItemChangeResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - MoveEquipDestinyItems
      tags:
        - Destiny2
        - Preview
      x-documentation-attributes:
        ThrottleSecondsBetweenActionPerUser: "0.5"
      x-preview: true
  /Destiny2/Actions/Items/PullFromPostmaster/:
    post:
      deprecated: false
      description: Extract an item from the Postmaster, with whatever implications that may entail. You must have a valid Destiny account. You must also pass BOTH a reference AND an instance ID if it's an instanced item.
      operationId: Destiny2.PullFromPostmaster
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - MoveEquipDestinyItems
      tags:
        - Destiny2
      x-documentation-attributes:
        ThrottleSecondsBetweenActionPerUser: "0.1"
  /Destiny2/Actions/Items/SetLockState/:
    post:
      deprecated: false
      description: Set the Lock State for an instanced item. You must have a valid Destiny Account.
      operationId: Destiny2.SetItemLockState
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - MoveEquipDestinyItems
      tags:
        - Destiny2
      x-documentation-attributes:
        ThrottleSecondsBetweenActionPerUser: "0.1"
  /Destiny2/Actions/Items/SetTrackedState/:
    post:
      deprecated: false
      description: Set the Tracking State for an instanced item, if that item is a Quest or Bounty. You must have a valid Destiny Account. Yeah, it's an item.
      operationId: Destiny2.SetQuestTrackedState
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - MoveEquipDestinyItems
      tags:
        - Destiny2
      x-documentation-attributes:
        ThrottleSecondsBetweenActionPerUser: "1"
  /Destiny2/Actions/Items/TransferItem/:
    post:
      deprecated: false
      description: Transfer an item to/from your vault. You must have a valid Destiny account. You must also pass BOTH a reference AND an instance ID if it's an instanced item. itshappening.gif
      operationId: Destiny2.TransferItem
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - MoveEquipDestinyItems
      tags:
        - Destiny2
      x-documentation-attributes:
        ThrottleSecondsBetweenActionPerUser: "0.1"
  /Destiny2/Actions/Loadouts/ClearLoadout/:
    post:
      deprecated: false
      description: Clear the identifiers and items of a loadout.
      operationId: Destiny2.ClearLoadout
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - MoveEquipDestinyItems
      tags:
        - Destiny2
      x-documentation-attributes:
        ThrottleSecondsBetweenActionPerUser: "1"
  /Destiny2/Actions/Loadouts/EquipLoadout/:
    post:
      deprecated: false
      description: Equip a loadout. You must have a valid Destiny Account, and either be in a social space, in orbit, or offline.
      operationId: Destiny2.EquipLoadout
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - MoveEquipDestinyItems
      tags:
        - Destiny2
      x-documentation-attributes:
        ThrottleSecondsBetweenActionPerUser: "1"
  /Destiny2/Actions/Loadouts/SnapshotLoadout/:
    post:
      deprecated: false
      description: Snapshot a loadout with the currently equipped items.
      operationId: Destiny2.SnapshotLoadout
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - MoveEquipDestinyItems
      tags:
        - Destiny2
      x-documentation-attributes:
        ThrottleSecondsBetweenActionPerUser: "1"
  /Destiny2/Actions/Loadouts/UpdateLoadoutIdentifiers/:
    post:
      deprecated: false
      description: Update the color, icon, and name of a loadout.
      operationId: Destiny2.UpdateLoadoutIdentifiers
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - MoveEquipDestinyItems
      tags:
        - Destiny2
      x-documentation-attributes:
        ThrottleSecondsBetweenActionPerUser: "1"
  "/Destiny2/Armory/Search/{type}/{searchTerm}/":
    get:
      deprecated: false
      description: Gets a page list of Destiny items.
      operationId: Destiny2.SearchDestinyEntities
      parameters:
        - description: Page number to return, starting with 0.
          in: query
          name: page
          schema:
            format: int32
            type: integer
        - description: The string to use when searching for Destiny entities.
          in: path
          name: searchTerm
          required: true
          schema:
            type: string
        - description: The type of entity for whom you would like results. These correspond to the entity's definition contract name. For instance, if you are looking for items, this property should be 'DestinyInventoryItemDefinition'.
          in: path
          name: type
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Definitions.DestinyEntitySearchResult"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: The results of a search for Destiny content. This will be improved on over time, I've been doing some experimenting to see what might be useful.
      tags:
        - Destiny2
  /Destiny2/Awa/AwaProvideAuthorizationResult/:
    post:
      deprecated: false
      description: Provide the result of the user interaction. Called by the Bungie Destiny App to approve or reject a request.
      operationId: Destiny2.AwaProvideAuthorizationResult
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
  "/Destiny2/Awa/GetActionToken/{correlationId}/":
    get:
      deprecated: false
      description: Returns the action token if user approves the request.
      operationId: Destiny2.AwaGetActionToken
      parameters:
        - description: The identifier for the advanced write action request.
          in: path
          name: correlationId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Advanced.AwaAuthorizationResult"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdvancedWriteActions
      tags:
        - Destiny2
  /Destiny2/Awa/Initialize/:
    post:
      deprecated: false
      description: Initialize a request to perform an advanced write action.
      operationId: Destiny2.AwaInitializeRequest
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Advanced.AwaInitializeResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdvancedWriteActions
      tags:
        - Destiny2
  /Destiny2/Clan/ClanBannerDictionary/:
    get:
      deprecated: false
      description: Returns the dictionary of values for the Clan Banner
      operationId: Destiny2.GetClanBannerSource
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Config.ClanBanner.ClanBannerSource"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
  "/Destiny2/Clan/{groupId}/WeeklyRewardState/":
    get:
      deprecated: false
      description: Returns information on the weekly clan rewards and if the clan has earned them or not. Note that this will always report rewards as not redeemed.
      operationId: Destiny2.GetClanWeeklyRewardState
      parameters:
        - description: A valid group id of clan.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestone"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Represents a runtime instance of a user's milestone status. Live Milestone data should be combined with DestinyMilestoneDefinition data to show the user a picture of what is available for them to do in the game, and their status in regards to said "things to do." Consider it a big, wonky to-do list, or Advisors 3.0 for those who remember the Destiny 1 API.
      tags:
        - Destiny2
  /Destiny2/Manifest/:
    get:
      deprecated: false
      description: Returns the current version of the manifest as a json object.
      operationId: Destiny2.GetDestinyManifest
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Config.DestinyManifest"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: DestinyManifest is the external-facing contract for just the properties needed by those calling the Destiny Platform.
      tags:
        - Destiny2
  "/Destiny2/Manifest/{entityType}/{hashIdentifier}/":
    get:
      deprecated: false
      description: Returns the static definition of an entity of the given Type and hash identifier. Examine the API Documentation for the Type Names of entities that have their own definitions. Note that the return type will always *inherit from* DestinyDefinition, but the specific type returned will be the requested entity type if it can be found. Please don't use this as a chatty alternative to the Manifest database if you require large sets of data, but for simple and one-off accesses this should be handy.
      operationId: Destiny2.GetDestinyEntityDefinition
      parameters:
        - description: "The type of entity for whom you would like results. These correspond to the entity's definition contract name. For instance, if you are looking for items, this property should be 'DestinyInventoryItemDefinition'. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is tentatively in final form, but there may be bugs that prevent desirable operation."
          in: path
          name: entityType
          required: true
          schema:
            type: string
        - description: The hash identifier for the specific Entity you want returned.
          in: path
          name: hashIdentifier
          required: true
          schema:
            format: uint32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Definitions.DestinyDefinition"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Provides common properties for destiny definitions.
      tags:
        - Destiny2
  /Destiny2/Milestones/:
    get:
      deprecated: false
      description: Gets public information about currently available Milestones.
      operationId: Destiny2.GetPublicMilestones
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      $ref: "#/components/schemas/Destiny.Milestones.DestinyPublicMilestone"
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
  "/Destiny2/Milestones/{milestoneHash}/Content/":
    get:
      deprecated: false
      description: Gets custom localized content for the milestone of the given hash, if it exists.
      operationId: Destiny2.GetPublicMilestoneContent
      parameters:
        - description: The identifier for the milestone to be returned.
          in: path
          name: milestoneHash
          required: true
          schema:
            format: uint32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneContent"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Represents localized, extended content related to Milestones. This is intentionally returned by a separate endpoint and not with Character-level Milestone data because we do not put localized data into standard Destiny responses, both for brevity of response and for caching purposes. If you really need this data, hit the Milestone Content endpoint.
      tags:
        - Destiny2
  "/Destiny2/SearchDestinyPlayerByBungieName/{membershipType}/":
    post:
      deprecated: false
      description: Returns a list of Destiny memberships given a global Bungie Display Name. This method will hide overridden memberships due to cross save.
      operationId: Destiny2.SearchDestinyPlayerByBungieName
      parameters:
        - description: A valid non-BungieNet membership type, or All. Indicates which memberships to return. You probably want this set to All.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/User.UserInfoCard"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
  "/Destiny2/Stats/AggregateClanStats/{groupId}/":
    get:
      deprecated: false
      description: "Gets aggregated stats for a clan using the same categories as the clan leaderboards. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation."
      operationId: Destiny2.GetClanAggregateStats
      parameters:
        - description: Group ID of the clan whose leaderboards you wish to fetch.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.
          in: query
          name: modes
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyClanAggregateStat"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
        - Preview
      x-preview: true
  /Destiny2/Stats/Definition/:
    get:
      deprecated: false
      description: Gets historical stats definitions.
      operationId: Destiny2.GetHistoricalStatsDefinition
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      $ref: "#/components/schemas/Destiny.HistoricalStats.Definitions.DestinyHistoricalStatsDefinition"
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
  "/Destiny2/Stats/Leaderboards/Clans/{groupId}/":
    get:
      deprecated: false
      description: "Gets leaderboards with the signed in user's friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation."
      operationId: Destiny2.GetClanLeaderboards
      parameters:
        - description: Group ID of the clan whose leaderboards you wish to fetch.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: Maximum number of top players to return. Use a large number to get entire leaderboard.
          in: query
          name: maxtop
          schema:
            format: int32
            type: integer
        - description: List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.
          in: query
          name: modes
          schema:
            type: string
        - description: ID of stat to return rather than returning all Leaderboard stats.
          in: query
          name: statid
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      additionalProperties:
                        $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyLeaderboard"
                      type: object
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
        - Preview
      x-preview: true
  "/Destiny2/Stats/Leaderboards/{membershipType}/{destinyMembershipId}/{characterId}/":
    get:
      deprecated: false
      description: "Gets leaderboards with the signed in user's friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint is still in beta, and may experience rough edges. The schema is in final form, but there may be bugs that prevent desirable operation."
      operationId: Destiny2.GetLeaderboardsForCharacter
      parameters:
        - description: The specific character to build the leaderboard around for the provided Destiny Membership.
          in: path
          name: characterId
          required: true
          schema:
            format: int64
            type: integer
        - description: The Destiny membershipId of the user to retrieve.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: Maximum number of top players to return. Use a large number to get entire leaderboard.
          in: query
          name: maxtop
          schema:
            format: int32
            type: integer
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
        - description: List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.
          in: query
          name: modes
          schema:
            type: string
        - description: ID of stat to return rather than returning all Leaderboard stats.
          in: query
          name: statid
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      additionalProperties:
                        $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyLeaderboard"
                      type: object
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
        - Preview
      x-preview: true
  "/Destiny2/Stats/PostGameCarnageReport/{activityId}/":
    get:
      deprecated: false
      description: Gets the available post game carnage report for the activity ID.
      operationId: Destiny2.GetPostGameCarnageReport
      parameters:
        - description: The ID of the activity whose PGCR is requested.
          in: path
          name: activityId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyPostGameCarnageReportData"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
  "/Destiny2/Stats/PostGameCarnageReport/{activityId}/Report/":
    post:
      deprecated: false
      description: Report a player that you met in an activity that was engaging in ToS-violating activities. Both you and the offending player must have played in the activityId passed in. Please use this judiciously and only when you have strong suspicions of violation, pretty please.
      operationId: Destiny2.ReportOffensivePostGameCarnageReportPlayer
      parameters:
        - description: The ID of the activity where you ran into the brigand that you're reporting.
          in: path
          name: activityId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - BnetWrite
      tags:
        - Destiny2
  /Destiny2/Vendors/:
    get:
      deprecated: false
      description: "Get items available from vendors where the vendors have items for sale that are common for everyone. If any portion of the Vendor's available inventory is character or account specific, we will be unable to return their data from this endpoint due to the way that available inventory is computed. As I am often guilty of saying: 'It's a long story...'"
      operationId: Destiny2.GetPublicVendors
      parameters:
        - description: A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.
          explode: false
          in: query
          name: components
          schema:
            items:
              description: "Represents the possible components that can be returned from Destiny \"Get\" calls such as GetProfile, GetCharacter, GetVendor etc...\r

                When making one of these requests, you will pass one or more of these components as a comma separated list in the \"?components=\" querystring parameter. For instance, if you want baseline Profile data, Character Data, and character progressions, you would pass \"?components=Profiles,Characters,CharacterProgressions\" You may use either the numerical or string values."
              format: int32
              type: integer
              x-enum-reference:
                $ref: "#/components/schemas/schema2"
            type: array
          style: form
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Responses.DestinyPublicVendorsResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: "A response containing all valid components for the public Vendors endpoint.\r

            \ It is a decisively smaller subset of data compared to what we can get when we know the specific user making the request.\r

            \ If you want any of the other data - item details, whether or not you can buy it, etc... you'll have to call in the context of a character. I know, sad but true."
      tags:
        - Destiny2
        - Preview
      x-preview: true
  "/Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/":
    get:
      deprecated: false
      description: Gets historical stats for indicated character.
      operationId: Destiny2.GetHistoricalStats
      parameters:
        - description: The id of the character to retrieve. You can omit this character ID or set it to 0 to get aggregate stats across all characters.
          in: path
          name: characterId
          required: true
          schema:
            format: int64
            type: integer
        - description: Last day to return when daily stats are requested. Use the format YYYY-MM-DD. Currently, we cannot allow more than 31 days of daily data to be requested in a single request.
          in: query
          name: dayend
          schema:
            format: date-time
            type: string
        - description: First day to return when daily stats are requested. Use the format YYYY-MM-DD. Currently, we cannot allow more than 31 days of daily data to be requested in a single request.
          in: query
          name: daystart
          schema:
            format: date-time
            type: string
        - description: The Destiny membershipId of the user to retrieve.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: "Group of stats to include, otherwise only general stats are returned. Comma separated list is allowed. Values: General, Weapons, Medals"
          explode: false
          in: query
          name: groups
          schema:
            items:
              description: If the enum value is > 100, it is a "special" group that cannot be queried for directly (special cases apply to when they are returned, and are not relevant in general cases)
              format: int32
              type: integer
              x-enum-reference:
                $ref: "#/components/schemas/schema3"
            type: array
          style: form
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
        - description: Game modes to return. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.
          explode: false
          in: query
          name: modes
          schema:
            items:
              description: For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don't take this to mean that some D1-only feature is coming back!
              format: int32
              type: integer
              x-enum-reference:
                $ref: "#/components/schemas/schema4"
            type: array
          style: form
        - description: "Indicates a specific period type to return. Optional. May be: Daily, AllTime, or Activity"
          in: query
          name: periodType
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod"
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
  "/Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/Activities/":
    get:
      deprecated: false
      description: Gets activity history stats for indicated character.
      operationId: Destiny2.GetActivityHistory
      parameters:
        - description: The id of the character to retrieve.
          in: path
          name: characterId
          required: true
          schema:
            format: int64
            type: integer
        - description: Number of rows to return
          in: query
          name: count
          schema:
            format: int32
            type: integer
        - description: The Destiny membershipId of the user to retrieve.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
        - description: A filter for the activity mode to be returned. None returns all activities. See the documentation for DestinyActivityModeType for valid values, and pass in string representation.
          in: query
          name: mode
          schema:
            format: int32
            type: integer
        - description: Page number to return, starting with 0.
          in: query
          name: page
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyActivityHistoryResults"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
  "/Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/AggregateActivityStats/":
    get:
      deprecated: false
      description: Gets all activities the character has participated in together with aggregate statistics for those activities.
      operationId: Destiny2.GetDestinyAggregateActivityStats
      parameters:
        - description: The specific character whose activities should be returned.
          in: path
          name: characterId
          required: true
          schema:
            format: int64
            type: integer
        - description: The Destiny membershipId of the user to retrieve.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyAggregateActivityResults"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
  "/Destiny2/{membershipType}/Account/{destinyMembershipId}/Character/{characterId}/Stats/UniqueWeapons/":
    get:
      deprecated: false
      description: Gets details about unique weapon usage, including all exotic weapons.
      operationId: Destiny2.GetUniqueWeaponHistory
      parameters:
        - description: The id of the character to retrieve.
          in: path
          name: characterId
          required: true
          schema:
            format: int64
            type: integer
        - description: The Destiny membershipId of the user to retrieve.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalWeaponStatsData"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
  "/Destiny2/{membershipType}/Account/{destinyMembershipId}/Stats/":
    get:
      deprecated: false
      description: Gets aggregate historical stats organized around each character for a given account.
      operationId: Destiny2.GetHistoricalStatsForAccount
      parameters:
        - description: The Destiny membershipId of the user to retrieve.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: "Groups of stats to include, otherwise only general stats are returned. Comma separated list is allowed. Values: General, Weapons, Medals."
          explode: false
          in: query
          name: groups
          schema:
            items:
              description: If the enum value is > 100, it is a "special" group that cannot be queried for directly (special cases apply to when they are returned, and are not relevant in general cases)
              format: int32
              type: integer
              x-enum-reference:
                $ref: "#/components/schemas/schema3"
            type: array
          style: form
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsAccountResult"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
  "/Destiny2/{membershipType}/Account/{destinyMembershipId}/Stats/Leaderboards/":
    get:
      deprecated: false
      description: "Gets leaderboards with the signed in user's friends and the supplied destinyMembershipId as the focus. PREVIEW: This endpoint has not yet been implemented. It is being returned for a preview of future functionality, and for public comment/suggestion/preparation."
      operationId: Destiny2.GetLeaderboards
      parameters:
        - description: The Destiny membershipId of the user to retrieve.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: Maximum number of top players to return. Use a large number to get entire leaderboard.
          in: query
          name: maxtop
          schema:
            format: int32
            type: integer
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
        - description: List of game modes for which to get leaderboards. See the documentation for DestinyActivityModeType for valid values, and pass in string representation, comma delimited.
          in: query
          name: modes
          schema:
            type: string
        - description: ID of stat to return rather than returning all Leaderboard stats.
          in: query
          name: statid
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      additionalProperties:
                        $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyLeaderboard"
                      type: object
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Destiny2
        - Preview
      x-preview: true
  "/Destiny2/{membershipType}/Profile/{destinyMembershipId}/":
    get:
      deprecated: false
      description: Returns Destiny Profile information for the supplied membership.
      operationId: Destiny2.GetProfile
      parameters:
        - description: A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.
          explode: false
          in: query
          name: components
          schema:
            items:
              description: "Represents the possible components that can be returned from Destiny \"Get\" calls such as GetProfile, GetCharacter, GetVendor etc...\r

                When making one of these requests, you will pass one or more of these components as a comma separated list in the \"?components=\" querystring parameter. For instance, if you want baseline Profile data, Character Data, and character progressions, you would pass \"?components=Profiles,Characters,CharacterProgressions\" You may use either the numerical or string values."
              format: int32
              type: integer
              x-enum-reference:
                $ref: "#/components/schemas/schema2"
            type: array
          style: form
        - description: Destiny membership ID.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Responses.DestinyProfileResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: The response for GetDestinyProfile, with components for character and item-level data.
      tags:
        - Destiny2
  "/Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/":
    get:
      deprecated: false
      description: Returns character information for the supplied character.
      operationId: Destiny2.GetCharacter
      parameters:
        - description: ID of the character.
          in: path
          name: characterId
          required: true
          schema:
            format: int64
            type: integer
        - description: A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.
          explode: false
          in: query
          name: components
          schema:
            items:
              description: "Represents the possible components that can be returned from Destiny \"Get\" calls such as GetProfile, GetCharacter, GetVendor etc...\r

                When making one of these requests, you will pass one or more of these components as a comma separated list in the \"?components=\" querystring parameter. For instance, if you want baseline Profile data, Character Data, and character progressions, you would pass \"?components=Profiles,Characters,CharacterProgressions\" You may use either the numerical or string values."
              format: int32
              type: integer
              x-enum-reference:
                $ref: "#/components/schemas/schema2"
            type: array
          style: form
        - description: Destiny membership ID.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Responses.DestinyCharacterResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: The response contract for GetDestinyCharacter, with components that can be returned for character and item-level data.
      tags:
        - Destiny2
  "/Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/Collectibles/{collectiblePresentationNodeHash}/":
    get:
      deprecated: false
      description: Given a Presentation Node that has Collectibles as direct descendants, this will return item details about those descendants in the context of the requesting character.
      operationId: Destiny2.GetCollectibleNodeDetails
      parameters:
        - description: The Destiny Character ID of the character for whom we're getting collectible detail info.
          in: path
          name: characterId
          required: true
          schema:
            format: int64
            type: integer
        - description: The hash identifier of the Presentation Node for whom we should return collectible details. Details will only be returned for collectibles that are direct descendants of this node.
          in: path
          name: collectiblePresentationNodeHash
          required: true
          schema:
            format: uint32
            type: integer
        - description: A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.
          explode: false
          in: query
          name: components
          schema:
            items:
              description: "Represents the possible components that can be returned from Destiny \"Get\" calls such as GetProfile, GetCharacter, GetVendor etc...\r

                When making one of these requests, you will pass one or more of these components as a comma separated list in the \"?components=\" querystring parameter. For instance, if you want baseline Profile data, Character Data, and character progressions, you would pass \"?components=Profiles,Characters,CharacterProgressions\" You may use either the numerical or string values."
              format: int32
              type: integer
              x-enum-reference:
                $ref: "#/components/schemas/schema2"
            type: array
          style: form
        - description: Destiny membership ID of another user. You may be denied.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Responses.DestinyCollectibleNodeDetailResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Returns the detailed information about a Collectible Presentation Node and any Collectibles that are direct descendants.
      tags:
        - Destiny2
  "/Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/Vendors/":
    get:
      deprecated: false
      description: Get currently available vendors from the list of vendors that can possibly have rotating inventory. Note that this does not include things like preview vendors and vendors-as-kiosks, neither of whom have rotating/dynamic inventories. Use their definitions as-is for those.
      operationId: Destiny2.GetVendors
      parameters:
        - description: The Destiny Character ID of the character for whom we're getting vendor info.
          in: path
          name: characterId
          required: true
          schema:
            format: int64
            type: integer
        - description: A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.
          explode: false
          in: query
          name: components
          schema:
            items:
              description: "Represents the possible components that can be returned from Destiny \"Get\" calls such as GetProfile, GetCharacter, GetVendor etc...\r

                When making one of these requests, you will pass one or more of these components as a comma separated list in the \"?components=\" querystring parameter. For instance, if you want baseline Profile data, Character Data, and character progressions, you would pass \"?components=Profiles,Characters,CharacterProgressions\" You may use either the numerical or string values."
              format: int32
              type: integer
              x-enum-reference:
                $ref: "#/components/schemas/schema2"
            type: array
          style: form
        - description: Destiny membership ID of another user. You may be denied.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: The filter of what vendors and items to return, if any.
          in: query
          name: filter
          schema:
            format: int32
            type: integer
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Responses.DestinyVendorsResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: A response containing all of the components for all requested vendors.
      tags:
        - Destiny2
  "/Destiny2/{membershipType}/Profile/{destinyMembershipId}/Character/{characterId}/Vendors/{vendorHash}/":
    get:
      deprecated: false
      description: Get the details of a specific Vendor.
      operationId: Destiny2.GetVendor
      parameters:
        - description: The Destiny Character ID of the character for whom we're getting vendor info.
          in: path
          name: characterId
          required: true
          schema:
            format: int64
            type: integer
        - description: A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.
          explode: false
          in: query
          name: components
          schema:
            items:
              description: "Represents the possible components that can be returned from Destiny \"Get\" calls such as GetProfile, GetCharacter, GetVendor etc...\r

                When making one of these requests, you will pass one or more of these components as a comma separated list in the \"?components=\" querystring parameter. For instance, if you want baseline Profile data, Character Data, and character progressions, you would pass \"?components=Profiles,Characters,CharacterProgressions\" You may use either the numerical or string values."
              format: int32
              type: integer
              x-enum-reference:
                $ref: "#/components/schemas/schema2"
            type: array
          style: form
        - description: Destiny membership ID of another user. You may be denied.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
        - description: The Hash identifier of the Vendor to be returned.
          in: path
          name: vendorHash
          required: true
          schema:
            format: uint32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Responses.DestinyVendorResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: A response containing all of the components for a vendor.
      tags:
        - Destiny2
  "/Destiny2/{membershipType}/Profile/{destinyMembershipId}/Item/{itemInstanceId}/":
    get:
      deprecated: false
      description: Retrieve the details of an instanced Destiny Item. An instanced Destiny item is one with an ItemInstanceId. Non-instanced items, such as materials, have no useful instance-specific details and thus are not queryable here.
      operationId: Destiny2.GetItem
      parameters:
        - description: A comma separated list of components to return (as strings or numeric values). See the DestinyComponentType enum for valid components to request. You must request at least one component to receive results.
          explode: false
          in: query
          name: components
          schema:
            items:
              description: "Represents the possible components that can be returned from Destiny \"Get\" calls such as GetProfile, GetCharacter, GetVendor etc...\r

                When making one of these requests, you will pass one or more of these components as a comma separated list in the \"?components=\" querystring parameter. For instance, if you want baseline Profile data, Character Data, and character progressions, you would pass \"?components=Profiles,Characters,CharacterProgressions\" You may use either the numerical or string values."
              format: int32
              type: integer
              x-enum-reference:
                $ref: "#/components/schemas/schema2"
            type: array
          style: form
        - description: The membership ID of the destiny profile.
          in: path
          name: destinyMembershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: The Instance ID of the destiny item.
          in: path
          name: itemInstanceId
          required: true
          schema:
            format: int64
            type: integer
        - description: A valid non-BungieNet membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Responses.DestinyItemResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: "The response object for retrieving an individual instanced item. None of these components are relevant for an item that doesn't have an \"itemInstanceId\": for those, get your information from the DestinyInventoryDefinition."
      tags:
        - Destiny2
  "/Destiny2/{membershipType}/Profile/{membershipId}/LinkedProfiles/":
    get:
      deprecated: false
      description: Returns a summary information about all profiles linked to the requesting membership type/membership ID that have valid Destiny information. The passed-in Membership Type/Membership ID may be a Bungie.Net membership or a Destiny membership. It only returns the minimal amount of data to begin making more substantive requests, but will hopefully serve as a useful alternative to UserServices for people who just care about Destiny data. Note that it will only return linked accounts whose linkages you are allowed to view.
      operationId: Destiny2.GetLinkedProfiles
      parameters:
        - description: (optional) if set to 'true', all memberships regardless of whether they're obscured by overrides will be returned. Normal privacy restrictions on account linking will still apply no matter what.
          in: query
          name: getAllMemberships
          schema:
            type: boolean
        - description: "The ID of the membership whose linked Destiny accounts you want returned. Make sure your membership ID matches its Membership Type: don't pass us a PSN membership ID and the XBox membership type, it's not going to work!"
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: The type for the membership whose linked Destiny accounts you want returned.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Destiny.Responses.DestinyLinkedProfilesResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: "I know what you seek. You seek linked accounts. Found them, you have.\r

            This contract returns a minimal amount of data about Destiny Accounts that are linked through your Bungie.Net account. We will not return accounts in this response whose"
      tags:
        - Destiny2
  "/Fireteam/Clan/{groupId}/ActiveCount/":
    get:
      deprecated: false
      description: Gets a count of all active non-public fireteams for the specified clan. Maximum value returned is 25.
      operationId: Fireteam.GetActivePrivateClanFireteamCount
      parameters:
        - description: The group id of the clan.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadGroups
      tags:
        - Fireteam
  "/Fireteam/Clan/{groupId}/Available/{platform}/{activityType}/{dateRange}/{slotFilter}/{publicOnly}/{page}/":
    get:
      deprecated: false
      description: Gets a listing of all of this clan's fireteams that are have available slots. Caller is not checked for join criteria so caching is maximized.
      operationId: Fireteam.GetAvailableClanFireteams
      parameters:
        - description: The activity type to filter by.
          in: path
          name: activityType
          required: true
          schema:
            format: int32
            type: integer
        - description: The date range to grab available fireteams.
          in: path
          name: dateRange
          required: true
          schema:
            format: uint8
            type: integer
        - description: If you wish the result to exclude immediate fireteams, set this to true. Immediate-only can be forced using the dateRange enum.
          in: query
          name: excludeImmediate
          schema:
            type: boolean
        - description: The group id of the clan.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: An optional language filter.
          in: query
          name: langFilter
          schema:
            type: string
        - description: Zero based page
          in: path
          name: page
          required: true
          schema:
            format: int32
            type: integer
        - description: The platform filter.
          in: path
          name: platform
          required: true
          schema:
            format: uint8
            type: integer
        - description: Determines public/private filtering.
          in: path
          name: publicOnly
          required: true
          schema:
            format: uint8
            type: integer
        - description: Filters based on available slots
          in: path
          name: slotFilter
          required: true
          schema:
            format: uint8
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/SearchResultOfFireteamSummary"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadGroups
      tags:
        - Fireteam
  "/Fireteam/Clan/{groupId}/My/{platform}/{includeClosed}/{page}/":
    get:
      deprecated: false
      description: Gets a listing of all fireteams that caller is an applicant, a member, or an alternate of.
      operationId: Fireteam.GetMyClanFireteams
      parameters:
        - description: If true, filter by clan. Otherwise, ignore the clan and show all of the user's fireteams.
          in: query
          name: groupFilter
          schema:
            type: boolean
        - description: The group id of the clan. (This parameter is ignored unless the optional query parameter groupFilter is true).
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: If true, return fireteams that have been closed.
          in: path
          name: includeClosed
          required: true
          schema:
            type: boolean
        - description: An optional language filter.
          in: query
          name: langFilter
          schema:
            type: string
        - deprecated: true
          description: Deprecated parameter, ignored.
          in: path
          name: page
          required: true
          schema:
            format: int32
            type: integer
        - description: The platform filter.
          in: path
          name: platform
          required: true
          schema:
            format: uint8
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/SearchResultOfFireteamResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadGroups
      tags:
        - Fireteam
  "/Fireteam/Clan/{groupId}/Summary/{fireteamId}/":
    get:
      deprecated: false
      description: Gets a specific fireteam.
      operationId: Fireteam.GetClanFireteam
      parameters:
        - description: The unique id of the fireteam.
          in: path
          name: fireteamId
          required: true
          schema:
            format: int64
            type: integer
        - description: The group id of the clan.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Fireteam.FireteamResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadGroups
      tags:
        - Fireteam
  "/Fireteam/Search/Available/{platform}/{activityType}/{dateRange}/{slotFilter}/{page}/":
    get:
      deprecated: false
      description: Gets a listing of all public fireteams starting now with open slots. Caller is not checked for join criteria so caching is maximized.
      operationId: Fireteam.SearchPublicAvailableClanFireteams
      parameters:
        - description: The activity type to filter by.
          in: path
          name: activityType
          required: true
          schema:
            format: int32
            type: integer
        - description: The date range to grab available fireteams.
          in: path
          name: dateRange
          required: true
          schema:
            format: uint8
            type: integer
        - description: If you wish the result to exclude immediate fireteams, set this to true. Immediate-only can be forced using the dateRange enum.
          in: query
          name: excludeImmediate
          schema:
            type: boolean
        - description: An optional language filter.
          in: query
          name: langFilter
          schema:
            type: string
        - description: Zero based page
          in: path
          name: page
          required: true
          schema:
            format: int32
            type: integer
        - description: The platform filter.
          in: path
          name: platform
          required: true
          schema:
            format: uint8
            type: integer
        - description: Filters based on available slots
          in: path
          name: slotFilter
          required: true
          schema:
            format: uint8
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/SearchResultOfFireteamSummary"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadGroups
      tags:
        - Fireteam
  "/Forum/GetCoreTopicsPaged/{page}/{sort}/{quickDate}/{categoryFilter}/":
    get:
      deprecated: false
      description: Gets a listing of all topics marked as part of the core group.
      operationId: Forum.GetCoreTopicsPaged
      parameters:
        - description: The category filter.
          in: path
          name: categoryFilter
          required: true
          schema:
            format: int32
            type: integer
        - description: Comma seperated list of locales posts must match to return in the result list. Default 'en'
          in: query
          name: locales
          schema:
            type: string
        - description: Zero base page
          in: path
          name: page
          required: true
          schema:
            format: int32
            type: integer
        - description: The date filter.
          in: path
          name: quickDate
          required: true
          schema:
            format: int32
            type: integer
        - description: The sort mode.
          in: path
          name: sort
          required: true
          schema:
            format: uint8
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Forum.PostSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Forum
  /Forum/GetForumTagSuggestions/:
    get:
      deprecated: false
      description: Gets tag suggestions based on partial text entry, matching them with other tags previously used in the forums.
      operationId: Forum.GetForumTagSuggestions
      parameters:
        - description: The partial tag input to generate suggestions from.
          in: query
          name: partialtag
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/Tags.Models.Contracts.TagResponse"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Forum
  "/Forum/GetPostAndParent/{childPostId}/":
    get:
      deprecated: false
      description: Returns the post specified and its immediate parent.
      operationId: Forum.GetPostAndParent
      parameters:
        - description: ""
          in: path
          name: childPostId
          required: true
          schema:
            format: int64
            type: integer
        - description: If this value is not null or empty, banned posts are requested to be returned
          in: query
          name: showbanned
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Forum.PostSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Forum
  "/Forum/GetPostAndParentAwaitingApproval/{childPostId}/":
    get:
      deprecated: false
      description: Returns the post specified and its immediate parent of posts that are awaiting approval.
      operationId: Forum.GetPostAndParentAwaitingApproval
      parameters:
        - description: ""
          in: path
          name: childPostId
          required: true
          schema:
            format: int64
            type: integer
        - description: If this value is not null or empty, banned posts are requested to be returned
          in: query
          name: showbanned
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Forum.PostSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Forum
  "/Forum/GetPostsThreadedPaged/{parentPostId}/{page}/{pageSize}/{replySize}/{getParentPost}/{rootThreadMode}/{sortMode}/":
    get:
      deprecated: false
      description: Returns a thread of posts at the given parent, optionally returning replies to those posts as well as the original parent.
      operationId: Forum.GetPostsThreadedPaged
      parameters:
        - description: ""
          in: path
          name: getParentPost
          required: true
          schema:
            type: boolean
        - description: ""
          in: path
          name: page
          required: true
          schema:
            format: int32
            type: integer
        - description: ""
          in: path
          name: pageSize
          required: true
          schema:
            format: int32
            type: integer
        - description: ""
          in: path
          name: parentPostId
          required: true
          schema:
            format: int64
            type: integer
        - description: ""
          in: path
          name: replySize
          required: true
          schema:
            format: int32
            type: integer
        - description: ""
          in: path
          name: rootThreadMode
          required: true
          schema:
            type: boolean
        - description: If this value is not null or empty, banned posts are requested to be returned
          in: query
          name: showbanned
          schema:
            type: string
        - description: ""
          in: path
          name: sortMode
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Forum.PostSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Forum
  "/Forum/GetPostsThreadedPagedFromChild/{childPostId}/{page}/{pageSize}/{replySize}/{rootThreadMode}/{sortMode}/":
    get:
      deprecated: false
      description: Returns a thread of posts starting at the topicId of the input childPostId, optionally returning replies to those posts as well as the original parent.
      operationId: Forum.GetPostsThreadedPagedFromChild
      parameters:
        - description: ""
          in: path
          name: childPostId
          required: true
          schema:
            format: int64
            type: integer
        - description: ""
          in: path
          name: page
          required: true
          schema:
            format: int32
            type: integer
        - description: ""
          in: path
          name: pageSize
          required: true
          schema:
            format: int32
            type: integer
        - description: ""
          in: path
          name: replySize
          required: true
          schema:
            format: int32
            type: integer
        - description: ""
          in: path
          name: rootThreadMode
          required: true
          schema:
            type: boolean
        - description: If this value is not null or empty, banned posts are requested to be returned
          in: query
          name: showbanned
          schema:
            type: string
        - description: ""
          in: path
          name: sortMode
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Forum.PostSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Forum
  "/Forum/GetTopicForContent/{contentId}/":
    get:
      deprecated: false
      description: Gets the post Id for the given content item's comments, if it exists.
      operationId: Forum.GetTopicForContent
      parameters:
        - description: ""
          in: path
          name: contentId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int64
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Forum
  "/Forum/GetTopicsPaged/{page}/{pageSize}/{group}/{sort}/{quickDate}/{categoryFilter}/":
    get:
      deprecated: false
      description: Get topics from any forum.
      operationId: Forum.GetTopicsPaged
      parameters:
        - description: A category filter
          in: path
          name: categoryFilter
          required: true
          schema:
            format: int32
            type: integer
        - description: The group, if any.
          in: path
          name: group
          required: true
          schema:
            format: int64
            type: integer
        - description: Comma seperated list of locales posts must match to return in the result list. Default 'en'
          in: query
          name: locales
          schema:
            type: string
        - description: Zero paged page number
          in: path
          name: page
          required: true
          schema:
            format: int32
            type: integer
        - description: Unused
          in: path
          name: pageSize
          required: true
          schema:
            format: int32
            type: integer
        - description: A date filter.
          in: path
          name: quickDate
          required: true
          schema:
            format: int32
            type: integer
        - description: The sort mode.
          in: path
          name: sort
          required: true
          schema:
            format: uint8
            type: integer
        - description: The tags to search, if any.
          in: query
          name: tagstring
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Forum.PostSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Forum
  "/Forum/Poll/{topicId}/":
    get:
      deprecated: false
      description: Gets the specified forum poll.
      operationId: Forum.GetPoll
      parameters:
        - description: The post id of the topic that has the poll.
          in: path
          name: topicId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Forum.PostSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Forum
  /Forum/Recruit/Summaries/:
    post:
      deprecated: false
      description: Allows the caller to get a list of to 25 recruitment thread summary information objects.
      operationId: Forum.GetRecruitmentThreadSummaries
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/Forum.ForumRecruitmentDetail"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Forum
  /GetAvailableLocales/:
    get:
      deprecated: false
      description: List of available localization cultures
      operationId: .GetAvailableLocales
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      type: string
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - ""
  /GlobalAlerts/:
    get:
      deprecated: false
      description: Gets any active global alert for display in the forum banners, help pages, etc. Usually used for DOC alerts.
      operationId: .GetGlobalAlerts
      parameters:
        - description: Determines whether Streaming Alerts are included in results
          in: query
          name: includestreaming
          schema:
            type: boolean
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/GlobalAlert"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - ""
  /GroupV2/GetAvailableAvatars/:
    get:
      deprecated: false
      description: Returns a list of all available group avatars for the signed-in user.
      operationId: GroupV2.GetAvailableAvatars
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      type: string
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  /GroupV2/GetAvailableThemes/:
    get:
      deprecated: false
      description: Returns a list of all available group themes.
      operationId: GroupV2.GetAvailableThemes
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/Config.GroupTheme"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  "/GroupV2/GetUserClanInviteSetting/{mType}/":
    get:
      deprecated: false
      description: Gets the state of the user's clan invite preferences for a particular membership type - true if they wish to be invited to clans, false otherwise.
      operationId: GroupV2.GetUserClanInviteSetting
      parameters:
        - description: The Destiny membership type of the account we wish to access settings.
          in: path
          name: mType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    type: boolean
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadUserData
      tags:
        - GroupV2
  "/GroupV2/Name/{groupName}/{groupType}/":
    get:
      deprecated: false
      description: Get information about a specific group with the given name and type.
      operationId: GroupV2.GetGroupByName
      parameters:
        - description: Exact name of the group to find.
          in: path
          name: groupName
          required: true
          schema:
            type: string
        - description: Type of group to find.
          in: path
          name: groupType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/GroupsV2.GroupResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  /GroupV2/NameV2/:
    post:
      deprecated: false
      description: Get information about a specific group with the given name and type. The POST version.
      operationId: GroupV2.GetGroupByNameV2
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/GroupsV2.GroupResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  "/GroupV2/Recommended/{groupType}/{createDateRange}/":
    post:
      deprecated: false
      description: Gets groups recommended for you based on the groups to whom those you follow belong.
      operationId: GroupV2.GetRecommendedGroups
      parameters:
        - description: Requested range in which to pull recommended groups
          in: path
          name: createDateRange
          required: true
          schema:
            format: int32
            type: integer
        - description: Type of groups requested
          in: path
          name: groupType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/GroupsV2.GroupV2Card"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadGroups
      tags:
        - GroupV2
  "/GroupV2/Recover/{membershipType}/{membershipId}/{groupType}/":
    get:
      deprecated: false
      description: Allows a founder to manually recover a group they can see in game but not on bungie.net
      operationId: GroupV2.RecoverGroupForFounder
      parameters:
        - description: Type of group the supplied member founded.
          in: path
          name: groupType
          required: true
          schema:
            format: int32
            type: integer
        - description: Membership ID to for which to find founded groups.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership type of the supplied membership ID.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/GroupsV2.GroupMembershipSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  /GroupV2/Search/:
    post:
      deprecated: false
      description: Search for Groups.
      operationId: GroupV2.GroupSearch
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/GroupsV2.GroupSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  "/GroupV2/User/Potential/{membershipType}/{membershipId}/{filter}/{groupType}/":
    get:
      deprecated: false
      description: Get information about the groups that a given member has applied to or been invited to.
      operationId: GroupV2.GetPotentialGroupsForMember
      parameters:
        - description: Filter apply to list of potential joined groups.
          in: path
          name: filter
          required: true
          schema:
            format: int32
            type: integer
        - description: Type of group the supplied member applied.
          in: path
          name: groupType
          required: true
          schema:
            format: int32
            type: integer
        - description: Membership ID to for which to find applied groups.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership type of the supplied membership ID.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/GroupsV2.GroupPotentialMembershipSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  "/GroupV2/User/{membershipType}/{membershipId}/{filter}/{groupType}/":
    get:
      deprecated: false
      description: Get information about the groups that a given member has joined.
      operationId: GroupV2.GetGroupsForMember
      parameters:
        - description: Filter apply to list of joined groups.
          in: path
          name: filter
          required: true
          schema:
            format: int32
            type: integer
        - description: Type of group the supplied member founded.
          in: path
          name: groupType
          required: true
          schema:
            format: int32
            type: integer
        - description: Membership ID to for which to find founded groups.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership type of the supplied membership ID.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/GroupsV2.GetGroupsForMemberResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  "/GroupV2/{groupId}/":
    get:
      deprecated: false
      description: Get information about a specific group of the given ID.
      operationId: GroupV2.GetGroup
      parameters:
        - description: Requested group's id.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/GroupsV2.GroupResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Admin/AbdicateFoundership/{membershipType}/{founderIdNew}/":
    post:
      deprecated: false
      description: An administrative method to allow the founder of a group or clan to give up their position to another admin permanently.
      operationId: GroupV2.AbdicateFoundership
      parameters:
        - description: The new founder for this group. Must already be a group admin.
          in: path
          name: founderIdNew
          required: true
          schema:
            format: int64
            type: integer
        - description: The target group id.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership type of the provided founderIdNew.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    type: boolean
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  "/GroupV2/{groupId}/AdminsAndFounder/":
    get:
      deprecated: false
      description: Get the list of members in a given group who are of admin level or higher.
      operationId: GroupV2.GetAdminsAndFounderOfGroup
      parameters:
        - description: Page number (starting with 1). Each page has a fixed size of 50 items per page.
          in: query
          name: currentpage
          required: true
          schema:
            format: int32
            type: integer
        - description: The ID of the group.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/SearchResultOfGroupMember"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Banned/":
    get:
      deprecated: false
      description: Get the list of banned members in a given group. Only accessible to group Admins and above. Not applicable to all groups. Check group features.
      operationId: GroupV2.GetBannedMembersOfGroup
      parameters:
        - description: Page number (starting with 1). Each page has a fixed size of 50 entries.
          in: query
          name: currentpage
          required: true
          schema:
            format: int32
            type: integer
        - description: Group ID whose banned members you are fetching
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/SearchResultOfGroupBan"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Edit/":
    post:
      deprecated: false
      description: Edit an existing group. You must have suitable permissions in the group to perform this operation. This latest revision will only edit the fields you pass in - pass null for properties you want to leave unaltered.
      operationId: GroupV2.EditGroup
      parameters:
        - description: Group ID of the group to edit.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/EditClanBanner/":
    post:
      deprecated: false
      description: Edit an existing group's clan banner. You must have suitable permissions in the group to perform this operation. All fields are required.
      operationId: GroupV2.EditClanBanner
      parameters:
        - description: Group ID of the group to edit.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/EditFounderOptions/":
    post:
      deprecated: false
      description: Edit group options only available to a founder. You must have suitable permissions in the group to perform this operation.
      operationId: GroupV2.EditFounderOptions
      parameters:
        - description: Group ID of the group to edit.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/":
    get:
      deprecated: false
      description: Get the list of members in a given group.
      operationId: GroupV2.GetMembersOfGroup
      parameters:
        - description: Page number (starting with 1). Each page has a fixed size of 50 items per page.
          in: query
          name: currentpage
          required: true
          schema:
            format: int32
            type: integer
        - description: The ID of the group.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: Filter out other member types. Use None for all members.
          in: query
          name: memberType
          schema:
            format: int32
            type: integer
        - description: The name fragment upon which a search should be executed for members with matching display or unique names.
          in: query
          name: nameSearch
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/SearchResultOfGroupMember"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/Approve/{membershipType}/{membershipId}/":
    post:
      deprecated: false
      description: Approve the given membershipId to join the group/clan as long as they have applied.
      operationId: GroupV2.ApprovePending
      parameters:
        - description: ID of the group.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: The membership id being approved.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership type of the supplied membership ID.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    type: boolean
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/ApproveAll/":
    post:
      deprecated: false
      description: Approve all of the pending users for the given group.
      operationId: GroupV2.ApproveAllPending
      parameters:
        - description: ID of the group.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/Entities.EntityActionResult"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/ApproveList/":
    post:
      deprecated: false
      description: Approve all of the pending users for the given group.
      operationId: GroupV2.ApprovePendingForList
      parameters:
        - description: ID of the group.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/Entities.EntityActionResult"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/DenyAll/":
    post:
      deprecated: false
      description: Deny all of the pending users for the given group.
      operationId: GroupV2.DenyAllPending
      parameters:
        - description: ID of the group.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/Entities.EntityActionResult"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/DenyList/":
    post:
      deprecated: false
      description: Deny all of the pending users for the given group that match the passed-in .
      operationId: GroupV2.DenyPendingForList
      parameters:
        - description: ID of the group.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/Entities.EntityActionResult"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/IndividualInvite/{membershipType}/{membershipId}/":
    post:
      deprecated: false
      description: Invite a user to join this group.
      operationId: GroupV2.IndividualGroupInvite
      parameters:
        - description: ID of the group you would like to join.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership id of the account being invited.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: MembershipType of the account being invited.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/GroupsV2.GroupApplicationResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/IndividualInviteCancel/{membershipType}/{membershipId}/":
    post:
      deprecated: false
      description: Cancels a pending invitation to join a group.
      operationId: GroupV2.IndividualGroupInviteCancel
      parameters:
        - description: ID of the group you would like to join.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership id of the account being cancelled.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: MembershipType of the account being cancelled.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/GroupsV2.GroupApplicationResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/InvitedIndividuals/":
    get:
      deprecated: false
      description: Get the list of users who have been invited into the group.
      operationId: GroupV2.GetInvitedIndividuals
      parameters:
        - description: Page number (starting with 1). Each page has a fixed size of 50 items per page.
          in: query
          name: currentpage
          required: true
          schema:
            format: int32
            type: integer
        - description: ID of the group.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/SearchResultOfGroupMemberApplication"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/Pending/":
    get:
      deprecated: false
      description: Get the list of users who are awaiting a decision on their application to join a given group. Modified to include application info.
      operationId: GroupV2.GetPendingMemberships
      parameters:
        - description: Page number (starting with 1). Each page has a fixed size of 50 items per page.
          in: query
          name: currentpage
          required: true
          schema:
            format: int32
            type: integer
        - description: ID of the group.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/SearchResultOfGroupMemberApplication"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/{membershipType}/{membershipId}/Ban/":
    post:
      deprecated: false
      description: Bans the requested member from the requested group for the specified period of time.
      operationId: GroupV2.BanMember
      parameters:
        - description: Group ID that has the member to ban.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership ID of the member to ban from the group.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership type of the provided membership ID.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/{membershipType}/{membershipId}/Kick/":
    post:
      deprecated: false
      description: Kick a member from the given group, forcing them to reapply if they wish to re-join the group. You must have suitable permissions in the group to perform this operation.
      operationId: GroupV2.KickMember
      parameters:
        - description: Group ID to kick the user from.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership ID to kick.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership type of the provided membership ID.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/GroupsV2.GroupMemberLeaveResult"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/{membershipType}/{membershipId}/SetMembershipType/{memberType}/":
    post:
      deprecated: false
      description: Edit the membership type of a given member. You must have suitable permissions in the group to perform this operation.
      operationId: GroupV2.EditGroupMembership
      parameters:
        - description: ID of the group to which the member belongs.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership ID to modify.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership type of the provide membership ID.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
        - description: New membertype for the specified member.
          in: path
          name: memberType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/Members/{membershipType}/{membershipId}/Unban/":
    post:
      deprecated: false
      description: Unbans the requested member, allowing them to re-apply for membership.
      operationId: GroupV2.UnbanMember
      parameters:
        - description: ""
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership ID of the member to unban from the group
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: Membership type of the provided membership ID.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int32
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/OptionalConversations/":
    get:
      deprecated: false
      description: Gets a list of available optional conversation channels and their settings.
      operationId: GroupV2.GetGroupOptionalConversations
      parameters:
        - description: Requested group's id.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/GroupsV2.GroupOptionalConversation"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - GroupV2
  "/GroupV2/{groupId}/OptionalConversations/Add/":
    post:
      deprecated: false
      description: Add a new optional conversation/chat channel. Requires admin permissions to the group.
      operationId: GroupV2.AddOptionalConversation
      parameters:
        - description: Group ID of the group to edit.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int64
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  "/GroupV2/{groupId}/OptionalConversations/Edit/{conversationId}/":
    post:
      deprecated: false
      description: Edit the settings of an optional conversation/chat channel. Requires admin permissions to the group.
      operationId: GroupV2.EditOptionalConversation
      parameters:
        - description: Conversation Id of the channel being edited.
          in: path
          name: conversationId
          required: true
          schema:
            format: int64
            type: integer
        - description: Group ID of the group to edit.
          in: path
          name: groupId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    format: int64
                    type: integer
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - AdminGroups
      tags:
        - GroupV2
  /Settings/:
    get:
      deprecated: false
      description: Get the common settings used by the Bungie.Net environment.
      operationId: .GetCommonSettings
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Common.Models.CoreSettingsConfiguration"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - ""
  /Social/Friends/:
    get:
      deprecated: false
      description: Returns your Bungie Friend list
      operationId: Social.GetFriendList
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Social.Friends.BungieFriendListResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadUserData
      tags:
        - Social
  "/Social/Friends/Add/{membershipId}/":
    post:
      deprecated: false
      description: Requests a friend relationship with the target user. Any of the target user's linked membership ids are valid inputs.
      operationId: Social.IssueFriendRequest
      parameters:
        - description: The membership id of the user you wish to add.
          in: path
          name: membershipId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    type: boolean
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - BnetWrite
      tags:
        - Social
  "/Social/Friends/Remove/{membershipId}/":
    post:
      deprecated: false
      description: Remove a friend relationship with the target user. The user must be on your friend list, though no error will occur if they are not.
      operationId: Social.RemoveFriend
      parameters:
        - description: The membership id of the user you wish to remove.
          in: path
          name: membershipId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    type: boolean
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - BnetWrite
      tags:
        - Social
  /Social/Friends/Requests/:
    get:
      deprecated: false
      description: Returns your friend request queue.
      operationId: Social.GetFriendRequestList
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Social.Friends.BungieFriendRequestListResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadUserData
      tags:
        - Social
  "/Social/Friends/Requests/Accept/{membershipId}/":
    post:
      deprecated: false
      description: Accepts a friend relationship with the target user. The user must be on your incoming friend request list, though no error will occur if they are not.
      operationId: Social.AcceptFriendRequest
      parameters:
        - description: The membership id of the user you wish to accept.
          in: path
          name: membershipId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    type: boolean
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - BnetWrite
      tags:
        - Social
  "/Social/Friends/Requests/Decline/{membershipId}/":
    post:
      deprecated: false
      description: Declines a friend relationship with the target user. The user must be on your incoming friend request list, though no error will occur if they are not.
      operationId: Social.DeclineFriendRequest
      parameters:
        - description: The membership id of the user you wish to decline.
          in: path
          name: membershipId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    type: boolean
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - BnetWrite
      tags:
        - Social
  "/Social/Friends/Requests/Remove/{membershipId}/":
    post:
      deprecated: false
      description: Remove a friend relationship with the target user. The user must be on your outgoing request friend list, though no error will occur if they are not.
      operationId: Social.RemoveFriendRequest
      parameters:
        - description: The membership id of the user you wish to remove.
          in: path
          name: membershipId
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    type: boolean
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - BnetWrite
      tags:
        - Social
  "/Social/PlatformFriends/{friendPlatform}/{page}/":
    get:
      deprecated: false
      description: Gets the platform friend of the requested type, with additional information if they have Bungie accounts. Must have a recent login session with said platform.
      operationId: Social.GetPlatformFriendList
      parameters:
        - description: The platform friend type.
          in: path
          name: friendPlatform
          required: true
          schema:
            format: int32
            type: integer
        - description: The zero based page to return. Page size is 100.
          in: path
          name: page
          required: true
          schema:
            type: string
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Social.Friends.PlatformFriendResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Social
  "/Tokens/Partner/ApplyMissingOffers/{partnerApplicationId}/{targetBnetMembershipId}/":
    post:
      deprecated: false
      description: Apply a partner offer to the targeted user. This endpoint does not claim a new offer, but any already claimed offers will be applied to the game if not already.
      operationId: Tokens.ApplyMissingPartnerOffersWithoutClaim
      parameters:
        - description: The partner application identifier.
          in: path
          name: partnerApplicationId
          required: true
          schema:
            format: int32
            type: integer
        - description: The bungie.net user to apply missing offers to. If not self, elevated permissions are required.
          in: path
          name: targetBnetMembershipId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    type: boolean
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - PartnerOfferGrant
      tags:
        - Tokens
  /Tokens/Partner/ClaimOffer/:
    post:
      deprecated: false
      description: Claim a partner offer as the authenticated user.
      operationId: Tokens.ClaimPartnerOffer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    type: boolean
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - PartnerOfferGrant
      tags:
        - Tokens
  /Tokens/Partner/ForceDropsRepair/:
    post:
      deprecated: false
      description: Twitch Drops self-repair function - scans twitch for drops not marked as fulfilled and resyncs them.
      operationId: Tokens.ForceDropsRepair
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    type: boolean
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - PartnerOfferGrant
      tags:
        - Tokens
  "/Tokens/Partner/History/{partnerApplicationId}/{targetBnetMembershipId}/":
    get:
      deprecated: false
      description: Returns the partner sku and offer history of the targeted user. Elevated permissions are required to see users that are not yourself.
      operationId: Tokens.GetPartnerOfferSkuHistory
      parameters:
        - description: The partner application identifier.
          in: path
          name: partnerApplicationId
          required: true
          schema:
            format: int32
            type: integer
        - description: The bungie.net user to apply missing offers to. If not self, elevated permissions are required.
          in: path
          name: targetBnetMembershipId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/Tokens.PartnerOfferSkuHistoryResponse"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - PartnerOfferGrant
      tags:
        - Tokens
  "/Tokens/Partner/History/{targetBnetMembershipId}/Application/{partnerApplicationId}/":
    get:
      deprecated: false
      description: Returns the partner rewards history of the targeted user, both partner offers and Twitch drops.
      operationId: Tokens.GetPartnerRewardHistory
      parameters:
        - description: The partner application identifier.
          in: path
          name: partnerApplicationId
          required: true
          schema:
            format: int32
            type: integer
        - description: The bungie.net user to return reward history for.
          in: path
          name: targetBnetMembershipId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Tokens.PartnerRewardHistoryResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - PartnerOfferGrant
      tags:
        - Tokens
  /Tokens/Rewards/BungieRewards/:
    get:
      deprecated: false
      description: Returns a list of the current bungie rewards
      operationId: Tokens.GetBungieRewardsList
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      $ref: "#/components/schemas/Tokens.BungieRewardDisplay"
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Tokens
  "/Tokens/Rewards/GetRewardsForPlatformUser/{membershipId}/{membershipType}/":
    get:
      deprecated: false
      description: Returns the bungie rewards for the targeted user when a platform membership Id and Type are used.
      operationId: Tokens.GetBungieRewardsForPlatformUser
      parameters:
        - description: users platform membershipId for requested user rewards. If not self, elevated permissions are required.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: The target Destiny 2 membership type.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      $ref: "#/components/schemas/Tokens.BungieRewardDisplay"
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadAndApplyTokens
      tags:
        - Tokens
  "/Tokens/Rewards/GetRewardsForUser/{membershipId}/":
    get:
      deprecated: false
      description: Returns the bungie rewards for the targeted user.
      operationId: Tokens.GetBungieRewardsForUser
      parameters:
        - description: bungie.net user membershipId for requested user rewards. If not self, elevated permissions are required.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      $ref: "#/components/schemas/Tokens.BungieRewardDisplay"
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadAndApplyTokens
      tags:
        - Tokens
  /Trending/Categories/:
    get:
      deprecated: false
      description: Returns trending items for Bungie.net, collapsed into the first page of items per category. For pagination within a category, call GetTrendingCategory.
      operationId: Trending.GetTrendingCategories
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Trending.TrendingCategories"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Trending
  "/Trending/Categories/{categoryId}/{pageNumber}/":
    get:
      deprecated: false
      description: Returns paginated lists of trending items for a category.
      operationId: Trending.GetTrendingCategory
      parameters:
        - description: The ID of the category for whom you want additional results.
          in: path
          name: categoryId
          required: true
          schema:
            type: string
        - description: "The page # of results to return."
          in: path
          name: pageNumber
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/SearchResultOfTrendingEntry"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Trending
  "/Trending/Details/{trendingEntryType}/{identifier}/":
    get:
      deprecated: false
      description: "Returns the detailed results for a specific trending entry. Note that trending entries are uniquely identified by a combination of *both* the TrendingEntryType *and* the identifier: the identifier alone is not guaranteed to be globally unique."
      operationId: Trending.GetTrendingEntryDetail
      parameters:
        - description: The identifier for the entity to be returned.
          in: path
          name: identifier
          required: true
          schema:
            type: string
        - description: The type of entity to be returned.
          in: path
          name: trendingEntryType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/Trending.TrendingDetail"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - Trending
  /User/GetAvailableThemes/:
    get:
      deprecated: false
      description: Returns a list of all available user themes.
      operationId: User.GetAvailableThemes
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/Config.UserTheme"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - User
  "/User/GetBungieNetUserById/{id}/":
    get:
      deprecated: false
      description: Loads a bungienet user by membership id.
      operationId: User.GetBungieNetUserById
      parameters:
        - description: The requested Bungie.net membership id.
          in: path
          name: id
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/User.GeneralUser"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - User
  "/User/GetCredentialTypesForTargetAccount/{membershipId}/":
    get:
      deprecated: false
      description: Returns a list of credential types attached to the requested account
      operationId: User.GetCredentialTypesForTargetAccount
      parameters:
        - description: The user's membership id
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    items:
                      $ref: "#/components/schemas/User.Models.GetCredentialTypesForAccountResponse"
                    type: array
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - User
  "/User/GetMembershipFromHardLinkedCredential/{crType}/{credential}/":
    get:
      deprecated: false
      description: Gets any hard linked membership given a credential. Only works for credentials that are public (just SteamID64 right now). Cross Save aware.
      operationId: User.GetMembershipFromHardLinkedCredential
      parameters:
        - description: The credential to look up. Must be a valid SteamID64.
          in: path
          name: credential
          required: true
          schema:
            type: string
        - description: The credential type. 'SteamId' is the only valid value at present.
          in: path
          name: crType
          required: true
          schema:
            format: uint8
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/User.HardLinkedUserMembership"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - User
  "/User/GetMembershipsById/{membershipId}/{membershipType}/":
    get:
      deprecated: false
      description: Returns a list of accounts associated with the supplied membership ID and membership type. This will include all linked accounts (even when hidden) if supplied credentials permit it.
      operationId: User.GetMembershipDataById
      parameters:
        - description: The membership ID of the target user.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
        - description: Type of the supplied membership ID.
          in: path
          name: membershipType
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/User.UserMembershipData"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - User
  /User/GetMembershipsForCurrentUser/:
    get:
      deprecated: false
      description: Returns a list of accounts associated with signed in user. This is useful for OAuth implementations that do not give you access to the token response.
      operationId: User.GetMembershipDataForCurrentUser
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/User.UserMembershipData"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      security:
        - oauth2:
            - ReadBasicUserProfile
      tags:
        - User
  "/User/GetSanitizedPlatformDisplayNames/{membershipId}/":
    get:
      deprecated: false
      description: Gets a list of all display names linked to this membership id but sanitized (profanity filtered). Obeys all visibility rules of calling user and is heavily cached.
      operationId: User.GetSanitizedPlatformDisplayNames
      parameters:
        - description: The requested membership id to load.
          in: path
          name: membershipId
          required: true
          schema:
            format: int64
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      type: string
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - User
  "/User/Search/GlobalName/{page}/":
    post:
      deprecated: false
      description: Given the prefix of a global display name, returns all users who share that name.
      operationId: User.SearchByGlobalNamePost
      parameters:
        - description: The zero-based page of results you desire.
          in: path
          name: page
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/User.UserSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - User
  "/User/Search/Prefix/{displayNamePrefix}/{page}/":
    get:
      deprecated: false
      description: "[OBSOLETE] Do not use this to search users, use SearchByGlobalNamePost instead."
      operationId: User.SearchByGlobalNamePrefix
      parameters:
        - description: The display name prefix you're looking for.
          in: path
          name: displayNamePrefix
          required: true
          schema:
            type: string
        - description: The zero-based page of results you desire.
          in: path
          name: page
          required: true
          schema:
            format: int32
            type: integer
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    $ref: "#/components/schemas/User.UserSearchResponse"
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - User
  /UserSystemOverrides/:
    get:
      deprecated: false
      description: Get the user-specific system overrides that should be respected alongside common systems.
      operationId: .GetUserSystemOverrides
      responses:
        "200":
          content:
            "*/*":
              schema:
                properties:
                  DetailedErrorTrace:
                    type: string
                  ErrorCode:
                    format: int32
                    type: integer
                    x-enum-reference:
                      $ref: "#/components/schemas/schema1"
                  ErrorStatus:
                    type: string
                  Message:
                    type: string
                  MessageData:
                    additionalProperties:
                      type: string
                    type: object
                  Response:
                    additionalProperties:
                      $ref: "#/components/schemas/Common.Models.CoreSystem"
                    type: object
                  ThrottleSeconds:
                    format: int32
                    type: integer
                type: object
          description: Look at the Response property for more information about the nature of this response
      tags:
        - ""
components:
  schemas:
    Applications.ApiUsage:
      properties:
        apiCalls:
          description: Counts for on API calls made for the time range.
          items:
            $ref: "#/components/schemas/Applications.Series"
          type: array
        throttledRequests:
          description: Instances of blocked requests or requests that crossed the warn threshold during the time range.
          items:
            $ref: "#/components/schemas/Applications.Series"
          type: array
      type: object
    Applications.Application:
      properties:
        applicationId:
          description: Unique ID assigned to the application
          format: int32
          type: integer
        creationDate:
          description: Date the application was first added to our database.
          format: date-time
          type: string
        firstPublished:
          description: Date the first time the application status entered the 'Public' status.
          format: date-time
          type: string
        link:
          description: Link to website for the application where a user can learn more about the app.
          type: string
        name:
          description: Name of the application
          type: string
        origin:
          description: Value of the Origin header sent in requests generated by this application.
          type: string
        overrideAuthorizeViewName:
          description: An optional override for the Authorize view name.
          type: string
        redirectUrl:
          description: URL used to pass the user's authorization code to the application
          type: string
        scope:
          description: Permissions the application needs to work
          format: int64
          type: integer
        status:
          description: Current status of the application.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema5"
        statusChanged:
          description: Date the application status last changed.
          format: date-time
          type: string
        team:
          description: List of team members who manage this application on Bungie.net. Will always consist of at least the application owner.
          items:
            $ref: "#/components/schemas/Applications.ApplicationDeveloper"
          type: array
      type: object
    Applications.ApplicationDeveloper:
      properties:
        apiEulaVersion:
          format: int32
          type: integer
        role:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema6"
        user:
          $ref: "#/components/schemas/User.UserInfoCard"
      type: object
    Applications.ApplicationScopes:
      enum:
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
        - "128"
        - "256"
        - "512"
        - "1024"
        - "2048"
        - "4096"
        - "8192"
        - "16384"
      format: int64
      type: integer
      x-enum-values:
        - description: Read basic user profile information such as the user's handle, avatar icon, etc.
          identifier: ReadBasicUserProfile
          numericValue: "1"
        - description: Read Group/Clan Forums, Wall, and Members for groups and clans that the user has joined.
          identifier: ReadGroups
          numericValue: "2"
        - description: Write Group/Clan Forums, Wall, and Members for groups and clans that the user has joined.
          identifier: WriteGroups
          numericValue: "4"
        - description: Administer Group/Clan Forums, Wall, and Members for groups and clans that the user is a founder or an administrator.
          identifier: AdminGroups
          numericValue: "8"
        - description: "Create new groups, clans, and forum posts, along with other actions that are reserved for Bungie.net elevated scope: not meant to be used by third party applications."
          identifier: BnetWrite
          numericValue: "16"
        - description: Move or equip Destiny items
          identifier: MoveEquipDestinyItems
          numericValue: "32"
        - description: Read Destiny 1 Inventory and Vault contents. For Destiny 2, this scope is needed to read anything regarded as private. This is the only scope a Destiny 2 app needs for read operations against Destiny 2 data such as inventory, vault, currency, vendors, milestones, progression, etc.
          identifier: ReadDestinyInventoryAndVault
          numericValue: "64"
        - description: Read user data such as who they are web notifications, clan/group memberships, recent activity, muted users.
          identifier: ReadUserData
          numericValue: "128"
        - description: Edit user data such as preferred language, status, motto, avatar selection and theme.
          identifier: EditUserData
          numericValue: "256"
        - description: Access vendor and advisor data specific to a user. OBSOLETE. This scope is only used on the Destiny 1 API.
          identifier: ReadDestinyVendorsAndAdvisors
          numericValue: "512"
        - description: Read offer history and claim and apply tokens for the user.
          identifier: ReadAndApplyTokens
          numericValue: "1024"
        - description: Can perform actions that will result in a prompt to the user via the Destiny app.
          identifier: AdvancedWriteActions
          numericValue: "2048"
        - description: Can use the partner offer api to claim rewards defined for a partner
          identifier: PartnerOfferGrant
          numericValue: "4096"
        - description: Allows an app to query sensitive information like unlock flags and values not available through normal methods.
          identifier: DestinyUnlockValueQuery
          numericValue: "8192"
        - description: Allows an app to query sensitive user PII, most notably email information.
          identifier: UserPiiRead
          numericValue: "16384"
    Applications.ApplicationStatus:
      $ref: "#/components/schemas/schema5"
    Applications.Datapoint:
      properties:
        count:
          description: Count associated with timestamp
          format: double
          type: number
        time:
          description: Timestamp for the related count.
          format: date-time
          type: string
      type: object
    Applications.DeveloperRole:
      $ref: "#/components/schemas/schema6"
    Applications.Series:
      properties:
        datapoints:
          description: Collection of samples with time and value.
          items:
            $ref: "#/components/schemas/Applications.Datapoint"
          type: array
        target:
          description: Target to which to datapoints apply.
          type: string
      type: object
    BungieCredentialType:
      $ref: "#/components/schemas/schema9"
    BungieMembershipType:
      $ref: "#/components/schemas/schema7"
    BungieMembershipTypeArray:
      items:
        description: The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
        format: int32
        type: integer
        x-enum-reference:
          $ref: "#/components/schemas/schema7"
      type: array
    Common.Models.CoreSetting:
      properties:
        childSettings:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        displayName:
          type: string
        identifier:
          type: string
        imagePath:
          type: string
        isDefault:
          type: boolean
        summary:
          type: string
      type: object
    Common.Models.CoreSettingsConfiguration:
      properties:
        clanBannerDecalColors:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        clanBannerDecals:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        clanBannerGonfalonColors:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        clanBannerGonfalonDetailColors:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        clanBannerGonfalonDetails:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        clanBannerGonfalons:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        clanBannerStandards:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        defaultGroupTheme:
          $ref: "#/components/schemas/Common.Models.CoreSetting"
        destiny2CoreSettings:
          $ref: "#/components/schemas/Common.Models.Destiny2CoreSettings"
        destinyMembershipTypes:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        emailSettings:
          $ref: "#/components/schemas/User.EmailSettings"
        environment:
          type: string
        fireteamActivities:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        forumCategories:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        groupAvatars:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        ignoreReasons:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        recruitmentActivities:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        recruitmentMiscTags:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        recruitmentPlatformTags:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        systemContentLocales:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
        systems:
          additionalProperties:
            $ref: "#/components/schemas/Common.Models.CoreSystem"
          type: object
        userContentLocales:
          items:
            $ref: "#/components/schemas/Common.Models.CoreSetting"
          type: array
      type: object
    Common.Models.CoreSystem:
      properties:
        enabled:
          type: boolean
        parameters:
          additionalProperties:
            type: string
          type: object
      type: object
    Common.Models.Destiny2CoreSettings:
      properties:
        activeSealsRootNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        activeTriumphsRootNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        ammoTypeHeavyIcon:
          type: string
        ammoTypePrimaryIcon:
          type: string
        ammoTypeSpecialIcon:
          type: string
        badgesRootNode:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        collectionRootNode:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        craftingRootNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        currentRankProgressionHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionDefinition"
        currentSeasonHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Seasons.DestinySeasonDefinition"
        currentSeasonalArtifactHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
        exoticCatalystsRootNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        futureSeasonHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Seasons.DestinySeasonDefinition"
        guardianRankConstantsHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.GuardianRanks.DestinyGuardianRankConstantsDefinition"
        guardianRanksRootNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        insertPlugFreeBlockedSocketTypeHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinySocketTypeDefinition"
        insertPlugFreeProtectedPlugItemHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        legacySealsRootNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        legacyTriumphsRootNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        loadoutConstantsHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Loadouts.DestinyLoadoutConstantsDefinition"
        loreRootNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        medalsRootNode:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        medalsRootNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        metricsRootNode:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        pastSeasonHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Seasons.DestinySeasonDefinition"
        recordsRootNode:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        seasonalChallengesPresentationNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        undiscoveredCollectibleImage:
          type: string
      type: object
    Components.ComponentPrivacySetting:
      $ref: "#/components/schemas/schema86"
    Components.ComponentResponse:
      description: The base class for any component-returning object that may need to indicate information about the state of the component being returned.
      properties:
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    Config.ClanBanner.ClanBannerDecal:
      properties:
        backgroundPath:
          type: string
        foregroundPath:
          type: string
        identifier:
          type: string
      type: object
    Config.ClanBanner.ClanBannerSource:
      type: object
    Config.GroupTheme:
      properties:
        description:
          type: string
        folder:
          type: string
        name:
          type: string
      type: object
    Config.UserTheme:
      properties:
        userThemeDescription:
          type: string
        userThemeId:
          format: int32
          type: integer
        userThemeName:
          type: string
      type: object
    Content.CommentSummary:
      properties:
        commentCount:
          format: int32
          type: integer
        topicId:
          format: int64
          type: integer
      type: object
    Content.ContentItemPublicContract:
      properties:
        allowComments:
          type: boolean
        author:
          $ref: "#/components/schemas/User.GeneralUser"
        autoEnglishPropertyFallback:
          type: boolean
        cType:
          type: string
        cmsPath:
          type: string
        commentSummary:
          $ref: "#/components/schemas/Content.CommentSummary"
        contentId:
          format: int64
          type: integer
        creationDate:
          format: date-time
          type: string
        hasAgeGate:
          type: boolean
        minimumAge:
          format: int32
          type: integer
        modifyDate:
          format: date-time
          type: string
        properties:
          additionalProperties:
            type: object
          description: "Firehose content is really a collection of metadata and \"properties\", which are the potentially-but-not-strictly localizable data that comprises the meat of whatever content is being shown.\r

            As Cole Porter would have crooned, \"Anything Goes\" with Firehose properties. They are most often strings, but they can theoretically be anything. They are JSON encoded, and could be JSON structures, simple strings, numbers etc... The Content Type of the item (cType) will describe the properties, and thus how they ought to be deserialized."
          type: object
        ratingImagePath:
          type: string
        representations:
          items:
            $ref: "#/components/schemas/Content.ContentRepresentation"
          type: array
        tags:
          description: "NOTE: Tags will always be lower case."
          items:
            type: string
          type: array
      type: object
    Content.ContentRepresentation:
      properties:
        name:
          type: string
        path:
          type: string
        validationString:
          type: string
      type: object
    Content.Models.ContentPreview:
      properties:
        itemInSet:
          type: boolean
        name:
          type: string
        path:
          type: string
        setNesting:
          format: int32
          type: integer
        setTag:
          type: string
        useSetId:
          format: int32
          type: integer
      type: object
    Content.Models.ContentPropertyDataTypeEnum:
      $ref: "#/components/schemas/schema10"
    Content.Models.ContentTypeDefaultValue:
      properties:
        defaultValue:
          type: string
        whenClause:
          type: string
        whenValue:
          type: string
      type: object
    Content.Models.ContentTypeDescription:
      properties:
        allowComments:
          type: boolean
        autoEnglishPropertyFallback:
          type: boolean
        bindIdentifierToProperty:
          type: string
        boundRegex:
          type: string
        bulkUploadable:
          type: boolean
        cType:
          type: string
        contentDescription:
          type: string
        forceIdentifierBinding:
          type: boolean
        name:
          type: string
        previewImage:
          type: string
        previews:
          items:
            $ref: "#/components/schemas/Content.Models.ContentPreview"
          type: array
        priority:
          format: int32
          type: integer
        properties:
          items:
            $ref: "#/components/schemas/Content.Models.ContentTypeProperty"
          type: array
        propertySections:
          items:
            $ref: "#/components/schemas/Content.Models.ContentTypePropertySection"
          type: array
        reminder:
          type: string
        showInContentEditor:
          type: boolean
        suppressCmsPath:
          type: boolean
        tagMetadata:
          items:
            $ref: "#/components/schemas/Content.Models.TagMetadataDefinition"
          type: array
        tagMetadataItems:
          additionalProperties:
            $ref: "#/components/schemas/Content.Models.TagMetadataItem"
          type: object
        typeOf:
          type: string
        usageExamples:
          items:
            type: string
          type: array
      type: object
    Content.Models.ContentTypeProperty:
      properties:
        attributes:
          additionalProperties:
            type: string
          type: object
        bindToProperty:
          type: string
        boundRegex:
          type: string
        childProperties:
          items:
            $ref: "#/components/schemas/Content.Models.ContentTypeProperty"
          type: array
        contentTypeAllowed:
          type: string
        datatype:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema10"
        defaultValues:
          items:
            $ref: "#/components/schemas/Content.Models.ContentTypeDefaultValue"
          type: array
        enabled:
          type: boolean
        entitytype:
          type: string
        fallback:
          type: boolean
        isCombo:
          type: boolean
        isExternalAllowed:
          type: boolean
        isImage:
          type: boolean
        isTitle:
          type: boolean
        isVideo:
          type: boolean
        legalContentTypes:
          items:
            type: string
          type: array
        localizable:
          type: boolean
        maxByteLength:
          format: int32
          type: integer
        maxFileSize:
          format: int32
          type: integer
        maxHeight:
          format: int32
          type: integer
        maxLength:
          format: int32
          type: integer
        maxWidth:
          format: int32
          type: integer
        minHeight:
          format: int32
          type: integer
        minWidth:
          format: int32
          type: integer
        name:
          type: string
        order:
          format: int32
          type: integer
        propertyDescription:
          type: string
        propertySection:
          type: string
        readableName:
          type: string
        regexp:
          type: string
        representationSelection:
          additionalProperties:
            type: string
          type: object
        representationValidationString:
          type: string
        required:
          type: boolean
        rootPropertyName:
          type: string
        rssAttribute:
          type: string
        suppressProperty:
          type: boolean
        validateAs:
          type: string
        value:
          type: string
        visible:
          type: boolean
        visibleDependency:
          type: string
        visibleOn:
          type: string
        weight:
          format: int32
          type: integer
      type: object
    Content.Models.ContentTypePropertySection:
      properties:
        collapsed:
          type: boolean
        name:
          type: string
        readableName:
          type: string
      type: object
    Content.Models.TagMetadataDefinition:
      properties:
        datatype:
          type: string
        description:
          type: string
        isRequired:
          type: boolean
        items:
          items:
            $ref: "#/components/schemas/Content.Models.TagMetadataItem"
          type: array
        name:
          type: string
        order:
          format: int32
          type: integer
      type: object
    Content.Models.TagMetadataItem:
      properties:
        description:
          type: string
        groups:
          items:
            type: string
          type: array
        isDefault:
          type: boolean
        name:
          type: string
        tagText:
          type: string
      type: object
    Content.NewsArticleRssItem:
      properties:
        Description:
          type: string
        HtmlContent:
          type: string
        ImagePath:
          type: string
        Link:
          type: string
        OptionalMobileImagePath:
          type: string
        PubDate:
          format: date-time
          type: string
        Title:
          type: string
        UniqueIdentifier:
          type: string
      type: object
    Content.NewsArticleRssResponse:
      properties:
        CategoryFilter:
          type: string
        CurrentPaginationToken:
          format: int32
          type: integer
        NewsArticles:
          items:
            $ref: "#/components/schemas/Content.NewsArticleRssItem"
          type: array
        NextPaginationToken:
          format: int32
          type: integer
        ResultCountThisPage:
          format: int32
          type: integer
      type: object
    Dates.DateRange:
      properties:
        end:
          format: date-time
          type: string
        start:
          format: date-time
          type: string
      type: object
    Destiny.Activities.DestinyPublicActivityStatus:
      description: "Represents the public-facing status of an activity: any data about what is currently active in the Activity, regardless of an individual character's progress in it."
      properties:
        challengeObjectiveHashes:
          description: Active Challenges for the activity, if any - represented as hashes for DestinyObjectiveDefinitions.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
        modifierHashes:
          description: The active modifiers on this activity, if any - represented as hashes for DestinyActivityModifierDefinitions.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition"
        rewardTooltipItems:
          description: "If the activity itself provides any specific \"mock\" rewards, this will be the items and their quantity.\r

            Why \"mock\", you ask? Because these are the rewards as they are represented in the tooltip of the Activity.\r

            These are often pointers to fake items that look good in a tooltip, but represent an abstract concept of what you will get for a reward rather than the specific items you may obtain."
          items:
            $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          type: array
      type: object
    Destiny.ActivityGraphNodeHighlightType:
      $ref: "#/components/schemas/schema51"
    Destiny.Advanced.AwaAuthorizationResult:
      properties:
        actionToken:
          description: Credential used to prove the user authorized an advanced write action.
          type: string
        developerNote:
          description: Message to the app developer to help understand the response.
          type: string
        maximumNumberOfUses:
          description: This token may be used to perform the requested action this number of times, at a maximum. If this value is 0, then there is no limit.
          format: int32
          type: integer
        membershipType:
          description: MembershipType from the permission request.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        responseReason:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema108"
        type:
          description: Advanced Write Action Type from the permission request.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema106"
        userSelection:
          description: Indication of how the user responded to the request. If the value is "Approved" the actionToken will contain the token that can be presented when performing the advanced write action.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema107"
        validUntil:
          description: Time, UTC, when token expires.
          format: date-time
          type: string
      type: object
    Destiny.Advanced.AwaInitializeResponse:
      properties:
        correlationId:
          description: ID used to get the token. Present this ID to the user as it will identify this specific request on their device.
          type: string
        sentToSelf:
          description: True if the PUSH message will only be sent to the device that made this request.
          type: boolean
      type: object
    Destiny.Advanced.AwaPermissionRequested:
      properties:
        affectedItemId:
          description: Item instance ID the action shall be applied to. This is optional for all but a new AwaType values. Rule of thumb is to provide the item instance ID if one is available.
          format: int64
          type: integer
        characterId:
          description: Destiny character ID, if applicable, that will be affected by the action.
          format: int64
          type: integer
        membershipType:
          description: Destiny membership type of the account to modify.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        type:
          description: Type of advanced write action.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema106"
      type: object
    Destiny.Advanced.AwaResponseReason:
      $ref: "#/components/schemas/schema108"
    Destiny.Advanced.AwaType:
      $ref: "#/components/schemas/schema106"
    Destiny.Advanced.AwaUserResponse:
      properties:
        correlationId:
          description: Correlation ID of the request
          type: string
        nonce:
          description: Secret nonce received via the PUSH notification.
          items:
            format: byte
            type: string
          type: array
        selection:
          description: Indication of the selection the user has made (Approving or rejecting the action)
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema107"
      type: object
    Destiny.Advanced.AwaUserSelection:
      $ref: "#/components/schemas/schema107"
    Destiny.Artifacts.DestinyArtifactCharacterScoped:
      properties:
        artifactHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Artifacts.DestinyArtifactDefinition"
        pointsUsed:
          format: int32
          type: integer
        resetCount:
          format: int32
          type: integer
        tiers:
          items:
            $ref: "#/components/schemas/Destiny.Artifacts.DestinyArtifactTier"
          type: array
      type: object
    Destiny.Artifacts.DestinyArtifactProfileScoped:
      description: "Represents a Seasonal Artifact and all data related to it for the requested Account.\r

        It can be combined with Character-scoped data for a full picture of what a character has available/has chosen, or just these settings can be used for overview information."
      properties:
        artifactHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Artifacts.DestinyArtifactDefinition"
        pointProgression:
          $ref: "#/components/schemas/Destiny.DestinyProgression"
        pointsAcquired:
          format: int32
          type: integer
        powerBonus:
          format: int32
          type: integer
        powerBonusProgression:
          $ref: "#/components/schemas/Destiny.DestinyProgression"
      type: object
    Destiny.Artifacts.DestinyArtifactTier:
      properties:
        isUnlocked:
          type: boolean
        items:
          items:
            $ref: "#/components/schemas/Destiny.Artifacts.DestinyArtifactTierItem"
          type: array
        pointsToUnlock:
          format: int32
          type: integer
        tierHash:
          format: uint32
          type: integer
      type: object
    Destiny.Artifacts.DestinyArtifactTierItem:
      properties:
        isActive:
          type: boolean
        itemHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
    Destiny.BucketCategory:
      $ref: "#/components/schemas/schema36"
    Destiny.BucketScope:
      $ref: "#/components/schemas/schema35"
    Destiny.Challenges.DestinyChallengeStatus:
      description: "Represents the status and other related information for a challenge that is - or was - available to a player. \r

        A challenge is a bonus objective, generally tacked onto Quests or Activities, that provide additional variations on play."
      properties:
        objective:
          allOf:
            - $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
          description: The progress - including completion status - of the active challenge.
          type: object
      type: object
    Destiny.Character.DestinyCharacterCustomization:
      description: "Raw data about the customization options chosen for a character's face and appearance.\r

        You can look up the relevant class/race/gender combo in DestinyCharacterCustomizationOptionDefinition for the character, and then look up these values within the CustomizationOptions found to pull some data about their choices. Warning: not all of that data is meaningful. Some data has useful icons. Others have nothing, and are only meant for 3D rendering purposes (which we sadly do not expose yet)"
      properties:
        decalColor:
          format: uint32
          type: integer
        decalIndex:
          format: int32
          type: integer
        eyeColor:
          format: uint32
          type: integer
        face:
          format: uint32
          type: integer
        featureColors:
          items:
            format: uint32
            type: integer
          type: array
        featureIndex:
          format: int32
          type: integer
        hairColors:
          items:
            format: uint32
            type: integer
          type: array
        hairIndex:
          format: int32
          type: integer
        lipColor:
          format: uint32
          type: integer
        personality:
          format: uint32
          type: integer
        skinColor:
          format: uint32
          type: integer
        wearHelmet:
          type: boolean
      type: object
    Destiny.Character.DestinyCharacterPeerView:
      description: A minimal view of a character's equipped items, for the purpose of rendering a summary screen or showing the character in 3D.
      properties:
        equipment:
          items:
            $ref: "#/components/schemas/Destiny.Character.DestinyItemPeerView"
          type: array
      type: object
    Destiny.Character.DestinyItemPeerView:
      description: Bare minimum summary information for an item, for the sake of 3D rendering the item.
      properties:
        dyes:
          description: The list of dyes that have been applied to this item.
          items:
            $ref: "#/components/schemas/Destiny.DyeReference"
          type: array
        itemHash:
          description: The hash identifier of the item in question. Use it to look up the DestinyInventoryItemDefinition of the item for static rendering data.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
    Destiny.Components.Collectibles.DestinyCollectibleComponent:
      properties:
        state:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema90"
      type: object
    Destiny.Components.Collectibles.DestinyCollectiblesComponent:
      properties:
        collectibles:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Collectibles.DestinyCollectibleComponent"
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Collectibles.DestinyCollectibleDefinition"
        collectionBadgesRootNodeHash:
          description: The hash for the root presentation node definition of Collection Badges.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        collectionCategoriesRootNodeHash:
          description: The hash for the root presentation node definition of Collection categories.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
      type: object
      x-destiny-component-type-dependency: Collectibles
    Destiny.Components.Collectibles.DestinyProfileCollectiblesComponent:
      properties:
        collectibles:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Collectibles.DestinyCollectibleComponent"
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Collectibles.DestinyCollectibleDefinition"
        collectionBadgesRootNodeHash:
          description: The hash for the root presentation node definition of Collection Badges.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        collectionCategoriesRootNodeHash:
          description: The hash for the root presentation node definition of Collection categories.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        newnessFlaggedCollectibleHashes:
          description: "The list of collectibles determined by the game as having been \"recently\" acquired.\r

            The game client itself actually controls this data, so I personally question whether anyone will get much use out of this: because we can't edit this value through the API. But in case anyone finds it useful, here it is."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Collectibles.DestinyCollectibleDefinition"
        recentCollectibleHashes:
          description: The list of collectibles determined by the game as having been "recently" acquired.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Collectibles.DestinyCollectibleDefinition"
      type: object
      x-destiny-component-type-dependency: Collectibles
    Destiny.Components.Craftables.DestinyCraftableComponent:
      properties:
        failedRequirementIndexes:
          description: If the requirements are not met for crafting this item, these will index into the list of failure strings.
          items:
            format: int32
            type: integer
          type: array
        sockets:
          description: Plug item state for the crafting sockets.
          items:
            $ref: "#/components/schemas/Destiny.Components.Craftables.DestinyCraftableSocketComponent"
          type: array
        visible:
          type: boolean
      type: object
    Destiny.Components.Craftables.DestinyCraftableSocketComponent:
      properties:
        plugSetHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinyPlugSetDefinition"
        plugs:
          description: Unlock state for plugs in the socket plug set definition
          items:
            $ref: "#/components/schemas/Destiny.Components.Craftables.DestinyCraftableSocketPlugComponent"
          type: array
      type: object
    Destiny.Components.Craftables.DestinyCraftableSocketPlugComponent:
      properties:
        failedRequirementIndexes:
          description: Index into the unlock requirements to display failure descriptions
          items:
            format: int32
            type: integer
          type: array
        plugItemHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
    Destiny.Components.Craftables.DestinyCraftablesComponent:
      properties:
        craftables:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Craftables.DestinyCraftableComponent"
          description: A map of craftable item hashes to craftable item state components.
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        craftingRootNodeHash:
          description: The hash for the root presentation node definition of craftable item categories.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
      type: object
      x-destiny-component-type-dependency: Craftables
    Destiny.Components.Inventory.DestinyCurrenciesComponent:
      description: "This component provides a quick lookup of every item the requested character has and how much of that item they have.\r

        Requesting this component will allow you to circumvent manually putting together the list of which currencies you have for the purpose of testing currency requirements on an item being purchased, or operations that have costs.\r

        You *could* figure this out yourself by doing a GetCharacter or GetProfile request and forming your own lookup table, but that is inconvenient enough that this feels like a worthwhile (and optional) redundency. Don't bother requesting it if you have already created your own lookup from prior GetCharacter/GetProfile calls."
      properties:
        itemQuantities:
          additionalProperties:
            format: int32
            type: integer
          description: "A dictionary - keyed by the item's hash identifier (DestinyInventoryItemDefinition), and whose value is the amount of that item you have across all available inventory buckets for purchasing.\r

            This allows you to see whether the requesting character can afford any given purchase/action without having to re-create this list itself."
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
      x-destiny-component-type-dependency: CurrencyLookups
    Destiny.Components.Inventory.DestinyPlatformSilverComponent:
      properties:
        platformSilver:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemComponent"
          description: If a Profile is played on multiple platforms, this is the silver they have for each platform, keyed by Membership Type.
          type: object
      type: object
      x-destiny-component-type-dependency: PlatformSilver
    Destiny.Components.Items.DestinyItemPlugComponent:
      description: "Plugs are non-instanced items that can provide Stat and Perk benefits when socketed into an instanced item. Items have Sockets, and Plugs are inserted into Sockets.\r

        This component finds all items that are considered \"Plugs\" in your inventory, and return information about the plug aside from any specific Socket into which it could be inserted."
      properties:
        canInsert:
          description: If true, this plug has met all of its insertion requirements. Big if true.
          type: boolean
        enableFailIndexes:
          description: "If a plug is not enabled, this will be populated with indexes into the plug item definition's plug.enabledRules property, so that you can show the reasons why it is not enabled.\r

            This list will be empty if the plug is enabled."
          items:
            format: int32
            type: integer
          type: array
        enabled:
          description: If true, this plug will provide its benefits while inserted.
          type: boolean
        insertFailIndexes:
          description: "If the plug cannot be inserted for some reason, this will have the indexes into the plug item definition's plug.insertionRules property, so you can show the reasons why it can't be inserted.\r

            This list will be empty if the plug can be inserted."
          items:
            format: int32
            type: integer
          type: array
        plugItemHash:
          description: The hash identifier of the DestinyInventoryItemDefinition that represents this plug.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        plugObjectives:
          description: "Sometimes, Plugs may have objectives: these are often used for flavor and display purposes, but they can be used for any arbitrary purpose (both fortunately and unfortunately). Recently (with Season 2) they were expanded in use to be used as the \"gating\" for whether the plug can be inserted at all. For instance, a Plug might be tracking the number of PVP kills you have made. It will use the parent item's data about that tracking status to determine what to show, and will generally show it using the DestinyObjectiveDefinition's progressDescription property. Refer to the plug's itemHash and objective property for more information if you would like to display even more data."
          items:
            $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
          type: array
      type: object
      x-destiny-component-type-dependency: ItemPlugStates
    Destiny.Components.Items.DestinyItemPlugObjectivesComponent:
      properties:
        objectivesPerPlug:
          additionalProperties:
            items:
              $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
            type: array
          description: "This set of data is keyed by the Item Hash (DestinyInventoryItemDefinition) of the plug whose objectives are being returned, with the value being the list of those objectives.\r

            \ What if two plugs with the same hash are returned for an item, you ask?\r

            \ Good question! They share the same item-scoped state, and as such would have identical objective state as a result. How's that for convenient.\r

            \ Sometimes, Plugs may have objectives: generally, these are used for flavor and display purposes. For instance, a Plug might be tracking the number of PVP kills you have made. It will use the parent item's data about that tracking status to determine what to show, and will generally show it using the DestinyObjectiveDefinition's progressDescription property. Refer to the plug's itemHash and objective property for more information if you would like to display even more data."
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
      x-destiny-component-type-dependency: ItemPlugObjectives
    Destiny.Components.Items.DestinyItemReusablePlugsComponent:
      properties:
        plugs:
          additionalProperties:
            items:
              $ref: "#/components/schemas/Destiny.Sockets.DestinyItemPlugBase"
            type: array
          description: "If the item supports reusable plugs, this is the list of plugs that are allowed to be used for the socket, and any relevant information about whether they are \"enabled\", whether they are allowed to be inserted, and any other information such as objectives.\r

            \ A Reusable Plug is a plug that you can always insert into this socket as long as its insertion rules are passed, regardless of whether or not you have the plug in your inventory. An example of it failing an insertion rule would be if it has an Objective that needs to be completed before it can be inserted, and that objective hasn't been completed yet.\r

            \ In practice, a socket will *either* have reusable plugs *or* it will allow for plugs in your inventory to be inserted. See DestinyInventoryItemDefinition.socket for more info.\r

            \ KEY = The INDEX into the item's list of sockets. VALUE = The set of plugs for that socket.\r

            \ If a socket doesn't have any reusable plugs defined at the item scope, there will be no entry for that socket."
          type: object
      type: object
      x-destiny-component-type-dependency: ItemReusablePlugs
    Destiny.Components.Kiosks.DestinyKioskItem:
      properties:
        canAcquire:
          description: If true, the user can not only see the item, but they can acquire it. It is possible that a user can see a kiosk item and not be able to acquire it.
          type: boolean
        failureIndexes:
          description: Indexes into failureStrings for the Vendor, indicating the reasons why it failed if any.
          items:
            format: int32
            type: integer
          type: array
        flavorObjective:
          allOf:
            - $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
          description: I may regret naming it this way - but this represents when an item has an objective that doesn't serve a beneficial purpose, but rather is used for "flavor" or additional information. For instance, when Emblems track specific stats, those stats are represented as Objectives on the item.
          type: object
        index:
          description: The index of the item in the related DestinyVendorDefintion's itemList property, representing the sale.
          format: int32
          type: integer
      type: object
    Destiny.Components.Kiosks.DestinyKiosksComponent:
      description: "A Kiosk is a Vendor (DestinyVendorDefinition) that sells items based on whether you have already acquired that item before.\r

        This component returns information about what Kiosk items are available to you on a *Profile* level. It is theoretically possible for Kiosks to have items gated by specific Character as well. If you ever have those, you will find them on the individual character's DestinyCharacterKiosksComponent.\r

        Note that, because this component returns vendorItemIndexes (that is to say, indexes into the Kiosk Vendor's itemList property), these results are necessarily content version dependent. Make sure that you have the latest version of the content manifest databases before using this data."
      properties:
        kioskItems:
          additionalProperties:
            items:
              $ref: "#/components/schemas/Destiny.Components.Kiosks.DestinyKioskItem"
            type: array
          description: A dictionary keyed by the Kiosk Vendor's hash identifier (use it to look up the DestinyVendorDefinition for the relevant kiosk vendor), and whose value is a list of all the items that the user can "see" in the Kiosk, and any other interesting metadata.
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
      type: object
      x-destiny-component-type-dependency: Kiosks
    Destiny.Components.Loadouts.DestinyLoadoutComponent:
      properties:
        colorHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Loadouts.DestinyLoadoutColorDefinition"
        iconHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Loadouts.DestinyLoadoutIconDefinition"
        items:
          items:
            $ref: "#/components/schemas/Destiny.Components.Loadouts.DestinyLoadoutItemComponent"
          type: array
        nameHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Loadouts.DestinyLoadoutNameDefinition"
      type: object
    Destiny.Components.Loadouts.DestinyLoadoutItemComponent:
      properties:
        itemInstanceId:
          format: int64
          type: integer
        plugItemHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
    Destiny.Components.Loadouts.DestinyLoadoutsComponent:
      properties:
        loadouts:
          items:
            $ref: "#/components/schemas/Destiny.Components.Loadouts.DestinyLoadoutComponent"
          type: array
      type: object
      x-destiny-component-type-dependency: CharacterLoadouts
    Destiny.Components.Metrics.DestinyMetricComponent:
      properties:
        invisible:
          type: boolean
        objectiveProgress:
          $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
      type: object
    Destiny.Components.Metrics.DestinyMetricsComponent:
      properties:
        metrics:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Metrics.DestinyMetricComponent"
          type: object
        metricsRootNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
      type: object
      x-destiny-component-type-dependency: Metrics
    Destiny.Components.PlugSets.DestinyPlugSetsComponent:
      description: "Sockets may refer to a \"Plug Set\": a set of reusable plugs that may be shared across multiple sockets (or even, in theory, multiple sockets over multiple items).\r

        This is the set of those plugs that we came across in the users' inventory, along with the values for plugs in the set. Any given set in this component may be represented in Character and Profile-level, as some plugs may be Profile-level restricted, and some character-level restricted. (note that the ones that are even more specific will remain on the actual socket component itself, as they cannot be reused)"
      properties:
        plugs:
          additionalProperties:
            items:
              $ref: "#/components/schemas/Destiny.Sockets.DestinyItemPlug"
            type: array
          description: The shared list of plugs for each relevant PlugSet, keyed by the hash identifier of the PlugSet (DestinyPlugSetDefinition).
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinyPlugSetDefinition"
      type: object
      x-destiny-component-type-dependency: ItemSockets
    Destiny.Components.Presentation.DestinyPresentationNodeComponent:
      properties:
        completionValue:
          description: The value at which the presentation node is considered to be completed.
          format: int32
          type: integer
        objective:
          allOf:
            - $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
          description: "An optional property: presentation nodes MAY have objectives, which can be used to infer more human readable data about the progress. However, progressValue and completionValue ought to be considered the canonical values for progress on Progression Nodes."
          type: object
        progressValue:
          description: How much of the presentation node is considered to be completed so far by the given character/profile.
          format: int32
          type: integer
        recordCategoryScore:
          description: If available, this is the current score for the record category that this node represents.
          format: int32
          type: integer
        state:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema88"
      type: object
    Destiny.Components.Presentation.DestinyPresentationNodesComponent:
      properties:
        nodes:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Presentation.DestinyPresentationNodeComponent"
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
      type: object
      x-destiny-component-type-dependency: PresentationNodes
    Destiny.Components.Profiles.DestinyProfileProgressionComponent:
      description: "The set of progression-related information that applies at a Profile-wide level for your Destiny experience. This differs from the Jimi Hendrix Experience because there's less guitars on fire. Yet. #spoileralert?\r

        This will include information such as Checklist info."
      properties:
        checklists:
          additionalProperties:
            additionalProperties:
              type: boolean
            type: object
          description: "The set of checklists that can be examined on a profile-wide basis, keyed by the hash identifier of the Checklist (DestinyChecklistDefinition)\r

            For each checklist returned, its value is itself a Dictionary keyed by the checklist's hash identifier with the value being a boolean indicating if it's been discovered yet."
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Checklists.DestinyChecklistDefinition"
        seasonalArtifact:
          allOf:
            - $ref: "#/components/schemas/Destiny.Artifacts.DestinyArtifactProfileScoped"
          description: Data related to your progress on the current season's artifact that is the same across characters.
          type: object
      type: object
      x-destiny-component-type-dependency: ProfileProgression
    Destiny.Components.Profiles.DestinyProfileTransitoryComponent:
      description: "This is an experimental set of data that Bungie considers to be \"transitory\" - information that may be useful for API users, but that is coming from a non-authoritative data source about information that could potentially change at a more frequent pace than Bungie.net will receive updates about it.\r

        This information is provided exclusively for convenience should any of it be useful to users: we provide no guarantees to the accuracy or timeliness of data that comes from this source. Know that this data can potentially be out-of-date or even wrong entirely if the user disconnected from the game or suddenly changed their status before we can receive refreshed data."
      properties:
        currentActivity:
          allOf:
            - $ref: "#/components/schemas/Destiny.Components.Profiles.DestinyProfileTransitoryCurrentActivity"
          description: If you are in an activity, this is some transitory info about the activity currently being played.
          type: object
        joinability:
          allOf:
            - $ref: "#/components/schemas/Destiny.Components.Profiles.DestinyProfileTransitoryJoinability"
          description: Information about whether and what might prevent you from joining this person on a fireteam.
          type: object
        lastOrbitedDestinationHash:
          description: The hash identifier for the DestinyDestinationDefinition of the last location you were orbiting when in orbit.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDestinationDefinition"
        partyMembers:
          description: If you have any members currently in your party, this is some (very) bare-bones information about those members.
          items:
            $ref: "#/components/schemas/Destiny.Components.Profiles.DestinyProfileTransitoryPartyMember"
          type: array
        tracking:
          description: Information about tracked entities.
          items:
            $ref: "#/components/schemas/Destiny.Components.Profiles.DestinyProfileTransitoryTrackingEntry"
          type: array
      type: object
      x-destiny-component-type-dependency: Transitory
    Destiny.Components.Profiles.DestinyProfileTransitoryCurrentActivity:
      description: "If you are playing in an activity, this is some information about it.\r

        Note that we cannot guarantee any of this resembles what ends up in the PGCR in any way. They are sourced by two entirely separate systems with their own logic, and the one we source this data from should be considered non-authoritative in comparison."
      properties:
        endTime:
          description: If you're still in it but it "ended" (like when folks are dancing around the loot after they beat a boss), this is when the activity ended.
          format: date-time
          type: string
        highestOpposingFactionScore:
          description: If you have human opponents, this is the highest opposing team's score.
          format: float
          type: number
        numberOfOpponents:
          description: This is how many human or poorly crafted aimbot opponents you have.
          format: int32
          type: integer
        numberOfPlayers:
          description: This is how many human or poorly crafted aimbots are on your team.
          format: int32
          type: integer
        score:
          description: This is what our non-authoritative source thought the score was.
          format: float
          type: number
        startTime:
          description: When the activity started.
          format: date-time
          type: string
      type: object
    Destiny.Components.Profiles.DestinyProfileTransitoryJoinability:
      description: Some basic information about whether you can be joined, how many slots are left etc. Note that this can change quickly, so it may not actually be useful. But perhaps it will be in some use cases?
      properties:
        closedReasons:
          description: Reasons why a person can't join this person's fireteam.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema93"
        openSlots:
          description: The number of slots still available on this person's fireteam.
          format: int32
          type: integer
        privacySetting:
          description: Who the person is currently allowing invites from.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema92"
      type: object
    Destiny.Components.Profiles.DestinyProfileTransitoryPartyMember:
      description: "This is some bare minimum information about a party member in a Fireteam. Unfortunately, without great computational expense on our side we can only get at the data contained here. I'd like to give you a character ID for example, but we don't have it. But we do have these three pieces of information. May they help you on your quest to show meaningful data about current Fireteams.\r

        Notably, we don't and can't feasibly return info on characters. If you can, try to use just the data below for your UI and purposes. Only hit us with further queries if you absolutely must know the character ID of the currently playing character. Pretty please with sugar on top."
      properties:
        displayName:
          description: The player's last known display name.
          type: string
        emblemHash:
          description: The identifier for the DestinyInventoryItemDefinition of the player's emblem.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        membershipId:
          description: The Membership ID that matches the party member.
          format: int64
          type: integer
        status:
          description: A Flags Enumeration value indicating the states that the player is in relevant to being on a fireteam.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema91"
      type: object
    Destiny.Components.Profiles.DestinyProfileTransitoryTrackingEntry:
      description: "This represents a single \"thing\" being tracked by the player.\r

        This can point to many types of entities, but only a subset of them will actually have a valid hash identifier for whatever it is being pointed to.\r

        It's up to you to interpret what it means when various combinations of these entries have values being tracked."
      properties:
        activityHash:
          description: OPTIONAL - If this is tracking the status of a DestinyActivityDefinition, this is the identifier for that activity.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        itemHash:
          description: OPTIONAL - If this is tracking the status of a DestinyInventoryItemDefinition, this is the identifier for that item.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        locationHash:
          description: OPTIONAL - If this is tracking a DestinyLocationDefinition, this is the identifier for that location.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyLocationDefinition"
        objectiveHash:
          description: OPTIONAL - If this is tracking the status of a DestinyObjectiveDefinition, this is the identifier for that objective.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
        questlineItemHash:
          description: OPTIONAL - If this is tracking the status of a quest, this is the identifier for the DestinyInventoryItemDefinition that containst that questline data.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        trackedDate:
          description: "OPTIONAL - I've got to level with you, I don't really know what this is. Is it when you started tracking it? Is it only populated for tracked items that have time limits?\r

            I don't know, but we can get at it - when I get time to actually test what it is, I'll update this. In the meantime, bask in the mysterious data."
          format: date-time
          type: string
      type: object
    Destiny.Components.Records.DestinyCharacterRecordsComponent:
      properties:
        featuredRecordHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordDefinition"
        recordCategoriesRootNodeHash:
          description: The hash for the root presentation node definition of Triumph categories.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        recordSealsRootNodeHash:
          description: The hash for the root presentation node definition of Triumph Seals.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        records:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Records.DestinyRecordComponent"
          type: object
      type: object
      x-destiny-component-type-dependency: Records
    Destiny.Components.Records.DestinyProfileRecordsComponent:
      properties:
        activeScore:
          description: Your 'active' Triumphs score.
          format: int32
          type: integer
        legacyScore:
          description: Your 'legacy' Triumphs score.
          format: int32
          type: integer
        lifetimeScore:
          description: Your 'lifetime' Triumphs score.
          format: int32
          type: integer
        recordCategoriesRootNodeHash:
          description: The hash for the root presentation node definition of Triumph categories.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        recordSealsRootNodeHash:
          description: The hash for the root presentation node definition of Triumph Seals.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        records:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Records.DestinyRecordComponent"
          type: object
        score:
          description: Your 'active' Triumphs score, maintained for backwards compatibility.
          format: int32
          type: integer
        trackedRecordHash:
          description: If this profile is tracking a record, this is the hash identifier of the record it is tracking.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordDefinition"
      type: object
      x-destiny-component-type-dependency: Records
    Destiny.Components.Records.DestinyRecordComponent:
      properties:
        completedCount:
          description: If available, this is the number of times this record has been completed. For example, the number of times a seal title has been gilded.
          format: int32
          type: integer
        intervalObjectives:
          items:
            $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
          type: array
        intervalsRedeemedCount:
          format: int32
          type: integer
        objectives:
          items:
            $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
          type: array
        rewardVisibilty:
          description: If available, a list that describes which reward rewards should be shown (true) or hidden (false). This property is for regular record rewards, and not for interval objective rewards.
          items:
            type: boolean
          type: array
        state:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema89"
      type: object
    Destiny.Components.Records.DestinyRecordsComponent:
      properties:
        recordCategoriesRootNodeHash:
          description: The hash for the root presentation node definition of Triumph categories.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        recordSealsRootNodeHash:
          description: The hash for the root presentation node definition of Triumph Seals.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        records:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Records.DestinyRecordComponent"
          type: object
      type: object
      x-destiny-component-type-dependency: Records
    Destiny.Components.Social.DestinySocialCommendationsComponent:
      properties:
        commendationNodeScoresByHash:
          additionalProperties:
            format: int32
            type: integer
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Social.DestinySocialCommendationNodeDefinition"
        commendationScoresByHash:
          additionalProperties:
            format: int32
            type: integer
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Social.DestinySocialCommendationDefinition"
        scoreDetailValues:
          items:
            format: int32
            type: integer
          type: array
        totalScore:
          format: int32
          type: integer
      type: object
      x-destiny-component-type-dependency: SocialCommendations
    Destiny.Components.StringVariables.DestinyStringVariablesComponent:
      properties:
        integerValuesByHash:
          additionalProperties:
            format: int32
            type: integer
          type: object
      type: object
      x-destiny-component-type-dependency: StringVariables
    Destiny.Components.Vendors.DestinyPublicVendorComponent:
      description: This component contains essential/summary information about the vendor from the perspective of a character-agnostic view.
      properties:
        enabled:
          description: "If True, the Vendor is currently accessible. \r

            If False, they may not actually be visible in the world at the moment."
          type: boolean
        nextRefreshDate:
          description: "The date when this vendor's inventory will next rotate/refresh.\r

            Note that this is distinct from the date ranges that the vendor is visible/available in-game: this field indicates the specific time when the vendor's available items refresh and rotate, regardless of whether the vendor is actually available at that time. Unfortunately, these two values may be (and are, for the case of important vendors like Xur) different.\r

            Issue https://github.com/Bungie-net/api/issues/353 is tracking a fix to start providing visibility date ranges where possible in addition to this refresh date, so that all important dates for vendors are available for use."
          format: date-time
          type: string
        vendorHash:
          description: The unique identifier for the vendor. Use it to look up their DestinyVendorDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
      type: object
      x-destiny-component-type-dependency: Vendors
    Destiny.Components.Vendors.DestinyPublicVendorSaleItemComponent:
      description: "Has character-agnostic information about an item being sold by a vendor.\r

        Note that if you want instance, stats, etc... data for the item, you'll have to request additional components such as ItemInstances, ItemPerks etc... and acquire them from the DestinyVendorResponse's \"items\" property. For most of these, however, you'll have to ask for it in context of a specific character."
      properties:
        apiPurchasable:
          description: If true, this item can be purchased through the Bungie.net API.
          type: boolean
        costs:
          description: A summary of the current costs of the item.
          items:
            $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          type: array
        itemHash:
          description: The hash of the item being sold, as a quick shortcut for looking up the DestinyInventoryItemDefinition of the sale item.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        overrideNextRefreshDate:
          description: "If this item has its own custom date where it may be removed from the Vendor's rotation, this is that date.\r

            Note that there's not actually any guarantee that it will go away: it could be chosen again and end up still being in the Vendor's sale items! But this is the next date where that test will occur, and is also the date that the game shows for availability on things like Bounties being sold. So it's the best we can give."
          format: date-time
          type: string
        overrideStyleItemHash:
          description: "If populated, this is the hash of the item whose icon (and other secondary styles, but *not* the human readable strings) should override whatever icons/styles are on the item being sold.\r

            If you don't do this, certain items whose styles are being overridden by socketed items - such as the \"Recycle Shader\" item - would show whatever their default icon/style is, and it wouldn't be pretty or look accurate."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        quantity:
          description: How much of the item you'll be getting.
          format: int32
          type: integer
        vendorItemIndex:
          description: "The index into the DestinyVendorDefinition.itemList property. Note that this means Vendor data *is* Content Version dependent: make sure you have the latest content before you use Vendor data, or these indexes may mismatch. \r

            Most systems avoid this problem, but Vendors is one area where we are unable to reasonably avoid content dependency at the moment."
          format: int32
          type: integer
      type: object
      x-destiny-component-type-dependency: VendorSales
    Destiny.Components.Vendors.DestinyVendorBaseComponent:
      description: This component contains essential/summary information about the vendor.
      properties:
        enabled:
          description: "If True, the Vendor is currently accessible. \r

            If False, they may not actually be visible in the world at the moment."
          type: boolean
        nextRefreshDate:
          description: "The date when this vendor's inventory will next rotate/refresh.\r

            Note that this is distinct from the date ranges that the vendor is visible/available in-game: this field indicates the specific time when the vendor's available items refresh and rotate, regardless of whether the vendor is actually available at that time. Unfortunately, these two values may be (and are, for the case of important vendors like Xur) different.\r

            Issue https://github.com/Bungie-net/api/issues/353 is tracking a fix to start providing visibility date ranges where possible in addition to this refresh date, so that all important dates for vendors are available for use."
          format: date-time
          type: string
        vendorHash:
          description: The unique identifier for the vendor. Use it to look up their DestinyVendorDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
      type: object
      x-destiny-component-type-dependency: Vendors
    Destiny.Components.Vendors.DestinyVendorGroup:
      description: "Represents a specific group of vendors that can be rendered in the recommended order.\r

        How do we figure out this order? It's a long story, and will likely get more complicated over time."
      properties:
        vendorGroupHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorGroupDefinition"
        vendorHashes:
          description: The ordered list of vendors within a particular group.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
      type: object
    Destiny.Components.Vendors.DestinyVendorGroupComponent:
      description: This component returns references to all of the Vendors in the response, grouped by categorizations that Bungie has deemed to be interesting, in the order in which both the groups and the vendors within that group should be rendered.
      properties:
        groups:
          description: The ordered list of groups being returned.
          items:
            $ref: "#/components/schemas/Destiny.Components.Vendors.DestinyVendorGroup"
          type: array
      type: object
      x-destiny-component-type-dependency: Vendors
    Destiny.Components.Vendors.DestinyVendorSaleItemBaseComponent:
      description: "The base class for Vendor Sale Item data. Has a bunch of character-agnostic state about the item being sold.\r

        Note that if you want instance, stats, etc... data for the item, you'll have to request additional components such as ItemInstances, ItemPerks etc... and acquire them from the DestinyVendorResponse's \"items\" property."
      properties:
        apiPurchasable:
          description: If true, this item can be purchased through the Bungie.net API.
          type: boolean
        costs:
          description: A summary of the current costs of the item.
          items:
            $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          type: array
        itemHash:
          description: The hash of the item being sold, as a quick shortcut for looking up the DestinyInventoryItemDefinition of the sale item.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        overrideNextRefreshDate:
          description: "If this item has its own custom date where it may be removed from the Vendor's rotation, this is that date.\r

            Note that there's not actually any guarantee that it will go away: it could be chosen again and end up still being in the Vendor's sale items! But this is the next date where that test will occur, and is also the date that the game shows for availability on things like Bounties being sold. So it's the best we can give."
          format: date-time
          type: string
        overrideStyleItemHash:
          description: "If populated, this is the hash of the item whose icon (and other secondary styles, but *not* the human readable strings) should override whatever icons/styles are on the item being sold.\r

            If you don't do this, certain items whose styles are being overridden by socketed items - such as the \"Recycle Shader\" item - would show whatever their default icon/style is, and it wouldn't be pretty or look accurate."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        quantity:
          description: How much of the item you'll be getting.
          format: int32
          type: integer
        vendorItemIndex:
          description: "The index into the DestinyVendorDefinition.itemList property. Note that this means Vendor data *is* Content Version dependent: make sure you have the latest content before you use Vendor data, or these indexes may mismatch. \r

            Most systems avoid this problem, but Vendors is one area where we are unable to reasonably avoid content dependency at the moment."
          format: int32
          type: integer
      type: object
      x-destiny-component-type-dependency: VendorSales
    Destiny.Config.DestinyManifest:
      description: DestinyManifest is the external-facing contract for just the properties needed by those calling the Destiny Platform.
      properties:
        iconImagePyramidInfo:
          description: Information about the "Image Pyramid" for Destiny icons. Where possible, we create smaller versions of Destiny icons. These are found as subfolders under the location of the "original/full size" Destiny images, with the same file name and extension as the original image itself. (this lets us avoid sending largely redundant path info with every entity, at the expense of the smaller versions of the image being less discoverable)
          items:
            $ref: "#/components/schemas/Destiny.Config.ImagePyramidEntry"
          type: array
        jsonWorldComponentContentPaths:
          additionalProperties:
            additionalProperties:
              type: string
            type: object
          description: "This points to the generated JSON that contains all the Definitions. Each key is a locale. The value is a dictionary, where the key is a definition type by name, and the value is the path to the file for that definition. WARNING: This is unsafe and subject to change - do not depend on data in these files staying around long-term."
          type: object
        jsonWorldContentPaths:
          additionalProperties:
            type: string
          description: "This points to the generated JSON that contains all the Definitions. Each key is a locale. The value is a path to the aggregated world definitions (warning: large file!)"
          type: object
        mobileAssetContentPath:
          type: string
        mobileClanBannerDatabasePath:
          type: string
        mobileGearAssetDataBases:
          items:
            $ref: "#/components/schemas/Destiny.Config.GearAssetDataBaseDefinition"
          type: array
        mobileGearCDN:
          additionalProperties:
            type: string
          type: object
        mobileWorldContentPaths:
          additionalProperties:
            type: string
          type: object
        version:
          type: string
      type: object
    Destiny.Config.GearAssetDataBaseDefinition:
      properties:
        path:
          type: string
        version:
          format: int32
          type: integer
      type: object
    Destiny.Config.ImagePyramidEntry:
      properties:
        factor:
          description: The factor by which the original image size has been reduced.
          format: float
          type: number
        name:
          description: The name of the subfolder where these images are located.
          type: string
      type: object
    Destiny.Constants.DestinyEnvironmentLocationMapping:
      properties:
        activationSource:
          description: A hint that the UI uses to figure out how this location is activated by the player.
          type: string
        activityHash:
          description: If this is populated, this is the activity you have to be playing in order to see this location appear because of this mapping. (theoretically, a location can have multiple mappings, and some might require you to be in a specific activity when others don't)
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        itemHash:
          description: If this is populated, it is the item that you must possess for this location to be active because of this mapping. (theoretically, a location can have multiple mappings, and some might require an item while others don't)
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        locationHash:
          description: The location that is revealed on the director by this mapping.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyLocationDefinition"
        objectiveHash:
          description: If this is populated, this is an objective related to the location.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
      type: object
    Destiny.DamageType:
      $ref: "#/components/schemas/schema30"
    Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition:
      description: Modifiers - in Destiny 1, these were referred to as "Skulls" - are changes that can be applied to an Activity.
      properties:
        displayInActivitySelection:
          type: boolean
        displayInNavMode:
          type: boolean
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: ActivityModifiers
    Destiny.Definitions.Animations.DestinyAnimationReference:
      properties:
        animIdentifier:
          type: string
        animName:
          type: string
        path:
          type: string
      type: object
    Destiny.Definitions.Artifacts.DestinyArtifactDefinition:
      description: "Represents known info about a Destiny Artifact.\r

        We cannot guarantee that artifact definitions will be immutable between seasons - in fact, we've been told that they will be replaced between seasons. But this definition is built both to minimize the amount of lookups for related data that have to occur, and is built in hope that, if this plan changes, we will be able to accommodate it more easily."
      properties:
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: Any basic display info we know about the Artifact. Currently sourced from a related inventory item, but the source of this data is subject to change.
          type: object
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        tiers:
          description: Any Tier/Rank data related to this artifact, listed in display order.  Currently sourced from a Vendor, but this source is subject to change.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Artifacts.DestinyArtifactTierDefinition"
          type: array
        translationBlock:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemTranslationBlockDefinition"
          description: Any Geometry/3D info we know about the Artifact. Currently sourced from a related inventory item's gearset information, but the source of this data is subject to change.
          type: object
      type: object
      x-mobile-manifest-name: Artifacts
    Destiny.Definitions.Artifacts.DestinyArtifactTierDefinition:
      properties:
        displayTitle:
          description: The human readable title of this tier, if any.
          type: string
        items:
          description: The items that can be earned within this tier.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Artifacts.DestinyArtifactTierItemDefinition"
          type: array
        minimumUnlockPointsUsedRequirement:
          description: The minimum number of "unlock points" that you must have used before you can unlock items from this tier.
          format: int32
          type: integer
        progressRequirementMessage:
          description: A string representing the localized minimum requirement text for this Tier, if any.
          type: string
        tierHash:
          description: An identifier, unique within the Artifact, for this specific tier.
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.Artifacts.DestinyArtifactTierItemDefinition:
      properties:
        itemHash:
          description: The identifier of the Plug Item unlocked by activating this item in the Artifact.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
    Destiny.Definitions.BreakerTypes.DestinyBreakerTypeDefinition:
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        enumValue:
          description: We have an enumeration for Breaker types for quick reference. This is the current definition's breaker type enum value.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema29"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: BreakerTypes
    Destiny.Definitions.Checklists.DestinyChecklistDefinition:
      description: "By public demand, Checklists are loose sets of \"things to do/things you have done\" in Destiny that we were actually able to track. They include easter eggs you find in the world, unique chests you unlock, and other such data where the first time you do it is significant enough to be tracked, and you have the potential to \"get them all\".\r

        These may be account-wide, or may be per character. The status of these will be returned in related \"Checklist\" data coming down from API requests such as GetProfile or GetCharacter.\r

        Generally speaking, the items in a checklist can be completed in any order: we return an ordered list which only implies the way we are showing them in our own UI, and you can feel free to alter it as you wish.\r

        Note that, in the future, there will be something resembling the old D1 Record Books in at least some vague form. When that is created, it may be that it will supercede much or all of this Checklist data. It remains to be seen if that will be the case, so for now assume that the Checklists will still exist even after the release of D2: Forsaken."
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        entries:
          description: The individual checklist items. Gotta catch 'em all.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Checklists.DestinyChecklistEntryDefinition"
          type: array
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        scope:
          description: Indicates whether you will find this checklist on the Profile or Character components.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema65"
        viewActionString:
          description: A localized string prompting you to view the checklist.
          type: string
      type: object
      x-mobile-manifest-name: Checklists
    Destiny.Definitions.Checklists.DestinyChecklistEntryDefinition:
      description: "The properties of an individual checklist item. Note that almost everything is optional: it is *highly* variable what kind of data we'll actually be able to return: at times we may have no other relationships to entities at all.\r

        Whatever UI you build, do it with the knowledge that any given entry might not actually be able to be associated with some other Destiny entity."
      properties:
        activityHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        bubbleHash:
          description: "Note that a Bubble's hash doesn't uniquely identify a \"top level\" entity in Destiny. Only the combination of location and bubble can uniquely identify a place in the world of Destiny: so if bubbleHash is populated, locationHash must too be populated for it to have any meaning.\r

            You can use this property if it is populated to look up the DestinyLocationDefinition's associated .locationReleases[].activityBubbleName property."
          format: uint32
          type: integer
        destinationHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDestinationDefinition"
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: Even if no other associations exist, we will give you *something* for display properties. In cases where we have no associated entities, it may be as simple as a numerical identifier.
          type: object
        hash:
          description: The identifier for this Checklist entry. Guaranteed unique only within this Checklist Definition, and not globally/for all checklists.
          format: uint32
          type: integer
        itemHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        locationHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyLocationDefinition"
        scope:
          description: The scope at which this specific entry can be computed.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema65"
        vendorHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
        vendorInteractionIndex:
          format: int32
          type: integer
      type: object
    Destiny.Definitions.Collectibles.DestinyCollectibleAcquisitionBlock:
      properties:
        acquireMaterialRequirementHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyMaterialRequirementSetDefinition"
        acquireTimestampUnlockValueHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyUnlockValueDefinition"
      type: object
    Destiny.Definitions.Collectibles.DestinyCollectibleDefinition:
      description: Defines a
      properties:
        acquisitionInfo:
          $ref: "#/components/schemas/Destiny.Definitions.Collectibles.DestinyCollectibleAcquisitionBlock"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        itemHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        parentNodeHashes:
          description: A quick reference to presentation nodes that have this node as a child. Presentation nodes can be parented under multiple parents.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        presentationInfo:
          $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationChildBlock"
        presentationNodeType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema64"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        scope:
          description: Indicates whether the state of this Collectible is determined on a per-character or on an account-wide basis.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema65"
        sourceHash:
          description: "This is a hash identifier we are building on the BNet side in an attempt to let people group collectibles by similar sources.\r

            I can't promise that it's going to be 100% accurate, but if the designers were consistent in assigning the same source strings to items with the same sources, it *ought to* be. No promises though.\r

            This hash also doesn't relate to an actual definition, just to note: we've got nothing useful other than the source string for this data."
          format: uint32
          type: integer
        sourceString:
          description: A human readable string for a hint about how to acquire the item.
          type: string
        stateInfo:
          $ref: "#/components/schemas/Destiny.Definitions.Collectibles.DestinyCollectibleStateBlock"
        traitHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Traits.DestinyTraitDefinition"
        traitIds:
          items:
            type: string
          type: array
      type: object
      x-mobile-manifest-name: Collectibles
    Destiny.Definitions.Collectibles.DestinyCollectibleStateBlock:
      properties:
        obscuredOverrideItemHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        requirements:
          $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeRequirementsBlock"
      type: object
    Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition:
      description: Many Destiny*Definition contracts - the "first order" entities of Destiny that have their own tables in the Manifest Database - also have displayable information. This is the base class for that display information.
      properties:
        description:
          type: string
        hasIcon:
          type: boolean
        highResIcon:
          description: If this item has a high-res icon (at least for now, many things won't), then the path to that icon will be here.
          type: string
        icon:
          description: "Note that \"icon\" is sometimes misleading, and should be interpreted in the context of the entity. For instance, in Destiny 1 the DestinyRecordBookDefinition's icon was a big picture of a book.\r

            But usually, it will be a small square image that you can use as... well, an icon.\r

            They are currently represented as 96px x 96px images."
          type: string
        iconSequences:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyIconSequenceDefinition"
          type: array
        name:
          type: string
      type: object
    Destiny.Definitions.Common.DestinyIconSequenceDefinition:
      properties:
        frames:
          items:
            type: string
          type: array
      type: object
    Destiny.Definitions.Common.DestinyPositionDefinition:
      properties:
        x:
          format: int32
          type: integer
        y:
          format: int32
          type: integer
        z:
          format: int32
          type: integer
      type: object
    Destiny.Definitions.DestinyActivityChallengeDefinition:
      description: Represents a reference to a Challenge, which for now is just an Objective.
      properties:
        dummyRewards:
          description: "The rewards as they're represented in the UI. Note that they generally link to \"dummy\" items that give a summary of rewards rather than direct, real items themselves.\r

            If the quantity is 0, don't show the quantity."
          items:
            $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          type: array
        objectiveHash:
          description: The hash for the Objective that matches this challenge. Use it to look up the DestinyObjectiveDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
      type: object
    Destiny.Definitions.DestinyActivityDefinition:
      description: "The static data about Activities in Destiny 2.\r

        Note that an Activity must be combined with an ActivityMode to know - from a Gameplay perspective - what the user is \"Playing\".\r

        In most PvE activities, this is fairly straightforward. A Story Activity can only be played in the Story Activity Mode.\r

        However, in PvP activities, the Activity alone only tells you the map being played, or the Playlist that the user chose to enter. You'll need to know the Activity Mode they're playing to know that they're playing Mode X on Map Y.\r

        Activity Definitions tell a great deal of information about what *could* be relevant to a user: what rewards they can earn, what challenges could be performed, what modifiers could be applied. To figure out which of these properties is actually live, you'll need to combine the definition with \"Live\" data from one of the Destiny endpoints.\r

        Activities also have Activity Types, but unfortunately in Destiny 2 these are even less reliable of a source of information than they were in Destiny 1. I will be looking into ways to provide more reliable sources for type information as time goes on, but for now we're going to have to deal with the limitations. See DestinyActivityTypeDefinition for more information."
      properties:
        activityGraphList:
          description: Unfortunately, in practice this is almost never populated. In theory, this is supposed to tell which Activity Graph to show if you bring up the director while in this activity.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityGraphListEntryDefinition"
          type: array
        activityLightLevel:
          description: The recommended light level for this activity.
          format: int32
          type: integer
        activityLocationMappings:
          description: A list of location mappings that are affected by this activity. Pulled out of DestinyLocationDefinitions for our/your lookup convenience.
          items:
            $ref: "#/components/schemas/Destiny.Constants.DestinyEnvironmentLocationMapping"
          type: array
        activityModeHashes:
          description: The hash identifiers for Activity Modes relevant to this activity.  Note that if this is a playlist, the specific playlist entry chosen will determine the actual activity modes that end up being relevant.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityModeDefinition"
        activityModeTypes:
          description: The activity modes - if any - in enum form. Because we can't seem to escape the enums.
          items:
            description: For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don't take this to mean that some D1-only feature is coming back!
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema4"
          type: array
        activityTypeHash:
          description: "The hash identifier for the Activity Type of this Activity. You may use it to look up the DestinyActivityTypeDefinition for human readable info, but be forewarned: Playlists and many PVP Map Activities will map to generic Activity Types. You'll have to use your knowledge of the Activity Mode being played to get more specific information about what the user is playing."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityTypeDefinition"
        challenges:
          description: "An activity can have many Challenges, of which any subset of them may be active for play at any given period of time. This gives the information about the challenges and data that we use to understand when they're active and what rewards they provide. Sadly, at the moment there's no central definition for challenges: much like \"Skulls\" were in Destiny 1, these are defined on individual activities and there can be many duplicates/near duplicates across the Destiny 2 ecosystem. I have it in mind to centralize these in a future revision of the API, but we are out of time."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityChallengeDefinition"
          type: array
        destinationHash:
          description: The hash identifier for the Destination on which this Activity is played. Use it to look up the DestinyDestinationDefinition for human readable info about the destination. A Destination can be thought of as a more specific location than a "Place". For instance, if the "Place" is Earth, the "Destination" would be a specific city or region on Earth.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDestinationDefinition"
        directActivityModeHash:
          description: If this activity had an activity mode directly defined on it, this will be the hash of that mode.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityModeDefinition"
        directActivityModeType:
          description: If the activity had an activity mode directly defined on it, this will be the enum value of that mode.
          enum:
            - "0"
            - "2"
            - "3"
            - "4"
            - "5"
            - "6"
            - "7"
            - "9"
            - "10"
            - "11"
            - "12"
            - "13"
            - "15"
            - "16"
            - "17"
            - "18"
            - "19"
            - "20"
            - "21"
            - "22"
            - "24"
            - "25"
            - "26"
            - "27"
            - "28"
            - "29"
            - "30"
            - "31"
            - "32"
            - "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"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: Story
              numericValue: "2"
            - identifier: Strike
              numericValue: "3"
            - identifier: Raid
              numericValue: "4"
            - identifier: AllPvP
              numericValue: "5"
            - identifier: Patrol
              numericValue: "6"
            - identifier: AllPvE
              numericValue: "7"
            - identifier: Reserved9
              numericValue: "9"
            - identifier: Control
              numericValue: "10"
            - identifier: Reserved11
              numericValue: "11"
            - description: Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
              identifier: Clash
              numericValue: "12"
            - identifier: Reserved13
              numericValue: "13"
            - identifier: CrimsonDoubles
              numericValue: "15"
            - identifier: Nightfall
              numericValue: "16"
            - identifier: HeroicNightfall
              numericValue: "17"
            - identifier: AllStrikes
              numericValue: "18"
            - identifier: IronBanner
              numericValue: "19"
            - identifier: Reserved20
              numericValue: "20"
            - identifier: Reserved21
              numericValue: "21"
            - identifier: Reserved22
              numericValue: "22"
            - identifier: Reserved24
              numericValue: "24"
            - identifier: AllMayhem
              numericValue: "25"
            - identifier: Reserved26
              numericValue: "26"
            - identifier: Reserved27
              numericValue: "27"
            - identifier: Reserved28
              numericValue: "28"
            - identifier: Reserved29
              numericValue: "29"
            - identifier: Reserved30
              numericValue: "30"
            - identifier: Supremacy
              numericValue: "31"
            - identifier: PrivateMatchesAll
              numericValue: "32"
            - identifier: Survival
              numericValue: "37"
            - identifier: Countdown
              numericValue: "38"
            - identifier: TrialsOfTheNine
              numericValue: "39"
            - identifier: Social
              numericValue: "40"
            - identifier: TrialsCountdown
              numericValue: "41"
            - identifier: TrialsSurvival
              numericValue: "42"
            - identifier: IronBannerControl
              numericValue: "43"
            - identifier: IronBannerClash
              numericValue: "44"
            - identifier: IronBannerSupremacy
              numericValue: "45"
            - identifier: ScoredNightfall
              numericValue: "46"
            - identifier: ScoredHeroicNightfall
              numericValue: "47"
            - identifier: Rumble
              numericValue: "48"
            - identifier: AllDoubles
              numericValue: "49"
            - identifier: Doubles
              numericValue: "50"
            - identifier: PrivateMatchesClash
              numericValue: "51"
            - identifier: PrivateMatchesControl
              numericValue: "52"
            - identifier: PrivateMatchesSupremacy
              numericValue: "53"
            - identifier: PrivateMatchesCountdown
              numericValue: "54"
            - identifier: PrivateMatchesSurvival
              numericValue: "55"
            - identifier: PrivateMatchesMayhem
              numericValue: "56"
            - identifier: PrivateMatchesRumble
              numericValue: "57"
            - identifier: HeroicAdventure
              numericValue: "58"
            - identifier: Showdown
              numericValue: "59"
            - identifier: Lockdown
              numericValue: "60"
            - identifier: Scorched
              numericValue: "61"
            - identifier: ScorchedTeam
              numericValue: "62"
            - identifier: Gambit
              numericValue: "63"
            - identifier: AllPvECompetitive
              numericValue: "64"
            - identifier: Breakthrough
              numericValue: "65"
            - identifier: BlackArmoryRun
              numericValue: "66"
            - identifier: Salvage
              numericValue: "67"
            - identifier: IronBannerSalvage
              numericValue: "68"
            - identifier: PvPCompetitive
              numericValue: "69"
            - identifier: PvPQuickplay
              numericValue: "70"
            - identifier: ClashQuickplay
              numericValue: "71"
            - identifier: ClashCompetitive
              numericValue: "72"
            - identifier: ControlQuickplay
              numericValue: "73"
            - identifier: ControlCompetitive
              numericValue: "74"
            - identifier: GambitPrime
              numericValue: "75"
            - identifier: Reckoning
              numericValue: "76"
            - identifier: Menagerie
              numericValue: "77"
            - identifier: VexOffensive
              numericValue: "78"
            - identifier: NightmareHunt
              numericValue: "79"
            - identifier: Elimination
              numericValue: "80"
            - identifier: Momentum
              numericValue: "81"
            - identifier: Dungeon
              numericValue: "82"
            - identifier: Sundial
              numericValue: "83"
            - identifier: TrialsOfOsiris
              numericValue: "84"
            - identifier: Dares
              numericValue: "85"
            - identifier: Offensive
              numericValue: "86"
            - identifier: LostSector
              numericValue: "87"
            - identifier: Rift
              numericValue: "88"
            - identifier: ZoneControl
              numericValue: "89"
            - identifier: IronBannerRift
              numericValue: "90"
            - identifier: IronBannerZoneControl
              numericValue: "91"
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: The title, subtitle, and icon for the activity. We do a little post-processing on this to try and account for Activities where the designers have left this data too minimal to determine what activity is actually being played.
          type: object
        guidedGame:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityGuidedBlockDefinition"
          description: This block of data, if it exists, provides information about the guided game experience and restrictions for this activity. If it doesn't exist, the game is not able to be played as a guided game.
          type: object
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        insertionPoints:
          description: The list of phases or points of entry into an activity, along with information we can use to determine their gating and availability.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityInsertionPointDefinition"
          type: array
        isPlaylist:
          description: If True, this Activity is actually a Playlist that refers to multiple possible specific Activities and Activity Modes. For instance, a Crucible Playlist may have references to multiple Activities (Maps) with multiple Activity Modes (specific PvP gameplay modes). If this is true, refer to the playlistItems property for the specific entries in the playlist.
          type: boolean
        isPvP:
          description: If true, this activity is a PVP activity or playlist.
          type: boolean
        loadouts:
          description: The set of all possible loadout requirements that could be active for this activity. Only one will be active at any given time, and you can discover which one through activity-associated data such as Milestones that have activity info on them.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityLoadoutRequirementSet"
          type: array
        matchmaking:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityMatchmakingBlockDefinition"
          description: "This block of data provides information about the Activity's matchmaking attributes: how many people can join and such."
          type: object
        modifiers:
          description: Activities can have Modifiers, as defined in DestinyActivityModifierDefinition. These are references to the modifiers that *can* be applied to that activity, along with data that we use to determine if that modifier is actually active at any given point in time.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityModifierReferenceDefinition"
          type: array
        optionalUnlockStrings:
          description: If there are status strings related to the activity and based on internal state of the game, account, or character, then this will be the definition of those strings and the states needed in order for the strings to be shown.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityUnlockStringDefinition"
          type: array
        originalDisplayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: The unadulterated form of the display properties, as they ought to be shown in the Director (if the activity appears in the director).
          type: object
        pgcrImage:
          description: When Activities are completed, we generate a "Post-Game Carnage Report", or PGCR, with details about what happened in that activity (how many kills someone got, which team won, etc...) We use this image as the background when displaying PGCR information, and often use it when we refer to the Activity in general.
          type: string
        placeHash:
          description: The hash identifier for the "Place" on which this Activity is played. Use it to look up the DestinyPlaceDefinition for human readable info about the Place. A Place is the largest-scoped concept for location information. For instance, if the "Place" is Earth, the "Destination" would be a specific city or region on Earth.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyPlaceDefinition"
        playlistItems:
          description: Represents all of the possible activities that could be played in the Playlist, along with information that we can use to determine if they are active at the present time.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityPlaylistItemDefinition"
          type: array
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        releaseIcon:
          description: If the activity has an icon associated with a specific release (such as a DLC), this is the path to that release's icon.
          type: string
        releaseTime:
          description: If the activity will not be visible until a specific and known time, this will be the seconds since the Epoch when it will become visible.
          format: int32
          type: integer
        rewards:
          description: "The expected possible rewards for the activity. These rewards may or may not be accessible for an individual player based on their character state, the account state, and even the game's state overall. But it is a useful reference for possible rewards you can earn in the activity. These match up to rewards displayed when you hover over the Activity in the in-game Director, and often refer to Placeholder or \"Dummy\" items: items that tell you what you can earn in vague terms rather than what you'll specifically be earning (partly because the game doesn't even know what you'll earn specifically until you roll for it at the end)"
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityRewardDefinition"
          type: array
        selectionScreenDisplayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: The title, subtitle, and icon for the activity as determined by Selection Screen data, if there is any for this activity. There won't be data in this field if the activity is never shown in a selection/options screen.
          type: object
        tier:
          description: The difficulty tier of the activity.
          format: int32
          type: integer
      type: object
      x-mobile-manifest-name: Activities
    Destiny.Definitions.DestinyActivityGraphListEntryDefinition:
      description: "Destinations and Activities may have default Activity Graphs that should be shown when you bring up the Director and are playing in either.\r

        This contract defines the graph referred to and the gating for when it is relevant."
      properties:
        activityGraphHash:
          description: The hash identifier of the DestinyActivityGraphDefinition that should be shown when opening the director.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Director.DestinyActivityGraphDefinition"
      type: object
    Destiny.Definitions.DestinyActivityGuidedBlockDefinition:
      description: Guided Game information for this activity.
      properties:
        guidedDisbandCount:
          description: "If -1, the guided group cannot be disbanded. Otherwise, take the total # of players in the activity and subtract this number: that is the total # of votes needed for the guided group to disband."
          format: int32
          type: integer
        guidedMaxLobbySize:
          description: The maximum amount of people that can be in the waiting lobby.
          format: int32
          type: integer
        guidedMinLobbySize:
          description: The minimum amount of people that can be in the waiting lobby.
          format: int32
          type: integer
      type: object
    Destiny.Definitions.DestinyActivityInsertionPointDefinition:
      description: "A point of entry into an activity, gated by an unlock flag and with some more-or-less useless (for our purposes) phase information. I'm including it in case we end up being able to bolt more useful information onto it in the future.\r

        UPDATE: Turns out this information isn't actually useless, and is in fact actually useful for people. Who would have thought? We still don't have localized info for it, but at least this will help people when they're looking at phase indexes in stats data, or when they want to know what phases have been completed on a weekly achievement."
      properties:
        phaseHash:
          description: A unique hash value representing the phase. This can be useful for, for example, comparing how different instances of Raids have phases in different orders!
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.DestinyActivityLoadoutRequirement:
      properties:
        allowedEquippedItemHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        allowedWeaponSubTypes:
          items:
            description: "This Enumeration further classifies items by more specific categorizations than DestinyItemType. The \"Sub-Type\" is where we classify and categorize items one step further in specificity: \"Auto Rifle\" instead of just \"Weapon\" for example, or \"Vanguard Bounty\" instead of merely \"Bounty\".\r

              These sub-types are provided for historical compatibility with Destiny 1, but an ideal alternative is to use DestinyItemCategoryDefinitions and the DestinyItemDefinition.itemCategories property instead. Item Categories allow for arbitrary hierarchies of specificity, and for items to belong to multiple categories across multiple hierarchies simultaneously. For this enum, we pick a single type as a \"best guess\" fit.\r

              NOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1 that may or may not still exist."
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema27"
          type: array
        equipmentSlotHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyEquipmentSlotDefinition"
      type: object
    Destiny.Definitions.DestinyActivityLoadoutRequirementSet:
      properties:
        requirements:
          description: The set of requirements that will be applied on the activity if this requirement set is active.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityLoadoutRequirement"
          type: array
      type: object
    Destiny.Definitions.DestinyActivityMatchmakingBlockDefinition:
      description: Information about matchmaking and party size for the activity.
      properties:
        isMatchmade:
          description: If TRUE, the activity is matchmade. Otherwise, it requires explicit forming of a party.
          type: boolean
        maxParty:
          description: "The maximum # of people allowed in a Fireteam."
          format: int32
          type: integer
        maxPlayers:
          description: "The maximum # of people allowed across all teams in the activity."
          format: int32
          type: integer
        minParty:
          description: "The minimum # of people in the fireteam for the activity to launch."
          format: int32
          type: integer
        requiresGuardianOath:
          description: If true, you have to Solemnly Swear to be up to Nothing But Good(tm) to play.
          type: boolean
      type: object
    Destiny.Definitions.DestinyActivityModeDefinition:
      description: "This definition represents an \"Activity Mode\" as it exists in the Historical Stats endpoints. An individual Activity Mode represents a collection of activities that are played in a certain way. For example, Nightfall Strikes are part of a \"Nightfall\" activity mode, and any activities played as the PVP mode \"Clash\" are part of the \"Clash activity mode.\r

        Activity modes are nested under each other in a hierarchy, so that if you ask for - for example - \"AllPvP\", you will get any PVP activities that the user has played, regardless of what specific PVP mode was being played."
      properties:
        activityModeCategory:
          description: The type of play being performed in broad terms (PVP, PVE)
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema61"
        activityModeMappings:
          additionalProperties:
            description: For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don't take this to mean that some D1-only feature is coming back!
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema4"
          description: If this exists, the mode has specific Activities (referred to by the Key) that should instead map to other Activity Modes when they are played. This was useful in D1 for Private Matches, where we wanted to have Private Matches as an activity mode while still referring to the specific mode being played.
          type: object
        display:
          description: If FALSE, we want to ignore this type when we're showing activity modes in BNet UI. It will still be returned in case 3rd parties want to use it for any purpose.
          type: boolean
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        friendlyName:
          description: A Friendly identifier you can use for referring to this Activity Mode. We really only used this in our URLs, so... you know, take that for whatever it's worth.
          type: string
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        isAggregateMode:
          description: "If true, this mode is an aggregation of other, more specific modes rather than being a mode in itself. This includes modes that group Features/Events rather than Gameplay, such as Trials of The Nine: Trials of the Nine being an Event that is interesting to see aggregate data for, but when you play the activities within Trials of the Nine they are more specific activity modes such as Clash."
          type: boolean
        isTeamBased:
          description: "If True, this mode has oppositional teams fighting against each other rather than \"Free-For-All\" or Co-operative modes of play.\r

            Note that Aggregate modes are never marked as team based, even if they happen to be team based at the moment. At any time, an aggregate whose subordinates are only team based could be changed so that one or more aren't team based, and then this boolean won't make much sense (the aggregation would become \"sometimes team based\"). Let's not deal with that right now."
          type: boolean
        modeType:
          description: The Enumeration value for this Activity Mode. Pass this identifier into Stats endpoints to get aggregate stats for this mode.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema4"
        order:
          description: The relative ordering of activity modes.
          format: int32
          type: integer
        parentHashes:
          description: The hash identifiers of the DestinyActivityModeDefinitions that represent all of the "parent" modes for this mode. For instance, the Nightfall Mode is also a member of AllStrikes and AllPvE.
          items:
            format: uint32
            type: integer
          type: array
        pgcrImage:
          description: If this activity mode has a related PGCR image, this will be the path to said image.
          type: string
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: ActivityModes
    Destiny.Definitions.DestinyActivityModifierReferenceDefinition:
      description: "A reference to an Activity Modifier from another entity, such as an Activity (for now, just Activities).\r

        This defines some"
      properties:
        activityModifierHash:
          description: The hash identifier for the DestinyActivityModifierDefinition referenced by this activity.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition"
      type: object
    Destiny.Definitions.DestinyActivityPlaylistItemDefinition:
      description: "If the activity is a playlist, this is the definition for a specific entry in the playlist: a single possible combination of Activity and Activity Mode that can be chosen."
      properties:
        activityHash:
          description: The hash identifier of the Activity that can be played. Use it to look up the DestinyActivityDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        activityModeHashes:
          description: The hash identifiers for Activity Modes relevant to this entry.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityModeDefinition"
        activityModeTypes:
          description: The activity modes - if any - in enum form. Because we can't seem to escape the enums.
          items:
            description: For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don't take this to mean that some D1-only feature is coming back!
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema4"
          type: array
        directActivityModeHash:
          description: If this playlist entry had an activity mode directly defined on it, this will be the hash of that mode.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityModeDefinition"
        directActivityModeType:
          description: If the playlist entry had an activity mode directly defined on it, this will be the enum value of that mode.
          enum:
            - "0"
            - "2"
            - "3"
            - "4"
            - "5"
            - "6"
            - "7"
            - "9"
            - "10"
            - "11"
            - "12"
            - "13"
            - "15"
            - "16"
            - "17"
            - "18"
            - "19"
            - "20"
            - "21"
            - "22"
            - "24"
            - "25"
            - "26"
            - "27"
            - "28"
            - "29"
            - "30"
            - "31"
            - "32"
            - "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"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: Story
              numericValue: "2"
            - identifier: Strike
              numericValue: "3"
            - identifier: Raid
              numericValue: "4"
            - identifier: AllPvP
              numericValue: "5"
            - identifier: Patrol
              numericValue: "6"
            - identifier: AllPvE
              numericValue: "7"
            - identifier: Reserved9
              numericValue: "9"
            - identifier: Control
              numericValue: "10"
            - identifier: Reserved11
              numericValue: "11"
            - description: Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
              identifier: Clash
              numericValue: "12"
            - identifier: Reserved13
              numericValue: "13"
            - identifier: CrimsonDoubles
              numericValue: "15"
            - identifier: Nightfall
              numericValue: "16"
            - identifier: HeroicNightfall
              numericValue: "17"
            - identifier: AllStrikes
              numericValue: "18"
            - identifier: IronBanner
              numericValue: "19"
            - identifier: Reserved20
              numericValue: "20"
            - identifier: Reserved21
              numericValue: "21"
            - identifier: Reserved22
              numericValue: "22"
            - identifier: Reserved24
              numericValue: "24"
            - identifier: AllMayhem
              numericValue: "25"
            - identifier: Reserved26
              numericValue: "26"
            - identifier: Reserved27
              numericValue: "27"
            - identifier: Reserved28
              numericValue: "28"
            - identifier: Reserved29
              numericValue: "29"
            - identifier: Reserved30
              numericValue: "30"
            - identifier: Supremacy
              numericValue: "31"
            - identifier: PrivateMatchesAll
              numericValue: "32"
            - identifier: Survival
              numericValue: "37"
            - identifier: Countdown
              numericValue: "38"
            - identifier: TrialsOfTheNine
              numericValue: "39"
            - identifier: Social
              numericValue: "40"
            - identifier: TrialsCountdown
              numericValue: "41"
            - identifier: TrialsSurvival
              numericValue: "42"
            - identifier: IronBannerControl
              numericValue: "43"
            - identifier: IronBannerClash
              numericValue: "44"
            - identifier: IronBannerSupremacy
              numericValue: "45"
            - identifier: ScoredNightfall
              numericValue: "46"
            - identifier: ScoredHeroicNightfall
              numericValue: "47"
            - identifier: Rumble
              numericValue: "48"
            - identifier: AllDoubles
              numericValue: "49"
            - identifier: Doubles
              numericValue: "50"
            - identifier: PrivateMatchesClash
              numericValue: "51"
            - identifier: PrivateMatchesControl
              numericValue: "52"
            - identifier: PrivateMatchesSupremacy
              numericValue: "53"
            - identifier: PrivateMatchesCountdown
              numericValue: "54"
            - identifier: PrivateMatchesSurvival
              numericValue: "55"
            - identifier: PrivateMatchesMayhem
              numericValue: "56"
            - identifier: PrivateMatchesRumble
              numericValue: "57"
            - identifier: HeroicAdventure
              numericValue: "58"
            - identifier: Showdown
              numericValue: "59"
            - identifier: Lockdown
              numericValue: "60"
            - identifier: Scorched
              numericValue: "61"
            - identifier: ScorchedTeam
              numericValue: "62"
            - identifier: Gambit
              numericValue: "63"
            - identifier: AllPvECompetitive
              numericValue: "64"
            - identifier: Breakthrough
              numericValue: "65"
            - identifier: BlackArmoryRun
              numericValue: "66"
            - identifier: Salvage
              numericValue: "67"
            - identifier: IronBannerSalvage
              numericValue: "68"
            - identifier: PvPCompetitive
              numericValue: "69"
            - identifier: PvPQuickplay
              numericValue: "70"
            - identifier: ClashQuickplay
              numericValue: "71"
            - identifier: ClashCompetitive
              numericValue: "72"
            - identifier: ControlQuickplay
              numericValue: "73"
            - identifier: ControlCompetitive
              numericValue: "74"
            - identifier: GambitPrime
              numericValue: "75"
            - identifier: Reckoning
              numericValue: "76"
            - identifier: Menagerie
              numericValue: "77"
            - identifier: VexOffensive
              numericValue: "78"
            - identifier: NightmareHunt
              numericValue: "79"
            - identifier: Elimination
              numericValue: "80"
            - identifier: Momentum
              numericValue: "81"
            - identifier: Dungeon
              numericValue: "82"
            - identifier: Sundial
              numericValue: "83"
            - identifier: TrialsOfOsiris
              numericValue: "84"
            - identifier: Dares
              numericValue: "85"
            - identifier: Offensive
              numericValue: "86"
            - identifier: LostSector
              numericValue: "87"
            - identifier: Rift
              numericValue: "88"
            - identifier: ZoneControl
              numericValue: "89"
            - identifier: IronBannerRift
              numericValue: "90"
            - identifier: IronBannerZoneControl
              numericValue: "91"
      type: object
    Destiny.Definitions.DestinyActivityRewardDefinition:
      description: Activities can refer to one or more sets of tooltip-friendly reward data. These are the definitions for those tooltip friendly rewards.
      properties:
        rewardItems:
          description: "The \"Items provided\" in the reward. This is almost always a pointer to a DestinyInventoryItemDefintion for an item that you can't actually earn in-game, but that has name/description/icon information for the vague concept of the rewards you will receive. This is because the actual reward generation is non-deterministic and extremely complicated, so the best the game can do is tell you what you'll get in vague terms. And so too shall we.\r

            Interesting trivia: you actually *do* earn these items when you complete the activity. They go into a single-slot bucket on your profile, which is how you see the pop-ups of these rewards when you complete an activity that match these \"dummy\" items. You can even see them if you look at the last one you earned in your profile-level inventory through the BNet API! Who said reading documentation is a waste of time?"
          items:
            $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          type: array
        rewardText:
          description: The header for the reward set, if any.
          type: string
      type: object
    Destiny.Definitions.DestinyActivityTypeDefinition:
      description: "The definition for an Activity Type.\r

        In Destiny 2, an Activity Type represents a conceptual categorization of Activities.\r

        These are most commonly used in the game for the subtitle under Activities, but BNet uses them extensively to identify and group activities by their common properties.\r

        Unfortunately, there has been a movement away from providing the richer data in Destiny 2 that we used to get in Destiny 1 for Activity Types. For instance, Nightfalls are grouped under the same Activity Type as regular Strikes. \r

        For this reason, BNet will eventually migrate toward Activity Modes as a better indicator of activity category. But for the time being, it is still referred to in many places across our codebase."
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: ActivityTypes
    Destiny.Definitions.DestinyActivityUnlockStringDefinition:
      description: Represents a status string that could be conditionally displayed about an activity. Note that externally, you can only see the strings themselves. Internally we combine this information with server state to determine which strings should be shown.
      properties:
        displayString:
          description: The string to be displayed if the conditions are met.
          type: string
      type: object
    Destiny.Definitions.DestinyArrangementRegionFilterDefinition:
      properties:
        arrangementIndexByStatValue:
          additionalProperties:
            format: int32
            type: integer
          type: object
        artArrangementRegionHash:
          format: uint32
          type: integer
        artArrangementRegionIndex:
          format: int32
          type: integer
        statHash:
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.DestinyArtDyeReference:
      properties:
        artDyeChannelHash:
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.DestinyBubbleDefinition:
      description: Basic identifying data about the bubble. Combine with DestinyDestinationBubbleSettingDefinition - see DestinyDestinationDefinition.bubbleSettings for more information.
      properties:
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: The display properties of this bubble, so you don't have to look them up in a separate list anymore.
          type: object
        hash:
          description: "The identifier for the bubble: only guaranteed to be unique within the Destination."
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.DestinyClassDefinition:
      description: Defines a Character Class in Destiny 2. These are types of characters you can play, like Titan, Warlock, and Hunter.
      properties:
        classType:
          description: In Destiny 1, we added a convenience Enumeration for referring to classes. We've kept it, though mostly for posterity. This is the enum value for this definition's class.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema28"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        genderedClassNames:
          additionalProperties:
            type: string
          description: A localized string referring to the singular form of the Class's name when referred to in gendered form. Keyed by the DestinyGender.
          type: object
        genderedClassNamesByGenderHash:
          additionalProperties:
            type: string
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyGenderDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        mentorVendorHash:
          description: Mentors don't really mean anything anymore. Don't expect this to be populated.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: Classes
    Destiny.Definitions.DestinyDamageTypeDefinition:
      description: All damage types that are possible in the game are defined here, along with localized info and icons as needed.
      properties:
        color:
          allOf:
            - $ref: "#/components/schemas/Destiny.Misc.DestinyColor"
          description: A color associated with the damage type. The displayProperties icon is tinted with a color close to this.
          type: object
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: The description of the damage type, icon etc...
          type: object
        enumValue:
          description: We have an enumeration for damage types for quick reference. This is the current definition's damage type enum value.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema30"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        showIcon:
          description: If TRUE, the game shows this damage type's icon. Otherwise, it doesn't. Whether you show it or not is up to you.
          type: boolean
        transparentIconPath:
          description: A variant of the icon that is transparent and colorless.
          type: string
      type: object
      x-mobile-manifest-name: DamageTypes
    Destiny.Definitions.DestinyDefinition:
      description: Provides common properties for destiny definitions.
      properties:
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
    Destiny.Definitions.DestinyDestinationBubbleSettingDefinition:
      description: "Human readable data about the bubble. Combine with DestinyBubbleDefinition - see DestinyDestinationDefinition.bubbleSettings for more information.\r

        DEPRECATED - Just use bubbles."
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
      type: object
    Destiny.Definitions.DestinyDestinationDefinition:
      description: "On to one of the more confusing subjects of the API. What is a Destination, and what is the relationship between it, Activities, Locations, and Places?\r

        A \"Destination\" is a specific region/city/area of a larger \"Place\". For instance, a Place might be Earth where a Destination might be Bellevue, Washington. (Please, pick a more interesting destination if you come to visit Earth)."
      properties:
        activityGraphEntries:
          description: 'If the Destination has default Activity Graphs (i.e. "Map") that should be shown in the director, this is the list of those Graphs. At most, only one should be active at any given time for a Destination: these would represent, for example, different variants on a Map if the Destination is changing on a macro level based on game state.'
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityGraphListEntryDefinition"
          type: array
        bubbleSettings:
          description: "A Destination may have many \"Bubbles\" zones with human readable properties.\r

            We don't get as much info as I'd like about them - I'd love to return info like where on the map they are located - but at least this gives you the name of those bubbles. bubbleSettings and bubbles both have the identical number of entries, and you should match up their indexes to provide matching bubble and bubbleSettings data.\r

            DEPRECATED - Just use bubbles, it now has this data."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDestinationBubbleSettingDefinition"
          type: array
        bubbles:
          description: "This provides the unique identifiers for every bubble in the destination (only guaranteed unique within the destination), and any intrinsic properties of the bubble.\r

            bubbleSettings and bubbles both have the identical number of entries, and you should match up their indexes to provide matching bubble and bubbleSettings data."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyBubbleDefinition"
          type: array
        defaultFreeroamActivityHash:
          description: If this Destination has a default Free-Roam activity, this is the hash for that Activity. Use it to look up the DestinyActivityDefintion.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        placeHash:
          description: The place that "owns" this Destination. Use this hash to look up the DestinyPlaceDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyPlaceDefinition"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: Destinations
    Destiny.Definitions.DestinyDisplayCategoryDefinition:
      description: Display Categories are different from "categories" in that these are specifically for visual grouping and display of categories in Vendor UI. The "categories" structure is for validation of the contained items, and can be categorized entirely separately from "Display Categories", there need be and often will be no meaningful relationship between the two.
      properties:
        displayCategoryHash:
          format: uint32
          type: integer
        displayInBanner:
          description: If true, this category should be displayed in the "Banner" section of the vendor's UI.
          type: boolean
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        displayStyleHash:
          description: An indicator of how the category will be displayed in the UI. It's up to you to do something cool or interesting in response to this, or just to treat it as a normal category.
          format: uint32
          type: integer
        displayStyleIdentifier:
          description: An indicator of how the category will be displayed in the UI. It's up to you to do something cool or interesting in response to this, or just to treat it as a normal category.
          type: string
        identifier:
          description: A string identifier for the display category.
          type: string
        index:
          format: int32
          type: integer
        progressionHash:
          description: "If it exists, this is the hash identifier of a DestinyProgressionDefinition that represents the progression to show on this display category.\r

            Specific categories can now have thier own distinct progression, apparently. So that's cool."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionDefinition"
        sortOrder:
          description: If this category sorts items in a nonstandard way, this will be the way we sort.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema44"
      type: object
    Destiny.Definitions.DestinyEntitySearchResult:
      description: The results of a search for Destiny content. This will be improved on over time, I've been doing some experimenting to see what might be useful.
      properties:
        results:
          allOf:
            - $ref: "#/components/schemas/SearchResultOfDestinyEntitySearchResultItem"
          description: The items found that are matches/near matches for the searched-for term, sorted by something vaguely resembling "relevance". Hopefully this will get better in the future.
          type: object
        suggestedWords:
          description: A list of suggested words that might make for better search results, based on the text searched for.
          items:
            type: string
          type: array
      type: object
    Destiny.Definitions.DestinyEntitySearchResultItem:
      description: An individual Destiny Entity returned from the entity search.
      properties:
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: Basic display properties on the entity, so you don't have to look up the definition to show basic results for the item.
          type: object
        entityType:
          description: The type of entity, returned as a string matching the DestinyDefinition's contract class name. You'll have to have your own mapping from class names to actually looking up those definitions in the manifest databases.
          type: string
        hash:
          description: The hash identifier of the entity. You will use this to look up the DestinyDefinition relevant for the entity found.
          format: uint32
          type: integer
        weight:
          description: The ranking value for sorting that we calculated using our relevance formula. This will hopefully get better with time and iteration.
          format: double
          type: number
      type: object
    Destiny.Definitions.DestinyEquipmentSlotDefinition:
      description: "Characters can not only have Inventory buckets (containers of items that are generally matched by their type or functionality), they can also have Equipment Slots.\r

        The Equipment Slot is an indicator that the related bucket can have instanced items equipped on the character. For instance, the Primary Weapon bucket has an Equipment Slot that determines whether you can equip primary weapons, and holds the association between its slot and the inventory bucket from which it can have items equipped.\r

        An Equipment Slot must have a related Inventory Bucket, but not all inventory buckets must have Equipment Slots."
      properties:
        applyCustomArtDyes:
          description: If True, equipped items should have their custom art dyes applied when rendering the item. Otherwise, custom art dyes on an item should be ignored if the item is equipped in this slot.
          type: boolean
        artDyeChannels:
          description: The Art Dye Channels that apply to this equipment slot.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyArtDyeReference"
          type: array
        bucketTypeHash:
          description: The inventory bucket that owns this equipment slot.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryBucketDefinition"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        equipmentCategoryHash:
          description: These technically point to "Equipment Category Definitions". But don't get excited. There's nothing of significant value in those definitions, so I didn't bother to expose them. You can use the hash here to group equipment slots by common functionality, which serves the same purpose as if we had the Equipment Category definitions exposed.
          format: uint32
          type: integer
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: EquipmentSlots
    Destiny.Definitions.DestinyEquippingBlockDefinition:
      description: Items that can be equipped define this block. It contains information we need to understand how and when the item can be equipped.
      properties:
        ammoType:
          description: Ammo type used by a weapon is no longer determined by the bucket in which it is contained. If the item has an ammo type - i.e. if it is a weapon - this will be the type of ammunition expected.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema41"
        attributes:
          description: "These are custom attributes on the equippability of the item.\r

            For now, this can only be \"equip on acquire\", which would mean that the item will be automatically equipped as soon as you pick it up."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema40"
        displayStrings:
          description: These are strings that represent the possible Game/Account/Character state failure conditions that can occur when trying to equip the item. They match up one-to-one with requiredUnlockExpressions.
          items:
            type: string
          type: array
        equipmentSlotTypeHash:
          description: An equipped item *must* be equipped in an Equipment Slot. This is the hash identifier of the DestinyEquipmentSlotDefinition into which it must be equipped.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyEquipmentSlotDefinition"
        gearsetItemHash:
          description: If the item is part of a gearset, this is a reference to that gearset item.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        uniqueLabel:
          description: "If defined, this is the label used to check if the item has other items of matching types already equipped. \r

            For instance, when you aren't allowed to equip more than one Exotic Weapon, that's because all exotic weapons have identical uniqueLabels and the game checks the to-be-equipped item's uniqueLabel vs. all other already equipped items (other than the item in the slot that's about to be occupied)."
          type: string
        uniqueLabelHash:
          description: The hash of that unique label. Does not point to a specific definition.
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.DestinyFactionDefinition:
      description: "These definitions represent Factions in the game. Factions have ended up unilaterally being related to Vendors that represent them, but that need not necessarily be the case.\r

        A Faction is really just an entity that has a related progression for which a character can gain experience. In Destiny 1, Dead Orbit was an example of a Faction: there happens to be a Vendor that represents Dead Orbit (and indeed, DestinyVendorDefinition.factionHash defines to this relationship), but Dead Orbit could theoretically exist without the Vendor that provides rewards."
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        progressionHash:
          description: The hash identifier for the DestinyProgressionDefinition that indicates the character's relationship with this faction in terms of experience and levels.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionDefinition"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        rewardItemHash:
          description: The faction reward item hash, usually an engram.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        rewardVendorHash:
          description: The faction reward vendor hash, used for faction engram previews.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
        tokenValues:
          additionalProperties:
            format: uint32
            type: integer
          description: The faction token item hashes, and their respective progression values.
          type: object
        vendors:
          description: List of vendors that are associated with this faction. The last vendor that passes the unlock flag checks is the one that should be shown.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyFactionVendorDefinition"
          type: array
      type: object
      x-mobile-manifest-name: Factions
    Destiny.Definitions.DestinyFactionVendorDefinition:
      description: "These definitions represent faction vendors at different points in the game.\r

        A single faction may contain multiple vendors, or the same vendor available at two different locations."
      properties:
        backgroundImagePath:
          description: The relative path to the background image representing this Vendor at this location, for use in a banner.
          type: string
        destinationHash:
          description: The hash identifier for a Destination at which this vendor may be located. Each destination where a Vendor may exist will only ever have a single entry.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDestinationDefinition"
        vendorHash:
          description: The faction vendor hash.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
      type: object
    Destiny.Definitions.DestinyGearArtArrangementReference:
      properties:
        artArrangementHash:
          format: uint32
          type: integer
        classHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyClassDefinition"
      type: object
    Destiny.Definitions.DestinyGenderDefinition:
      description: Gender is a social construct, and as such we have definitions for Genders. Right now there happens to only be two, but we'll see what the future holds.
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        genderType:
          description: This is a quick reference enumeration for all of the currently defined Genders. We use the enumeration for quicker lookups in related data, like DestinyClassDefinition.genderedClassNames.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema42"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: Genders
    Destiny.Definitions.DestinyInventoryBucketDefinition:
      description: "An Inventory (be it Character or Profile level) is comprised of many Buckets. An example of a bucket is \"Primary Weapons\", where all of the primary weapons on a character are gathered together into a single visual element in the UI: a subset of the inventory that has a limited number of slots, and in this case also has an associated Equipment Slot for equipping an item in the bucket.\r

        Item definitions declare what their \"default\" bucket is (DestinyInventoryItemDefinition.inventory.bucketTypeHash), and Item instances will tell you which bucket they are currently residing in (DestinyItemComponent.bucketHash). You can use this information along with the DestinyInventoryBucketDefinition to show these items grouped by bucket.\r

        You cannot transfer an item to a bucket that is not its Default without going through a Vendor's \"accepted items\" (DestinyVendorDefinition.acceptedItems). This is how transfer functionality like the Vault is implemented, as a feature of a Vendor. See the vendor's acceptedItems property for more details."
      properties:
        bucketOrder:
          description: Use this property to provide a quick-and-dirty recommended ordering for buckets in the UI. Most UIs will likely want to forsake this for something more custom and manual.
          format: int32
          type: integer
        category:
          description: An enum value for what items can be found in the bucket. See the BucketCategory enum for more details.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema36"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        enabled:
          description: If True, this bucket is enabled. Disabled buckets may include buckets that were included for test purposes, or that were going to be used but then were abandoned but never removed from content *cough*.
          type: boolean
        fifo:
          description: if a FIFO bucket fills up, it will delete the oldest item from said bucket when a new item tries to be added to it. If this is FALSE, the bucket will not allow new items to be placed in it until room is made by the user manually deleting items from it. You can see an example of this with the Postmaster's bucket.
          type: boolean
        hasTransferDestination:
          description: If TRUE, there is at least one Vendor that can transfer items to/from this bucket. See the DestinyVendorDefinition's acceptedItems property for more information on how transferring works.
          type: boolean
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        itemCount:
          description: "The maximum # of item \"slots\" in a bucket. A slot is a given combination of item + quantity.\r

            For instance, a Weapon will always take up a single slot, and always have a quantity of 1. But a material could take up only a single slot with hundreds of quantity."
          format: int32
          type: integer
        location:
          description: "Sometimes, inventory buckets represent conceptual \"locations\" in the game that might not be expected. This value indicates the conceptual location of the bucket, regardless of where it is actually contained on the character/account. \r

            See ItemLocation for details. \r

            Note that location includes the Vault and the Postmaster (both of whom being just inventory buckets with additional actions that can be performed on them through a Vendor)"
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema37"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        scope:
          description: Where the bucket is found. 0 = Character, 1 = Account
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema35"
      type: object
      x-mobile-manifest-name: InventoryBuckets
    Destiny.Definitions.DestinyInventoryItemDefinition:
      description: "So much of what you see in Destiny is actually an Item used in a new and creative way. This is the definition for Items in Destiny, which started off as just entities that could exist in your Inventory but ended up being the backing data for so much more: quests, reward previews, slots, and subclasses.\r

        In practice, you will want to associate this data with \"live\" item data from a Bungie.Net Platform call: these definitions describe the item in generic, non-instanced terms: but an actual instance of an item can vary widely from these generic definitions."
      properties:
        action:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemActionBlockDefinition"
          description: If the item can be "used", this block will be non-null, and will have data related to the action performed when using the item. (Guess what? 99% of the time, this action is "dismantle". Shocker)
          type: object
        allowActions:
          description: BNet may forbid the execution of actions on this item via the API. If that is occurring, allowActions will be set to false.
          type: boolean
        animations:
          description: If any animations were extracted from game content for this item, these will be the definitions of those animations.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Animations.DestinyAnimationReference"
          type: array
        backgroundColor:
          allOf:
            - $ref: "#/components/schemas/Destiny.Misc.DestinyColor"
          description: 'Sometimes, an item will have a background color. Most notably this occurs with Emblems, who use the Background Color for small character nameplates such as the "friends" view you see in-game. There are almost certainly other items that have background color as well, though I have not bothered to investigate what items have it nor what purposes they serve: use it as you will.'
          type: object
        breakerType:
          description: 'Some weapons and plugs can have a "Breaker Type": a special ability that works sort of like damage type vulnerabilities. This is (almost?) always set on items by plugs.'
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema29"
        breakerTypeHash:
          description: Since we also have a breaker type definition, this is the hash for that breaker type for your convenience. Whether you use the enum or hash and look up the definition depends on what's cleanest for your code.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.BreakerTypes.DestinyBreakerTypeDefinition"
        classType:
          description: "We run a similarly weak-sauce algorithm to try and determine whether an item is restricted to a specific class. If we find it to be restricted in such a way, we set this classType property to match the class' enumeration value so that users can easily identify class restricted items.\r

            If you see a mis-classed item, please inform the developers in the Bungie API forum."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema28"
        collectibleHash:
          description: If this item has a collectible related to it, this is the hash identifier of that collectible entry.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Collectibles.DestinyCollectibleDefinition"
        crafting:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemCraftingBlockDefinition"
          description: Recipe items will have relevant crafting information available here.
          type: object
        damageTypeHashes:
          description: Theoretically, an item can have many possible damage types. In *practice*, this is not true, but just in case weapons start being made that have multiple (for instance, an item where a socket has reusable plugs for every possible damage type that you can choose from freely), this field will return all of the possible damage types that are available to the weapon by default.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDamageTypeDefinition"
        damageTypes:
          description: "This is the list of all damage types that we know ahead of time the item can take on. Unfortunately, this does not preclude the possibility of something funky happening to give the item a damage type that cannot be predicted beforehand: for example, if some designer decides to create arbitrary non-reusable plugs that cause damage type to change.\r

            This damage type prediction will only use the following to determine potential damage types:\r

            - Intrinsic perks\r

            - Talent Node perks\r

            - Known, reusable plugs for sockets"
          items:
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema30"
          type: array
        defaultDamageType:
          description: "If the item has a damage type that could be considered to be default, it will be populated here.\r

            For various upsetting reasons, it's surprisingly cumbersome to figure this out. I hope you're happy."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema30"
        defaultDamageTypeHash:
          description: "Similar to defaultDamageType, but represented as the hash identifier for a DestinyDamageTypeDefinition.\r

            I will likely regret leaving in the enumeration versions of these properties, but for now they're very convenient."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDamageTypeDefinition"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        displaySource:
          description: In theory, it is a localized string telling you about how you can find the item. I really wish this was more consistent. Many times, it has nothing. Sometimes, it's instead a more narrative-forward description of the item. Which is cool, and I wish all properties had that data, but it should really be its own property.
          type: string
        doesPostmasterPullHaveSideEffects:
          description: "The boolean will indicate to us (and you!) whether something *could* happen when you transfer this item from the Postmaster that might be considered a \"destructive\" action.\r

            It is not feasible currently to tell you (or ourelves!) in a consistent way whether this *will* actually cause a destructive action, so we are playing it safe: if it has the potential to do so, we will not allow it to be transferred from the Postmaster by default. You will need to check for this flag before transferring an item from the Postmaster, or else you'll end up receiving an error."
          type: boolean
        emblemObjectiveHash:
          description: If the item is an emblem that has a special Objective attached to it - for instance, if the emblem tracks PVP Kills, or what-have-you. This is a bit different from, for example, the Vanguard Kill Tracker mod, which pipes data into the "art channel". When I get some time, I would like to standardize these so you can get at the values they expose without having to care about what they're being used for and how they are wired up, but for now here's the raw data.
          format: uint32
          type: integer
        equippable:
          description: "If true, then you will be allowed to equip the item if you pass its other requirements.\r

            This being false means that you cannot equip the item under any circumstances."
          type: boolean
        equippingBlock:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyEquippingBlockDefinition"
          description: If this item can be equipped, this block will be non-null and will be populated with the conditions under which it can be equipped.
          type: object
        flavorText:
          type: string
        gearset:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemGearsetBlockDefinition"
          description: If this item has related items in a "Gear Set", this will be non-null and the relationships defined herein.
          type: object
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        iconWatermark:
          description: If available, this is the original 'active' release watermark overlay for the icon. If the item has different versions, this can be overridden by the 'display version watermark icon' from the 'quality' block. Alternatively, if there is no watermark for the version, and the item version has a power cap below the current season power cap, this can be overridden by the iconWatermarkShelved property.
          type: string
        iconWatermarkShelved:
          description: If available, this is the 'shelved' release watermark overlay for the icon. If the item version has a power cap below the current season power cap, it can be treated as 'shelved', and should be shown with this 'shelved' watermark overlay.
          type: string
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        inventory:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemInventoryBlockDefinition"
          description: If this item can exist in an inventory, this block will be non-null. In practice, every item that currently exists has one of these blocks. But note that it is not necessarily guaranteed.
          type: object
        investmentStats:
          description: If the item has stats, this block will be defined. It has the "raw" investment stats for the item. These investment stats don't take into account the ways that the items can spawn, nor do they take into account any Stat Group transformations. I have retained them for debugging purposes, but I do not know how useful people will find them.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemInvestmentStatDefinition"
          type: array
        isWrapper:
          description: If true, this is a dummy vendor-wrapped item template. Items purchased from Eververse will be "wrapped" by one of these items so that we can safely provide refund capabilities before the item is "unwrapped".
          type: boolean
        itemCategoryHashes:
          description: "BNet attempts to make a more formal definition of item \"Categories\", as defined by DestinyItemCategoryDefinition. This is a list of all Categories that we were able to algorithmically determine that this item is a member of. (for instance, that it's a \"Weapon\", that it's an \"Auto Rifle\", etc...)\r

            The algorithm for these is, unfortunately, volatile. If you believe you see a miscategorized item, please let us know on the Bungie API forums."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemCategoryDefinition"
        itemSubType:
          description: "A value indicating the \"sub-type\" of the item. For instance, where an item might have an itemType value \"Weapon\", this will be something more specific like \"Auto Rifle\".\r

            itemCategoryHashes are the preferred way of identifying types, we have retained this enum for its convenience."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema27"
        itemType:
          description: "A value indicating the \"base\" the of the item. This enum is a useful but dramatic oversimplification of what it means for an item to have a \"Type\". Still, it's handy in many situations.\r

            itemCategoryHashes are the preferred way of identifying types, we have retained this enum for its convenience."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema26"
        itemTypeAndTierDisplayName:
          description: It became a common enough pattern in our UI to show Item Type and Tier combined into a single localized string that I'm just going to go ahead and start pre-creating these for items.
          type: string
        itemTypeDisplayName:
          description: The localized title/name of the item's type. This can be whatever the designers want, and has no guarantee of consistency between items.
          type: string
        links:
          description: If we added any help or informational URLs about this item, these will be those links.
          items:
            $ref: "#/components/schemas/Links.HyperlinkReference"
          type: array
        loreHash:
          description: If the item has any related Lore (DestinyLoreDefinition), this will be the hash identifier you can use to look up the lore definition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Lore.DestinyLoreDefinition"
        metrics:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemMetricBlockDefinition"
          description: If this item has available metrics to be shown, this block will be non-null have the appropriate hashes defined.
          type: object
        nonTransferrable:
          description: "The intrinsic transferability of an item.\r

            I hate that this boolean is negative - but there's a reason.\r

            Just because an item is intrinsically transferrable doesn't mean that it can be transferred, and we don't want to imply that this is the only source of that transferability."
          type: boolean
        objectives:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemObjectiveBlockDefinition"
          description: If this item has Objectives (extra tasks that can be accomplished related to the item... most frequently when the item is a Quest Step and the Objectives need to be completed to move on to the next Quest Step), this block will be non-null and the objectives defined herein.
          type: object
        perks:
          description: If the item has any *intrinsic* Perks (Perks that it will provide regardless of Sockets, Talent Grid, and other transitory state), they will be defined here.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemPerkEntryDefinition"
          type: array
        plug:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Items.DestinyItemPlugDefinition"
          description: If this item *is* a Plug, this will be non-null and the info defined herein. See DestinyItemPlugDefinition for more information.
          type: object
        preview:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemPreviewBlockDefinition"
          description: If this item can be Used or Acquired to gain other items (for instance, how Eververse Boxes can be consumed to get items from the box), this block will be non-null and will give summary information for the items that can be acquired.
          type: object
        quality:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemQualityBlockDefinition"
          description: If this item can have a level or stats, this block will be non-null and will be populated with default quality (item level, "quality", and infusion) data. See the block for more details, there's often less upfront information in D2 so you'll want to be aware of how you use quality and item level on the definition level now.
          type: object
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        sack:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemSackBlockDefinition"
          description: If this item is a "reward sack" that can be opened to provide other items, this will be non-null and the properties of the sack contained herein.
          type: object
        screenshot:
          description: "If we were able to acquire an in-game screenshot for the item, the path to that screenshot will be returned here. Note that not all items have screenshots: particularly not any non-equippable items."
          type: string
        seasonHash:
          description: If this item is related directly to a Season of Destiny, this is the hash identifier for that season.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Seasons.DestinySeasonDefinition"
        secondaryIcon:
          description: A secondary icon associated with the item. Currently this is used in very context specific applications, such as Emblem Nameplates.
          type: string
        secondaryOverlay:
          description: "Pulled from the secondary icon, this is the \"secondary background\" of the secondary icon. Confusing? Sure, that's why I call it \"overlay\" here: because as far as it's been used thus far, it has been for an optional overlay image. We'll see if that holds up, but at least for now it explains what this image is a bit better."
          type: string
        secondarySpecial:
          description: 'Pulled from the Secondary Icon, this is the "special" background for the item. For Emblems, this is the background image used on the Details view: but it need not be limited to that for other types of items.'
          type: string
        setData:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemSetBlockDefinition"
          description: If this item is a quest, this block will be non-null. In practice, I wish I had called this the Quest block, but at the time it wasn't clear to me whether it would end up being used for purposes other than quests. It will contain data about the steps in the quest, and mechanics we can use for displaying and tracking the quest.
          type: object
        sockets:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemSocketBlockDefinition"
          description: If this item has any Sockets, this will be non-null and the individual sockets on the item will be defined herein.
          type: object
        sourceData:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemSourceBlockDefinition"
          description: "If this item has a known source, this block will be non-null and populated with source information. Unfortunately, at this time we are not generating sources: that is some aggressively manual work which we didn't have time for, and I'm hoping to get back to at some point in the future."
          type: object
        specialItemType:
          description: In Destiny 1, we identified some items as having particular categories that we'd like to know about for various internal logic purposes. These are defined in SpecialItemType, and while these days the itemCategoryHashes are the preferred way of identifying types, we have retained this enum for its convenience.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema25"
        stats:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemStatBlockDefinition"
          description: If this item can have stats (such as a weapon, armor, or vehicle), this block will be non-null and populated with the stats found on the item.
          type: object
        summary:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemSummaryBlockDefinition"
          description: Summary data about the item.
          type: object
        summaryItemHash:
          description: "There are times when the game will show you a \"summary/vague\" version of an item - such as a description of its type represented as a DestinyInventoryItemDefinition - rather than display the item itself.\r

            This happens sometimes when summarizing possible rewards in a tooltip. This is the item displayed instead, if it exists."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        talentGrid:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemTalentGridBlockDefinition"
          description: If the item has a Talent Grid, this will be non-null and the properties of the grid defined herein. Note that, while many items still have talent grids, the only ones with meaningful Nodes still on them will be Subclass/"Build" items.
          type: object
        tooltipNotifications:
          description: Tooltips that only come up conditionally for the item. Check the live data DestinyItemComponent.tooltipNotificationIndexes property for which of these should be shown at runtime.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemTooltipNotification"
          type: array
        tooltipStyle:
          description: "An identifier that the game UI uses to determine what type of tooltip to show for the item. These have no corresponding definitions that BNet can link to: so it'll be up to you to interpret and display your UI differently according to these styles (or ignore it)."
          type: string
        traitHashes:
          description: These are the corresponding trait definition hashes for the entries in traitIds.
          items:
            format: uint32
            type: integer
          type: array
        traitIds:
          description: "Traits are metadata tags applied to this item. For example: armor slot, weapon type, foundry, faction, etc. These IDs come from the game and don't map to any content, but should still be useful."
          items:
            type: string
          type: array
        translationBlock:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemTranslationBlockDefinition"
          description: If this item can be rendered, this block will be non-null and will be populated with rendering information.
          type: object
        uiItemDisplayStyle:
          description: A string identifier that the game's UI uses to determine how the item should be rendered in inventory screens and the like. This could really be anything - at the moment, we don't have the time to really breakdown and maintain all the possible strings this could be, partly because new ones could be added ad hoc. But if you want to use it to dictate your own UI, or look for items with a certain display style, go for it!
          type: string
        value:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemValueBlockDefinition"
          description: The conceptual "Value" of an item, if any was defined. See the DestinyItemValueBlockDefinition for more details.
          type: object
      type: object
      x-mobile-manifest-name: Items
    Destiny.Definitions.DestinyInventoryItemStatDefinition:
      description: "Defines a specific stat value on an item, and the minimum/maximum range that we could compute for the item based on our heuristics for how the item might be generated.\r

        Not guaranteed to match real-world instances of the item, but should hopefully at least be close. If it's not close, let us know on the Bungie API forums."
      properties:
        displayMaximum:
          description: "The maximum possible value for the stat as shown in the UI, if it is being shown somewhere that reveals maximum in the UI (such as a bar chart-style view).\r

            This is pulled directly from the item's DestinyStatGroupDefinition, and placed here for convenience.\r

            If not returned, there is no maximum to use (and thus the stat should not be shown in a way that assumes there is a limit to the stat)"
          format: int32
          type: integer
        maximum:
          description: "The maximum possible value for this stat that we think the item can roll.\r

            WARNING: In Destiny 1, this field was calculated using the potential stat rolls on the item's talent grid. In Destiny 2, items no longer have meaningful talent grids and instead have sockets: but the calculation of this field was never altered to adapt to this change. As such, this field should be considered deprecated until we can address this oversight."
          format: int32
          type: integer
        minimum:
          description: The minimum possible value for this stat that we think the item can roll.
          format: int32
          type: integer
        statHash:
          description: The hash for the DestinyStatDefinition representing this stat.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatDefinition"
        value:
          description: "This value represents the stat value assuming the minimum possible roll but accounting for any mandatory bonuses that should be applied to the stat on item creation.\r

            In Destiny 1, this was different from the \"minimum\" value because there were certain conditions where an item could be theoretically lower level/value than the initial roll. \r

            In Destiny 2, this is not possible unless Talent Grids begin to be used again for these purposes or some other system change occurs... thus in practice, value and minimum should be the same in Destiny 2. Good riddance."
          format: int32
          type: integer
      type: object
    Destiny.Definitions.DestinyItemActionBlockDefinition:
      description: If an item can have an action performed on it (like "Dismantle"), it will be defined here if you care.
      properties:
        actionTypeLabel:
          description: The internal identifier for the action.
          type: string
        consumeEntireStack:
          description: If true, the entire stack is deleted when the action completes.
          type: boolean
        deleteOnAction:
          description: If true, the item is deleted when the action completes.
          type: boolean
        isPositive:
          description: The content has this property, however it's not entirely clear how it is used.
          type: boolean
        overlayIcon:
          description: The icon associated with the overlay screen for the action, if any.
          type: string
        overlayScreenName:
          description: If the action has an overlay screen associated with it, this is the name of that screen. Unfortunately, we cannot return the screen's data itself.
          type: string
        progressionRewards:
          description: If performing this action earns you Progression, this is the list of progressions and values granted for those progressions by performing this action.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionRewardDefinition"
          type: array
        requiredCooldownHash:
          description: The identifier hash for the Cooldown associated with this action. We have not pulled this data yet for you to have more data to use for cooldowns.
          format: uint32
          type: integer
        requiredCooldownSeconds:
          description: The number of seconds to delay before allowing this action to be performed again.
          format: int32
          type: integer
        requiredItems:
          description: If the action requires other items to exist or be destroyed, this is the list of those items and requirements.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemActionRequiredItemDefinition"
          type: array
        requiredLocation:
          description: Theoretically, an item could have a localized string for a hint about the location in which the action should be performed. In practice, no items yet have this property.
          type: string
        useOnAcquire:
          description: If true, this action will be performed as soon as you earn this item. Some rewards work this way, providing you a single item to pick up from a reward-granting vendor in-game and then immediately consuming itself to provide you multiple items.
          type: boolean
        verbDescription:
          description: Localized text describing the action being performed.
          type: string
        verbName:
          description: Localized text for the verb of the action being performed.
          type: string
      type: object
    Destiny.Definitions.DestinyItemActionRequiredItemDefinition:
      description: The definition of an item and quantity required in a character's inventory in order to perform an action.
      properties:
        count:
          description: The minimum quantity of the item you have to have.
          format: int32
          type: integer
        deleteOnAction:
          description: If true, the item/quantity will be deleted from your inventory when the action is performed. Otherwise, you'll retain these required items after the action is complete.
          type: boolean
        itemHash:
          description: The hash identifier of the item you need to have. Use it to look up the DestinyInventoryItemDefinition for more info.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
    Destiny.Definitions.DestinyItemCategoryDefinition:
      description: "In an attempt to categorize items by type, usage, and other interesting properties, we created DestinyItemCategoryDefinition: information about types that is assembled using a set of heuristics that examine the properties of an item such as what inventory bucket it's in, its item type name, and whether it has or is missing certain blocks of data.\r

        This heuristic is imperfect, however. If you find an item miscategorized, let us know on the Bungie API forums!\r

        We then populate all of the categories that we think an item belongs to in its DestinyInventoryItemDefinition.itemCategoryHashes property. You can use that to provide your own custom item filtering, sorting, aggregating... go nuts on it! And let us know if you see more categories that you wish would be added!"
      properties:
        deprecated:
          description: "If True, this category has been deprecated: it may have no items left, or there may be only legacy items that remain in it which are no longer relevant to the game."
          type: boolean
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        grantDestinyBreakerType:
          description: If the item in question has this category, it also should have this breaker type.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema29"
        grantDestinyClass:
          description: "If an item belongs to this category, it will also get this class restriction enum value.\r

            See the other \"grant\"-prefixed properties on this definition for my color commentary."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema28"
        grantDestinyItemType:
          description: "If an item belongs to this category, it will also receive this item type. This is now how DestinyItemType is populated for items: it used to be an even jankier process, but that's a story that requires more alcohol."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema26"
        grantDestinySubType:
          description: "If an item belongs to this category, it will also receive this subtype enum value.\r

            I know what you're thinking - what if it belongs to multiple categories that provide sub-types?\r

            The last one processed wins, as is the case with all of these \"grant\" enums. Now you can see one reason why we moved away from these enums... but they're so convenient when they work, aren't they?"
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema27"
        groupCategoryOnly:
          description: If true, this category is only used for grouping, and should not be evaluated with its own checks. Rather, the item only has this category if it has one of its child categories.
          type: boolean
        groupedCategoryHashes:
          description: "If this category is a \"parent\" category of other categories, those children will have their hashes listed in rendering order here, and can be looked up using these hashes against DestinyItemCategoryDefinition.\r

            In this way, you can build up a visual hierarchy of item categories. That's what we did, and you can do it too. I believe in you. Yes, you, Carl.\r

            (I hope someone named Carl reads this someday)"
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemCategoryDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        itemTypeRegex:
          description: The janky regular expression we used against the item type to try and discern whether the item belongs to this category.
          type: string
        itemTypeRegexNot:
          description: If the item type matches this janky regex, it does *not* belong to this category.
          type: string
        originBucketIdentifier:
          description: If the item belongs to this bucket, it does belong to this category.
          type: string
        parentCategoryHashes:
          description: "All item category hashes of \"parent\" categories: categories that contain this as a child through the hierarchy of groupedCategoryHashes. It's a bit redundant, but having this child-centric list speeds up some calculations."
          items:
            format: uint32
            type: integer
          type: array
        plugCategoryIdentifier:
          description: If the item is a plug, this is the identifier we expect to find associated with it if it is in this category.
          type: string
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        shortTitle:
          description: A shortened version of the title. The reason why we have this is because the Armory in German had titles that were too long to display in our UI, so these were localized abbreviated versions of those categories. The property still exists today, even though the Armory doesn't exist for D2... yet.
          type: string
        traitId:
          description: The traitId that can be found on items that belong to this category.
          type: string
        visible:
          description: If True, this category should be visible in UI. Sometimes we make categories that we don't think are interesting externally. It's up to you if you want to skip on showing them.
          type: boolean
      type: object
      x-mobile-manifest-name: ItemCategories
    Destiny.Definitions.DestinyItemCraftingBlockBonusPlugDefinition:
      properties:
        plugItemHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        socketTypeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinySocketTypeDefinition"
      type: object
    Destiny.Definitions.DestinyItemCraftingBlockDefinition:
      description: If an item can have an action performed on it (like "Dismantle"), it will be defined here if you care.
      properties:
        baseMaterialRequirements:
          description: A reference to the base material requirements for crafting with this recipe.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyMaterialRequirementSetDefinition"
        bonusPlugs:
          description: A list of 'bonus' socket plugs that may be available if certain requirements are met.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemCraftingBlockBonusPlugDefinition"
          type: array
        failedRequirementStrings:
          items:
            type: string
          type: array
        outputItemHash:
          description: A reference to the item definition that is created when crafting with this 'recipe' item.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        requiredSocketTypeHashes:
          description: A list of socket type hashes that describes which sockets are required for crafting with this recipe.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinySocketTypeDefinition"
      type: object
    Destiny.Definitions.DestinyItemCreationEntryLevelDefinition:
      description: An overly complicated wrapper for the item level at which the item should spawn.
      properties:
        level:
          format: int32
          type: integer
      type: object
    Destiny.Definitions.DestinyItemGearsetBlockDefinition:
      description: If an item has a related gearset, this is the list of items in that set, and an unlock expression that evaluates to a number representing the progress toward gearset completion (a very rare use for unlock expressions!)
      properties:
        itemList:
          description: The list of hashes for items in the gearset. Use them to look up DestinyInventoryItemDefinition entries for the items in the set.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        trackingValueMax:
          description: The maximum possible number of items that can be collected.
          format: int32
          type: integer
      type: object
    Destiny.Definitions.DestinyItemIntrinsicSocketEntryDefinition:
      description: Represents a socket that has a plug associated with it intrinsically. This is useful for situations where the weapon needs to have a visual plug/Mod on it, but that plug/Mod should never change.
      properties:
        defaultVisible:
          description: "If true, then this socket is visible in the item's \"default\" state. If you have an instance, you should always check the runtime state, as that can override this visibility setting: but if you're looking at the item on a conceptual level, this property can be useful for hiding data such as legacy sockets - which remain defined on items for infrastructure purposes, but can be confusing for users to see."
          type: boolean
        plugItemHash:
          description: Indicates the plug that is intrinsically inserted into this socket.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        socketTypeHash:
          description: Indicates the type of this intrinsic socket.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinySocketTypeDefinition"
      type: object
    Destiny.Definitions.DestinyItemInventoryBlockDefinition:
      description: If the item can exist in an inventory - the overwhelming majority of them can and do - then this is the basic properties regarding the item's relationship with the inventory.
      properties:
        bucketTypeHash:
          description: The hash identifier for the DestinyInventoryBucketDefinition to which this item belongs. I should have named this "bucketHash", but too many things refer to it now. Sigh.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryBucketDefinition"
        expirationTooltip:
          description: The tooltip message to show, if any, when the item expires.
          type: string
        expiredInActivityMessage:
          description: If the item expires while playing in an activity, we show a different message.
          type: string
        expiredInOrbitMessage:
          description: If the item expires in orbit, we show a... more different message. ("Consummate V's, consummate!")
          type: string
        isInstanceItem:
          description: If TRUE, this item is instanced. Otherwise, it is a generic item that merely has a quantity in a stack (like Glimmer).
          type: boolean
        maxStackSize:
          description: The maximum quantity of this item that can exist in a stack.
          format: int32
          type: integer
        recipeItemHash:
          description: A reference to the associated crafting 'recipe' item definition, if this item can be crafted.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        recoveryBucketTypeHash:
          description: If the item is picked up by the lost loot queue, this is the hash identifier for the DestinyInventoryBucketDefinition into which it will be placed. Again, I should have named this recoveryBucketHash instead.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryBucketDefinition"
        stackUniqueLabel:
          description: If this string is populated, you can't have more than one stack with this label in a given inventory. Note that this is different from the equipping block's unique label, which is used for equipping uniqueness.
          type: string
        suppressExpirationWhenObjectivesComplete:
          type: boolean
        tierType:
          description: The enumeration matching the tier type of the item to known values, again for convenience sake.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema34"
        tierTypeHash:
          description: The hash identifier for the Tier Type of the item, use to look up its DestinyItemTierTypeDefinition if you need to show localized data for the item's tier.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Items.DestinyItemTierTypeDefinition"
        tierTypeName:
          description: The localized name of the tier type, which is a useful shortcut so you don't have to look up the definition every time. However, it's mostly a holdover from days before we had a DestinyItemTierTypeDefinition to refer to.
          type: string
      type: object
    Destiny.Definitions.DestinyItemInvestmentStatDefinition:
      description: "Represents a \"raw\" investment stat, before calculated stats are calculated and before any DestinyStatGroupDefinition is applied to transform the stat into something closer to what you see in-game.\r

        Because these won't match what you see in-game, consider carefully whether you really want to use these stats. I have left them in case someone can do something useful or interesting with the pre-processed statistics."
      properties:
        isConditionallyActive:
          description: If this is true, the stat will only be applied on the item in certain game state conditions, and we can't know statically whether or not this stat will be applied. Check the "live" API data instead for whether this value is being applied on a specific instance of the item in question, and you can use this to decide whether you want to show the stat on the generic view of the item, or whether you want to show some kind of caveat or warning about the stat value being conditional on game state.
          type: boolean
        statTypeHash:
          description: The hash identifier for the DestinyStatDefinition defining this stat.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatDefinition"
        value:
          description: The raw "Investment" value for the stat, before transformations are performed to turn this raw stat into stats that are displayed in the game UI.
          format: int32
          type: integer
      type: object
    Destiny.Definitions.DestinyItemMetricBlockDefinition:
      description: The metrics available for display and selection on an item.
      properties:
        availableMetricCategoryNodeHashes:
          description: Hash identifiers for any DestinyPresentationNodeDefinition entry that can be used to list available metrics. Any metric listed directly below these nodes, or in any of these nodes' children will be made available for selection.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
      type: object
    Destiny.Definitions.DestinyItemObjectiveBlockDefinition:
      description: "An item can have objectives on it. In practice, these are the exclusive purview of \"Quest Step\" items: DestinyInventoryItemDefinitions that represent a specific step in a Quest.\r

        Quest steps have 1:M objectives that we end up processing and returning in live data as DestinyQuestStatus data, and other useful information."
      properties:
        displayActivityHashes:
          description: "For every entry in objectiveHashes, there is a corresponding entry in this array at the same index. If the objective is meant to be associated with a specific DestinyActivityDefinition, there will be a valid hash at that index. Otherwise, it will be invalid (0).\r

            Rendered somewhat obsolete by perObjectiveDisplayProperties, which currently has much the same information but may end up with more info in the future."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        displayAsStatTracker:
          type: boolean
        narrative:
          description: The localized string for narrative text related to this quest step, if any.
          type: string
        objectiveHashes:
          description: The hashes to Objectives (DestinyObjectiveDefinition) that are part of this Quest Step, in the order that they should be rendered.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
        objectiveVerbName:
          description: The localized string describing an action to be performed associated with the objectives, if any.
          type: string
        perObjectiveDisplayProperties:
          description: One entry per Objective on the item, it will have related display information.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDisplayProperties"
          type: array
        questTypeHash:
          description: A hashed value for the questTypeIdentifier, because apparently I like to be redundant.
          format: uint32
          type: integer
        questTypeIdentifier:
          description: The identifier for the type of quest being performed, if any. Not associated with any fixed definition, yet.
          type: string
        questlineItemHash:
          description: The hash for the DestinyInventoryItemDefinition representing the Quest to which this Quest Step belongs.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        requireFullObjectiveCompletion:
          description: If True, all objectives must be completed for the step to be completed. If False, any one objective can be completed for the step to be completed.
          type: boolean
      type: object
    Destiny.Definitions.DestinyItemPerkEntryDefinition:
      description: An intrinsic perk on an item, and the requirements for it to be activated.
      properties:
        perkHash:
          description: A hash identifier for the DestinySandboxPerkDefinition being provided on the item.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinySandboxPerkDefinition"
        perkVisibility:
          description: Indicates whether this perk should be shown, or if it should be shown disabled.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema74"
        requirementDisplayString:
          description: If this perk is not active, this is the string to show for why it's not providing its benefits.
          type: string
      type: object
    Destiny.Definitions.DestinyItemPreviewBlockDefinition:
      description: "Items like Sacks or Boxes can have items that it shows in-game when you view details that represent the items you can obtain if you use or acquire the item.\r

        This defines those categories, and gives some insights into that data's source."
      properties:
        artifactHash:
          description: If this item should show you Artifact information when you preview it, this is the hash identifier of the DestinyArtifactDefinition for the artifact whose data should be shown.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Artifacts.DestinyArtifactDefinition"
        derivedItemCategories:
          description: This is a list of the items being previewed, categorized in the same way as they are in the preview UI.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Items.DestinyDerivedItemCategoryDefinition"
          type: array
        previewActionString:
          description: If the preview has an associated action (like "Open"), this will be the localized string for that action.
          type: string
        previewVendorHash:
          description: If the preview data is derived from a fake "Preview" Vendor, this will be the hash identifier for the DestinyVendorDefinition of that fake vendor.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
        screenStyle:
          description: "A string that the game UI uses as a hint for which detail screen to show for the item. You, too, can leverage this for your own custom screen detail views. Note, however, that these are arbitrarily defined by designers: there's no guarantees of a fixed, known number of these - so fall back to something reasonable if you don't recognize it."
          type: string
      type: object
    Destiny.Definitions.DestinyItemQualityBlockDefinition:
      description: "An item's \"Quality\" determines its calculated stats. The Level at which the item spawns is combined with its \"qualityLevel\" along with some additional calculations to determine the value of those stats.\r

        In Destiny 2, most items don't have default item levels and quality, making this property less useful: these apparently are almost always determined by the complex mechanisms of the Reward system rather than statically. They are still provided here in case they are still useful for people. This also contains some information about Infusion."
      properties:
        currentVersion:
          description: The latest version available for this item.
          format: uint32
          type: integer
        displayVersionWatermarkIcons:
          description: Icon overlays to denote the item version and power cap status.
          items:
            type: string
          type: array
        infusionCategoryHash:
          description: "The hash identifier for the infusion. It does not map to a Definition entity.\r

            DEPRECATED: Items can now have multiple infusion categories. Please use infusionCategoryHashes instead."
          format: uint32
          type: integer
        infusionCategoryHashes:
          description: If any one of these hashes matches any value in another item's infusionCategoryHashes, the two can infuse with each other.
          items:
            format: uint32
            type: integer
          type: array
        infusionCategoryName:
          description: "The string identifier for this item's \"infusability\", if any. \r

            Items that match the same infusionCategoryName are allowed to infuse with each other.\r

            DEPRECATED: Items can now have multiple infusion categories. Please use infusionCategoryHashes instead."
          type: string
        itemLevels:
          description: "The \"base\" defined level of an item. This is a list because, in theory, each Expansion could define its own base level for an item.\r

            In practice, not only was that never done in Destiny 1, but now this isn't even populated at all. When it's not populated, the level at which it spawns has to be inferred by Reward information, of which BNet receives an imperfect view and will only be reliable on instanced data as a result."
          items:
            format: int32
            type: integer
          type: array
        progressionLevelRequirementHash:
          description: An item can refer to pre-set level requirements. They are defined in DestinyProgressionLevelRequirementDefinition, and you can use this hash to find the appropriate definition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Progression.DestinyProgressionLevelRequirementDefinition"
        qualityLevel:
          description: qualityLevel is used in combination with the item's level to calculate stats like Attack and Defense. It plays a role in that calculation, but not nearly as large as itemLevel does.
          format: int32
          type: integer
        versions:
          description: The list of versions available for this item.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemVersionDefinition"
          type: array
      type: object
    Destiny.Definitions.DestinyItemSackBlockDefinition:
      description: Some items are "sacks" - they can be "opened" to produce other items. This is information related to its sack status, mostly UI strings. Engrams are an example of items that are considered to be "Sacks".
      properties:
        detailAction:
          description: A description of what will happen when you open the sack. As far as I can tell, this is blank currently. Unknown whether it will eventually be populated with useful info.
          type: string
        openAction:
          description: The localized name of the action being performed when you open the sack.
          type: string
        openOnAcquire:
          type: boolean
        selectItemCount:
          format: int32
          type: integer
        vendorSackType:
          type: string
      type: object
    Destiny.Definitions.DestinyItemSetBlockDefinition:
      description: Primarily for Quests, this is the definition of properties related to the item if it is a quest and its various quest steps.
      properties:
        itemList:
          description: A collection of hashes of set items, for items such as Quest Metadata items that possess this data.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemSetBlockEntryDefinition"
          type: array
        questLineDescription:
          description: The description of the quest line that this quest step is a part of.
          type: string
        questLineName:
          description: The name of the quest line that this quest step is a part of.
          type: string
        questStepSummary:
          description: An additional summary of this step in the quest line.
          type: string
        requireOrderedSetItemAdd:
          description: If true, items in the set can only be added in increasing order, and adding an item will remove any previous item. For Quests, this is by necessity true. Only one quest step is present at a time, and previous steps are removed as you advance in the quest.
          type: boolean
        setIsFeatured:
          description: If true, the UI should treat this quest as "featured"
          type: boolean
        setType:
          description: A string identifier we can use to attempt to identify the category of the Quest.
          type: string
      type: object
    Destiny.Definitions.DestinyItemSetBlockEntryDefinition:
      description: Defines a particular entry in an ItemSet (AKA a particular Quest Step in a Quest)
      properties:
        itemHash:
          description: This is the hash identifier for a DestinyInventoryItemDefinition representing this quest step.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        trackingValue:
          description: Used for tracking which step a user reached. These values will be populated in the user's internal state, which we expose externally as a more usable DestinyQuestStatus object. If this item has been obtained, this value will be set in trackingUnlockValueHash.
          format: int32
          type: integer
      type: object
    Destiny.Definitions.DestinyItemSocketBlockDefinition:
      description: If defined, the item has at least one socket.
      properties:
        detail:
          description: This was supposed to be a string that would give per-item details about sockets. In practice, it turns out that all this ever has is the localized word "details". ... that's lame, but perhaps it will become something cool in the future.
          type: string
        intrinsicSockets:
          description: Each intrinsic (or immutable/permanent) socket on an item is defined here, along with the plug that is permanently affixed to the socket.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemIntrinsicSocketEntryDefinition"
          type: array
        socketCategories:
          description: A convenience property, that refers to the sockets in the "sockets" property, pre-grouped by category and ordered in the manner that they should be grouped in the UI. You could form this yourself with the existing data, but why would you want to? Enjoy life man.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemSocketCategoryDefinition"
          type: array
        socketEntries:
          description: Each non-intrinsic (or mutable) socket on an item is defined here. Check inside for more info.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemSocketEntryDefinition"
          type: array
      type: object
    Destiny.Definitions.DestinyItemSocketCategoryDefinition:
      description: Sockets are grouped into categories in the UI. These define which category and which sockets are under that category.
      properties:
        socketCategoryHash:
          description: "The hash for the Socket Category: a quick way to go get the header display information for the category. Use it to look up DestinySocketCategoryDefinition info."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinySocketCategoryDefinition"
        socketIndexes:
          description: Use these indexes to look up the sockets in the "sockets.socketEntries" property on the item definition. These are the indexes under the category, in game-rendered order.
          items:
            format: int32
            type: integer
          type: array
      type: object
    Destiny.Definitions.DestinyItemSocketEntryDefinition:
      description: The definition information for a specific socket on an item. This will determine how the socket behaves in-game.
      properties:
        defaultVisible:
          description: "If true, then this socket is visible in the item's \"default\" state. If you have an instance, you should always check the runtime state, as that can override this visibility setting: but if you're looking at the item on a conceptual level, this property can be useful for hiding data such as legacy sockets - which remain defined on items for infrastructure purposes, but can be confusing for users to see."
          type: boolean
        hidePerksInItemTooltip:
          description: If this is true, the perks provided by this socket shouldn't be shown in the item's tooltip. This might be useful if it's providing a hidden bonus, or if the bonus is less important than other benefits on the item.
          type: boolean
        plugSources:
          description: Indicates where you should go to get plugs for this socket. This will affect how you populate your UI, as well as what plugs are valid for this socket. It's an alternative to having to check for the existence of certain properties (reusablePlugItems for example) to infer where plugs should come from.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema73"
        preventInitializationOnVendorPurchase:
          description: "If this is true, then the socket will not be initialized with a plug if the item is purchased from a Vendor.\r

            Remember that Vendors are much more than conceptual vendors: they include \"Collection Kiosks\" and other entities. See DestinyVendorDefinition for more information."
          type: boolean
        randomizedPlugSetHash:
          description: "This field replaces \"randomizedPlugItems\" as of Shadowkeep launch. If a socket has randomized plugs, this is a pointer to the set of plugs that could be used, as defined in DestinyPlugSetDefinition.\r

            \ If null, the item has no randomized plugs."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinyPlugSetDefinition"
        reusablePlugItems:
          description: "This is a list of pre-determined plugs that can *always* be plugged into this socket, without the character having the plug in their inventory.\r

            If this list is populated, you will not be allowed to plug an arbitrary item in the socket: you will only be able to choose from one of these reusable plugs."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemSocketEntryPlugItemDefinition"
          type: array
        reusablePlugSetHash:
          description: "If this socket's plugs come from a reusable DestinyPlugSetDefinition, this is the identifier for that set. We added this concept to reduce some major duplication that's going to come from sockets as replacements for what was once implemented as large sets of items and kiosks (like Emotes).\r

            \ As of Shadowkeep, these will come up much more frequently and be driven by game content rather than custom curation."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinyPlugSetDefinition"
        singleInitialItemHash:
          description: If a valid hash, this is the hash identifier for the DestinyInventoryItemDefinition representing the Plug that will be initially inserted into the item on item creation. Otherwise, this Socket will either start without a plug inserted, or will have one randomly inserted.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        socketTypeHash:
          description: "All sockets have a type, and this is the hash identifier for this particular type. Use it to look up the DestinySocketTypeDefinition: read there for more information on how socket types affect the behavior of the socket."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinySocketTypeDefinition"
      type: object
    Destiny.Definitions.DestinyItemSocketEntryPlugItemDefinition:
      description: The definition of a known, reusable plug that can be applied to a socket.
      properties:
        plugItemHash:
          description: The hash identifier of a DestinyInventoryItemDefinition representing the plug that can be inserted.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
    Destiny.Definitions.DestinyItemSocketEntryPlugItemRandomizedDefinition:
      properties:
        craftingRequirements:
          $ref: "#/components/schemas/Destiny.Definitions.DestinyPlugItemCraftingRequirements"
        currentlyCanRoll:
          description: Indicates if the plug can be rolled on the current version of the item. For example, older versions of weapons may have plug rolls that are no longer possible on the current versions.
          type: boolean
        plugItemHash:
          description: The hash identifier of a DestinyInventoryItemDefinition representing the plug that can be inserted.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
    Destiny.Definitions.DestinyItemSourceBlockDefinition:
      description: "Data about an item's \"sources\": ways that the item can be obtained."
      properties:
        exclusive:
          description: If we found that this item is exclusive to a specific platform, this will be set to the BungieMembershipType enumeration that matches that platform.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        sourceHashes:
          description: The list of hash identifiers for Reward Sources that hint where the item can be found (DestinyRewardSourceDefinition).
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyRewardSourceDefinition"
        sources:
          description: A collection of details about the stats that were computed for the ways we found that the item could be spawned.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Sources.DestinyItemSourceDefinition"
          type: array
        vendorSources:
          description: A denormalized reference back to vendors that potentially sell this item.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemVendorSourceReference"
          type: array
      type: object
    Destiny.Definitions.DestinyItemStatBlockDefinition:
      description: "Information about the item's calculated stats, with as much data as we can find for the stats without having an actual instance of the item.\r

        Note that this means the entire concept of providing these stats is fundamentally insufficient: we cannot predict with 100% accuracy the conditions under which an item can spawn, so we use various heuristics to attempt to simulate the conditions as accurately as possible. Actual stats for items in-game can and will vary, but these should at least be useful base points for comparison and display.\r

        It is also worth noting that some stats, like Magazine size, have further calculations performed on them by scripts in-game and on the game servers that BNet does not have access to. We cannot know how those stats are further transformed, and thus some stats will be inaccurate even on instances of items in BNet vs. how they appear in-game. This is a known limitation of our item statistics, without any planned fix."
      properties:
        disablePrimaryStatDisplay:
          description: "If true, the game won't show the \"primary\" stat on this item when you inspect it.\r

            NOTE: This is being manually mapped, because I happen to want it in a block that isn't going to directly create this derivative block."
          type: boolean
        hasDisplayableStats:
          description: A quick and lazy way to determine whether any stat other than the "primary" stat is actually visible on the item. Items often have stats that we return in case people find them useful, but they're not part of the "Stat Group" and thus we wouldn't display them in our UI. If this is False, then we're not going to display any of these stats other than the primary one.
          type: boolean
        primaryBaseStatHash:
          description: "This stat is determined to be the \"primary\" stat, and can be looked up in the stats or any other stat collection related to the item.\r

            Use this hash to look up the stat's value using DestinyInventoryItemDefinition.stats.stats, and the renderable data for the primary stat in the related DestinyStatDefinition."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatDefinition"
        statGroupHash:
          description: "If the item's stats are meant to be modified by a DestinyStatGroupDefinition, this will be the identifier for that definition.\r

            If you are using live data or precomputed stats data on the DestinyInventoryItemDefinition.stats.stats property, you don't have to worry about statGroupHash and how it alters stats: the already altered stats are provided to you. But if you want to see how the sausage gets made, or perform computations yourself, this is valuable information."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatGroupDefinition"
        stats:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemStatDefinition"
          description: "If you are looking for precomputed values for the stats on a weapon, this is where they are stored. Technically these are the \"Display\" stat values. Please see DestinyStatsDefinition for what Display Stat Values means, it's a very long story... but essentially these are the closest values BNet can get to the item stats that you see in-game.\r

            These stats are keyed by the DestinyStatDefinition's hash identifier for the stat that's found on the item."
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatDefinition"
      type: object
    Destiny.Definitions.DestinyItemSummaryBlockDefinition:
      description: This appears to be information used when rendering rewards. We don't currently use it on BNet.
      properties:
        sortPriority:
          description: Apparently when rendering an item in a reward, this should be used as a sort priority. We're not doing it presently.
          format: int32
          type: integer
      type: object
    Destiny.Definitions.DestinyItemTalentGridBlockDefinition:
      description: "This defines information that can only come from a talent grid on an item. Items mostly have negligible talent grid data these days, but instanced items still retain grids as a source for some of this common information.\r

        Builds/Subclasses are the only items left that still have talent grids with meaningful Nodes."
      properties:
        buildName:
          description: A shortcut string identifier for the "build" in question, if this talent grid has an associated build. Doesn't map to anything we can expose at the moment.
          type: string
        hudDamageType:
          description: If the talent grid implies a damage type, this is the enum value for that damage type.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema30"
        hudIcon:
          description: If the talent grid has a special icon that's shown in the game UI (like builds, funny that), this is the identifier for that icon. Sadly, we don't actually get that icon right now. I'll be looking to replace this with a path to the actual icon itself.
          type: string
        itemDetailString:
          description: This is meant to be a subtitle for looking at the talent grid. In practice, somewhat frustratingly, this always merely says the localized word for "Details". Great. Maybe it'll have more if talent grids ever get used for more than builds and subclasses again.
          type: string
        talentGridHash:
          description: The hash identifier of the DestinyTalentGridDefinition attached to this item.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyTalentGridDefinition"
      type: object
    Destiny.Definitions.DestinyItemTooltipNotification:
      properties:
        displayString:
          type: string
        displayStyle:
          type: string
      type: object
    Destiny.Definitions.DestinyItemTranslationBlockDefinition:
      description: This Block defines the rendering data associated with the item, if any.
      properties:
        arrangements:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyGearArtArrangementReference"
          type: array
        customDyes:
          items:
            $ref: "#/components/schemas/Destiny.DyeReference"
          type: array
        defaultDyes:
          items:
            $ref: "#/components/schemas/Destiny.DyeReference"
          type: array
        hasGeometry:
          type: boolean
        lockedDyes:
          items:
            $ref: "#/components/schemas/Destiny.DyeReference"
          type: array
        weaponPatternHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinySandboxPatternDefinition"
        weaponPatternIdentifier:
          type: string
      type: object
    Destiny.Definitions.DestinyItemValueBlockDefinition:
      description: "This defines an item's \"Value\". Unfortunately, this appears to be used in different ways depending on the way that the item itself is used.\r

        For items being sold at a Vendor, this is the default \"sale price\" of the item. These days, the vendor itself almost always sets the price, but it still possible for the price to fall back to this value. For quests, it is a preview of rewards you can gain by completing the quest. For dummy items, if the itemValue refers to an Emblem, it is the emblem that should be shown as the reward. (jeez louise)\r

        It will likely be used in a number of other ways in the future, it appears to be a bucket where they put arbitrary items and quantities into the item."
      properties:
        itemValue:
          description: References to the items that make up this item's "value", and the quantity.
          items:
            $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          type: array
        valueDescription:
          description: If there's a localized text description of the value provided, this will be said description.
          type: string
      type: object
    Destiny.Definitions.DestinyItemVendorSourceReference:
      description: "Represents that a vendor could sell this item, and provides a quick link to that vendor and sale item.\r

        \ Note that we do not and cannot make a guarantee that the vendor will ever *actually* sell this item, only that the Vendor has a definition that indicates it *could* be sold.\r

        \ Note also that a vendor may sell the same item in multiple \"ways\", which means there may be multiple vendorItemIndexes for a single Vendor hash."
      properties:
        vendorHash:
          description: The identifier for the vendor that may sell this item.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
        vendorItemIndexes:
          description: 'The Vendor sale item indexes that represent the sale information for this item. The same vendor may sell an item in multiple "ways", hence why this is a list. (for instance, a weapon may be "sold" as a reward in a quest, for Glimmer, and for Masterwork Cores: each of those ways would be represented by a different vendor sale item with a different index)'
          items:
            format: int32
            type: integer
          type: array
      type: object
    Destiny.Definitions.DestinyItemVersionDefinition:
      description: The version definition currently just holds a reference to the power cap.
      properties:
        powerCapHash:
          description: A reference to the power cap for this item version.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.PowerCaps.DestinyPowerCapDefinition"
      type: object
    Destiny.Definitions.DestinyLocationDefinition:
      description: "A \"Location\" is a sort of shortcut for referring to a specific combination of Activity, Destination, Place, and even Bubble or NavPoint within a space.\r

        Most of this data isn't intrinsically useful to us, but Objectives refer to locations, and through that we can at least infer the Activity, Destination, and Place being referred to by the Objective."
      properties:
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        locationReleases:
          description: A Location may refer to different specific spots in the world based on the world's current state. This is a list of those potential spots, and the data we can use at runtime to determine which one of the spots is the currently valid one.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyLocationReleaseDefinition"
          type: array
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        vendorHash:
          description: If the location has a Vendor on it, this is the hash identifier for that Vendor. Look them up with DestinyVendorDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
      type: object
      x-mobile-manifest-name: Locations
    Destiny.Definitions.DestinyLocationReleaseDefinition:
      description: A specific "spot" referred to by a location. Only one of these can be active at a time for a given Location.
      properties:
        activityBubbleName:
          description: The Activity Bubble within the Destination. Look this up in the DestinyDestinationDefinition's bubbles and bubbleSettings properties.
          format: uint32
          type: integer
        activityGraphHash:
          description: The Activity Graph being pointed to by this location.
          format: uint32
          type: integer
        activityGraphNodeHash:
          description: "The Activity Graph Node being pointed to by this location. (Remember that Activity Graph Node hashes are only unique within an Activity Graph: so use the combination to find the node being spoken of)"
          format: uint32
          type: integer
        activityHash:
          description: The Activity being pointed to by this location.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        activityPathBundle:
          description: If we had map information, this would tell us something cool about the path this location wants you to take. I wish we had map information.
          format: uint32
          type: integer
        activityPathDestination:
          description: If we had map information, this would tell us about path information related to destination on the map. Sad. Maybe you can do something cool with it. Go to town man.
          format: uint32
          type: integer
        destinationHash:
          description: The Destination being pointed to by this location.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDestinationDefinition"
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: Sadly, these don't appear to be populated anymore (ever?)
          type: object
        largeTransparentIcon:
          type: string
        mapIcon:
          type: string
        navPointType:
          description: The type of Nav Point that this represents. See the enumeration for more info.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema60"
        smallTransparentIcon:
          type: string
        spawnPoint:
          description: If we had map information, this spawnPoint would be interesting. But sadly, we don't have that info.
          format: uint32
          type: integer
        worldPosition:
          description: Looks like it should be the position on the map, but sadly it does not look populated... yet?
          items:
            format: int32
            type: integer
          type: array
      type: object
    Destiny.Definitions.DestinyMaterialRequirement:
      description: "Many actions relating to items require you to expend materials: - Activating a talent node - Inserting a plug into a socket The items will refer to material requirements by a materialRequirementsHash in these cases, and this is the definition for those requirements in terms of the item required, how much of it is required and other interesting info. This is one of the rare/strange times where a single contract class is used both in definitions *and* in live data response contracts. I'm not sure yet whether I regret that."
      properties:
        count:
          description: The amount of the material required.
          format: int32
          type: integer
        countIsConstant:
          description: If true, the material requirement count value is constant. Since The Witch Queen expansion, some material requirement counts can be dynamic and will need to be returned with an API call.
          type: boolean
        deleteOnAction:
          description: If True, the material will be removed from the character's inventory when the action is performed.
          type: boolean
        itemHash:
          description: The hash identifier of the material required. Use it to look up the material's DestinyInventoryItemDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        omitFromRequirements:
          description: "If True, this requirement is \"silent\": don't bother showing it in a material requirements display. I mean, I'm not your mom: I'm not going to tell you you *can't* show it. But we won't show it in our UI."
          type: boolean
      type: object
    Destiny.Definitions.DestinyMaterialRequirementSetDefinition:
      description: "Represent a set of material requirements: Items that either need to be owned or need to be consumed in order to perform an action.\r

        A variety of other entities refer to these as gatekeepers and payments for actions that can be performed in game."
      properties:
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        materials:
          description: The list of all materials that are required.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyMaterialRequirement"
          type: array
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: MaterialRequirementSets
    Destiny.Definitions.DestinyMedalTierDefinition:
      description: "An artificial construct of our own creation, to try and put some order on top of Medals and keep them from being one giant, unmanageable and unsorted blob of stats.\r

        Unfortunately, we haven't had time to do this evaluation yet in Destiny 2, so we're short on Medal Tiers. This will hopefully be updated over time, if Medals continue to exist."
      properties:
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        order:
          description: If you're rendering medals by tier, render them in this order (ascending)
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        tierName:
          description: The name of the tier.
          type: string
      type: object
      x-mobile-manifest-name: MedalTiers
    Destiny.Definitions.DestinyNodeActivationRequirement:
      description: "Talent nodes have requirements that must be met before they can be activated.\r

        This describes the material costs, the Level of the Talent Grid's progression required, and other conditional information that limits whether a talent node can be activated."
      properties:
        gridLevel:
          description: "The Progression level on the Talent Grid required to activate this node.\r

            See DestinyTalentGridDefinition.progressionHash for the related Progression, and read DestinyProgressionDefinition's documentation to learn more about Progressions."
          format: int32
          type: integer
        materialRequirementHashes:
          description: "The list of hash identifiers for material requirement sets: materials that are required for the node to be activated. See DestinyMaterialRequirementSetDefinition for more information about material requirements.\r

            In this case, only a single DestinyMaterialRequirementSetDefinition will be chosen from this list, and we won't know which one will be chosen until an instance of the item is created."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyMaterialRequirementSetDefinition"
      type: object
    Destiny.Definitions.DestinyNodeSocketReplaceResponse:
      description: This is a bit of an odd duck. Apparently, if talent nodes steps have this data, the game will go through on step activation and alter the first Socket it finds on the item that has a type matching the given socket type, inserting the indicated plug item.
      properties:
        plugItemHash:
          description: The hash identifier of the plug item that will be inserted into the socket found.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        socketTypeHash:
          description: The hash identifier of the socket type to find amidst the item's sockets (the item to which this talent grid is attached). See DestinyInventoryItemDefinition.sockets.socketEntries to find the socket type of sockets on the item in question.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinySocketTypeDefinition"
      type: object
    Destiny.Definitions.DestinyNodeStepDefinition:
      description: "This defines the properties of a \"Talent Node Step\". When you see a talent node in game, the actual visible properties that you see (its icon, description, the perks and stats it provides) are not provided by the Node itself, but rather by the currently active Step on the node.\r

        When a Talent Node is activated, the currently active step's benefits are conferred upon the item and character.\r

        The currently active step on talent nodes are determined when an item is first instantiated. Sometimes it is random, sometimes it is more deterministic (particularly when a node has only a single step).\r

        Note that, when dealing with Talent Node Steps, you must ensure that you have the latest version of content. stepIndex and nodeStepHash - two ways of identifying the step within a node - are both content version dependent, and thus are subject to change between content updates."
      properties:
        activationRequirement:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyNodeActivationRequirement"
          description: If the step has requirements for activation (they almost always do, if nothing else than for the Talent Grid's Progression to have reached a certain level), they will be defined here.
          type: object
        affectsLevel:
          description: If true, this step can affect the level of the item. See DestinyInventoryItemDefintion for more information about item levels and their effect on stats.
          type: boolean
        affectsQuality:
          description: If this is true, the step affects the item's Quality in some way. See DestinyInventoryItemDefinition for more information about the meaning of Quality. I already made a joke about Zen and the Art of Motorcycle Maintenance elsewhere in the documentation, so I will avoid doing it again. Oops too late
          type: boolean
        canActivateNextStep:
          description: "There was a time when talent nodes could be activated multiple times, and the effects of subsequent Steps would be compounded on each other, essentially \"upgrading\" the node. We have moved away from this, but theoretically the capability still exists.\r

            I continue to return this in case it is used in the future: if true and this step is the current step in the node, you are allowed to activate the node a second time to receive the benefits of the next step in the node, which will then become the active step."
          type: boolean
        damageType:
          description: An enum representing a damage type granted by activating this step, if any.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema30"
        damageTypeHash:
          description: If the step provides a damage type, this will be the hash identifier used to look up the damage type's DestinyDamageTypeDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDamageTypeDefinition"
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: These are the display properties actually used to render the Talent Node. The currently active step's displayProperties are shown.
          type: object
        interactionDescription:
          description: If you can interact with this node in some way, this is the localized description of that interaction.
          type: string
        isNextStepRandom:
          description: If true, the next step to be chosen is random, and if you're allowed to activate the next step. (if canActivateNextStep = true)
          type: boolean
        nextStepIndex:
          description: "The stepIndex of the next step in the talent node, or -1 if this is the last step or if the next step to be chosen is random.\r

            This doesn't really matter anymore unless canActivateNextStep begins to be used again."
          format: int32
          type: integer
        nodeStepHash:
          description: The hash of this node step. Unfortunately, while it can be used to uniquely identify the step within a node, it is also content version dependent and should not be relied on without ensuring you have the latest vesion of content.
          format: uint32
          type: integer
        perkHashes:
          description: The list of hash identifiers for Perks (DestinySandboxPerkDefinition) that are applied when this step is active. Perks provide a variety of benefits and modifications - examine DestinySandboxPerkDefinition to learn more.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinySandboxPerkDefinition"
        socketReplacements:
          description: If this step is activated, this will be a list of information used to replace socket items with new Plugs. See DestinyInventoryItemDefinition for more information about sockets and plugs.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyNodeSocketReplaceResponse"
          type: array
        startProgressionBarAtProgress:
          description: "When the Talent Grid's progression reaches this value, the circular \"progress bar\" that surrounds the talent node should be shown.\r

            This also indicates the lower bound of said progress bar, with the upper bound being the progress required to reach activationRequirement.gridLevel. (at some point I should precalculate the upper bound and put it in the definition to save people time)"
          format: int32
          type: integer
        statHashes:
          description: When the step provides stat benefits on the item or character, this is the list of hash identifiers for stats (DestinyStatDefinition) that are provided.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatDefinition"
        stepGroups:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyTalentNodeStepGroups"
          description: "In Destiny 1, the Armory's Perk Filtering was driven by a concept of TalentNodeStepGroups: categorizations of talent nodes based on their functionality. While the Armory isn't a BNet-facing thing for now, and the new Armory will need to account for Sockets rather than Talent Nodes, this categorization capability feels useful enough to still keep around."
          type: object
        stepIndex:
          description: "The index of this step in the list of Steps on the Talent Node.\r

            Unfortunately, this is the closest thing we have to an identifier for the Step: steps are not provided a content version agnostic identifier. This means that, when you are dealing with talent nodes, you will need to first ensure that you have the latest version of content."
          format: int32
          type: integer
      type: object
    Destiny.Definitions.DestinyObjectiveDefinition:
      description: "Defines an \"Objective\".\r

        An objective is a specific task you should accomplish in the game. These are referred to by:\r

        - Quest Steps (which are DestinyInventoryItemDefinition entities with Objectives)\r

        - Challenges (which are Objectives defined on an DestinyActivityDefintion)\r

        - Milestones (which refer to Objectives that are defined on both Quest Steps and Activities)\r

        - Anything else that the designers decide to do later.\r

        Objectives have progress, a notion of having been Completed, human readable data describing the task to be accomplished, and a lot of optional tack-on data that can enhance the information provided about the task."
      properties:
        allowNegativeValue:
          description: If true, the value is allowed to go negative.
          type: boolean
        allowOvercompletion:
          description: If True, the progress will continue even beyond the point where the objective met its minimum completion requirements. Your UI will have to accommodate it.
          type: boolean
        allowValueChangeWhenCompleted:
          description: "If true, you can effectively \"un-complete\" this objective if you lose progress after crossing the completion threshold. \r

            If False, once you complete the task it will remain completed forever by locking the value."
          type: boolean
        completedValueStyle:
          description: The style to use when the objective is completed.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema52"
        completionValue:
          description: The value that the unlock value defined in unlockValueHash must reach in order for the objective to be considered Completed. Used in calculating progress and completion status.
          format: int32
          type: integer
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: Ideally, this should tell you what your task is. I'm not going to lie to you though. Sometimes this doesn't have useful information at all. Which sucks, but there's nothing either of us can do about it.
          type: object
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        inProgressValueStyle:
          description: The style to use when the objective is still in progress.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema52"
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        isCountingDownward:
          description: "If true, completion means having an unlock value less than or equal to the completionValue.\r

            If False, completion means having an unlock value greater than or equal to the completionValue."
          type: boolean
        locationHash:
          description: "OPTIONAL: a hash identifier for the location at which this objective must be accomplished, if there is a location defined. Look up the DestinyLocationDefinition for this hash for that additional location info."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyLocationDefinition"
        minimumVisibilityThreshold:
          description: If nonzero, this is the minimum value at which the objective's progression should be shown. Otherwise, don't show it yet.
          format: int32
          type: integer
        perks:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectivePerkEntryDefinition"
          description: If this objective enables Perks intrinsically, the conditions for that enabling are defined here.
          type: object
        progressDescription:
          description: Text to describe the progress bar.
          type: string
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        scope:
          description: A shortcut for determining the most restrictive gating that this Objective is set to use. This includes both the dynamic determination of progress and of completion values. See the DestinyGatingScope enum's documentation for more details.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema50"
        showValueOnComplete:
          description: If True, you should continue showing the progression value in the UI after it's complete. I mean, we already do that in BNet anyways, but if you want to be better behaved than us you could honor this flag.
          type: boolean
        stats:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveStatEntryDefinition"
          description: If this objective enables modifications on a player's stats intrinsically, the conditions are defined here.
          type: object
        uiLabel:
          description: Objectives can have arbitrary UI-defined identifiers that define the style applied to objectives. For convenience, known UI labels will be defined in the uiStyle enum value.
          type: string
        uiStyle:
          description: If the objective has a known UI label value, this property will represent it.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema53"
        valueStyle:
          description: "The UI style applied to the objective. It's an enum, take a look at DestinyUnlockValueUIStyle for details of the possible styles. Use this info as you wish to customize your UI.\r

            DEPRECATED: This is no longer populated by Destiny 2 game content. Please use inProgressValueStyle and completedValueStyle instead."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema52"
      type: object
      x-mobile-manifest-name: Objectives
    Destiny.Definitions.DestinyObjectiveDisplayProperties:
      properties:
        activityHash:
          description: The activity associated with this objective in the context of this item, if any.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        displayOnItemPreviewScreen:
          description: If true, the game shows this objective on item preview screens.
          type: boolean
      type: object
    Destiny.Definitions.DestinyObjectivePerkEntryDefinition:
      description: "Defines the conditions under which an intrinsic perk is applied while participating in an Objective.\r

        These perks will generally not be benefit-granting perks, but rather a perk that modifies gameplay in some interesting way."
      properties:
        perkHash:
          description: The hash identifier of the DestinySandboxPerkDefinition that will be applied to the character.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinySandboxPerkDefinition"
        style:
          description: An enumeration indicating whether it will be applied as long as the Objective is active, when it's completed, or until it's completed.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema54"
      type: object
    Destiny.Definitions.DestinyObjectiveStatEntryDefinition:
      description: Defines the conditions under which stat modifications will be applied to a Character while participating in an objective.
      properties:
        stat:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyItemInvestmentStatDefinition"
          description: The stat being modified, and the value used.
          type: object
        style:
          description: Whether it will be applied as long as the objective is active, when it's completed, or until it's completed.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema54"
      type: object
    Destiny.Definitions.DestinyPlaceDefinition:
      description: "Okay, so Activities (DestinyActivityDefinition) take place in Destinations (DestinyDestinationDefinition). Destinations are part of larger locations known as Places (you're reading its documentation right now).\r

        Places are more on the planetary scale, like \"Earth\" and \"Your Mom.\""
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: Places
    Destiny.Definitions.DestinyPlugItemCraftingRequirements:
      properties:
        materialRequirementHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyMaterialRequirementSetDefinition"
        requiredLevel:
          description: If the plug has a known level requirement, it'll be available here.
          format: int32
          type: integer
        unlockRequirements:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyPlugItemCraftingUnlockRequirement"
          type: array
      type: object
    Destiny.Definitions.DestinyPlugItemCraftingUnlockRequirement:
      properties:
        failureDescription:
          type: string
      type: object
    Destiny.Definitions.DestinyProgressionDefinition:
      description: "A \"Progression\" in Destiny is best explained by an example.\r

        A Character's \"Level\" is a progression: it has Experience that can be earned, levels that can be gained, and is evaluated and displayed at various points in the game. A Character's \"Faction Reputation\" is also a progression for much the same reason.\r

        Progression is used by a variety of systems, and the definition of a Progression will generally only be useful if combining with live data (such as a character's DestinyCharacterProgressionComponent.progressions property, which holds that character's live Progression states).\r

        Fundamentally, a Progression measures your \"Level\" by evaluating the thresholds in its Steps (one step per level, except for the last step which can be repeated indefinitely for \"Levels\" that have no ceiling) against the total earned \"progression points\"/experience. (for simplicity purposes, we will henceforth refer to earned progression points as experience, though it need not be a mechanic that in any way resembles Experience in a traditional sense).\r

        Earned experience is calculated in a variety of ways, determined by the Progression's scope. These go from looking up a stored value to performing exceedingly obtuse calculations. This is why we provide live data in DestinyCharacterProgressionComponent.progressions, so you don't have to worry about those."
      properties:
        color:
          allOf:
            - $ref: "#/components/schemas/Destiny.Misc.DestinyColor"
          description: "The #RGB string value for the color related to this progression, if there is one."
          type: object
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionDisplayPropertiesDefinition"
        factionHash:
          description: "If the value exists, this is the hash identifier for the Faction that owns this Progression.\r

            This is purely for convenience, if you're looking at a progression and want to know if and who it's related to in terms of Faction Reputation."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyFactionDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        rankIcon:
          description: For progressions that have it, this is the rank icon we use in the Companion, displayed above the progressions' rank value.
          type: string
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        repeatLastStep:
          description: If this is True, then the progression doesn't have a maximum level.
          type: boolean
        rewardItems:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionRewardItemQuantity"
          type: array
        scope:
          description: "The \"Scope\" of the progression indicates the source of the progression's live data.\r

            See the DestinyProgressionScope enum for more info: but essentially, a Progression can either be backed by a stored value, or it can be a calculated derivative of other values."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema23"
        source:
          description: If there's a description of how to earn this progression in the local config, this will be that localized description.
          type: string
        steps:
          description: "Progressions are divided into Steps, which roughly equate to \"Levels\" in the traditional sense of a Progression. Notably, the last step can be repeated indefinitely if repeatLastStep is true, meaning that the calculation for your level is not as simple as comparing your current progress to the max progress of the steps. \r

            These and more calculations are done for you if you grab live character progression data, such as in the DestinyCharacterProgressionComponent."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionStepDefinition"
          type: array
        visible:
          description: "If true, the Progression is something worth showing to users.\r

            If false, BNet isn't going to show it. But that doesn't mean you can't. We're all friends here."
          type: boolean
      type: object
      x-mobile-manifest-name: Progressions
    Destiny.Definitions.DestinyProgressionDisplayPropertiesDefinition:
      properties:
        description:
          type: string
        displayUnitsName:
          description: When progressions show your "experience" gained, that bar has units (i.e. "Experience", "Bad Dudes Snuffed Out", whatever). This is the localized string for that unit of measurement.
          type: string
        hasIcon:
          type: boolean
        highResIcon:
          description: If this item has a high-res icon (at least for now, many things won't), then the path to that icon will be here.
          type: string
        icon:
          description: "Note that \"icon\" is sometimes misleading, and should be interpreted in the context of the entity. For instance, in Destiny 1 the DestinyRecordBookDefinition's icon was a big picture of a book.\r

            But usually, it will be a small square image that you can use as... well, an icon.\r

            They are currently represented as 96px x 96px images."
          type: string
        iconSequences:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyIconSequenceDefinition"
          type: array
        name:
          type: string
      type: object
    Destiny.Definitions.DestinyProgressionMappingDefinition:
      description: "Aggregations of multiple progressions.\r

        These are used to apply rewards to multiple progressions at once. They can sometimes have human readable data as well, but only extremely sporadically."
      properties:
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: Infrequently defined in practice. Defer to the individual progressions' display properties.
          type: object
        displayUnits:
          description: The localized unit of measurement for progression across the progressions defined in this mapping. Unfortunately, this is very infrequently defined. Defer to the individual progressions' display units.
          type: string
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
    Destiny.Definitions.DestinyProgressionRewardDefinition:
      description: "Inventory Items can reward progression when actions are performed on them. A common example of this in Destiny 1 was Bounties, which would reward Experience on your Character and the like when you completed the bounty.\r

        Note that this maps to a DestinyProgressionMappingDefinition, and *not* a DestinyProgressionDefinition directly. This is apparently so that multiple progressions can be granted progression points/experience at the same time."
      properties:
        amount:
          description: The amount of experience to give to each of the mapped progressions.
          format: int32
          type: integer
        applyThrottles:
          description: If true, the game's internal mechanisms to throttle progression should be applied.
          type: boolean
        progressionMappingHash:
          description: The hash identifier of the DestinyProgressionMappingDefinition that contains the progressions for which experience should be applied.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionMappingDefinition"
      type: object
    Destiny.Definitions.DestinyProgressionRewardItemQuantity:
      properties:
        acquisitionBehavior:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema75"
        claimUnlockDisplayStrings:
          items:
            type: string
          type: array
        hasConditionalVisibility:
          description: "Indicates that this item quantity may be conditionally shown or hidden, based on various sources of state. For example: server flags, account state, or character progress."
          type: boolean
        itemHash:
          description: The hash identifier for the item in question. Use it to look up the item's DestinyInventoryItemDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        itemInstanceId:
          description: If this quantity is referring to a specific instance of an item, this will have the item's instance ID. Normally, this will be null.
          format: int64
          type: integer
        quantity:
          description: The amount of the item needed/available depending on the context of where DestinyItemQuantity is being used.
          format: int32
          type: integer
        rewardedAtProgressionLevel:
          format: int32
          type: integer
        uiDisplayStyle:
          type: string
      type: object
    Destiny.Definitions.DestinyProgressionStepDefinition:
      description: This defines a single Step in a progression (which roughly equates to a level. See DestinyProgressionDefinition for caveats).
      properties:
        displayEffectType:
          description: This appears to be, when you "level up", whether a visual effect will display and on what entity. See DestinyProgressionStepDisplayEffect for slightly more info.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema24"
        icon:
          description: If this progression step has a specific icon related to it, this is the icon to show.
          type: string
        progressTotal:
          description: The total amount of progression points/"experience" you will need to initially reach this step. If this is the last step and the progression is repeating indefinitely (DestinyProgressionDefinition.repeatLastStep), this will also be the progress needed to level it up further by repeating this step again.
          format: int32
          type: integer
        rewardItems:
          description: A listing of items rewarded as a result of reaching this level.
          items:
            $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          type: array
        stepName:
          description: Very rarely, Progressions will have localized text describing the Level of the progression. This will be that localized text, if it exists. Otherwise, the standard appears to be to simply show the level numerically.
          type: string
      type: object
    Destiny.Definitions.DestinyRaceDefinition:
      description: In Destiny, "Races" are really more like "Species". Sort of. I mean, are the Awoken a separate species from humans? I'm not sure. But either way, they're defined here. You'll see Exo, Awoken, and Human as examples of these Species. Players will choose one for their character.
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        genderedRaceNames:
          additionalProperties:
            type: string
          description: A localized string referring to the singular form of the Race's name when referred to in gendered form. Keyed by the DestinyGender.
          type: object
        genderedRaceNamesByGenderHash:
          additionalProperties:
            type: string
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyGenderDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        raceType:
          description: An enumeration defining the existing, known Races/Species for player characters. This value will be the enum value matching this definition.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema94"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: Races
    Destiny.Definitions.DestinyRewardSourceCategory:
      $ref: "#/components/schemas/schema63"
    Destiny.Definitions.DestinyRewardSourceDefinition:
      description: "Represents a heuristically-determined \"item source\" according to Bungie.net. These item sources are non-canonical: we apply a combination of special configuration and often-fragile heuristics to attempt to discern whether an item should be part of a given \"source,\" but we have known cases of false positives and negatives due to our imperfect heuristics.\r

        Still, they provide a decent approximation for people trying to figure out how an item can be obtained. DestinyInventoryItemDefinition refers to sources in the sourceDatas.sourceHashes property for all sources we determined the item could spawn from.\r

        An example in Destiny 1 of a Source would be \"Nightfall\". If an item has the \"Nightfall\" source associated with it, it's extremely likely that you can earn that item while playing Nightfall, either during play or as an after-completion reward."
      properties:
        category:
          description: "Sources are grouped into categories: common ways that items are provided. I hope to see this expand in Destiny 2 once we have time to generate accurate reward source data."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema63"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: RewardSources
    Destiny.Definitions.DestinySandboxPatternDefinition:
      properties:
        filters:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyArrangementRegionFilterDefinition"
          type: array
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        patternGlobalTagIdHash:
          format: uint32
          type: integer
        patternHash:
          format: uint32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        weaponContentGroupHash:
          format: uint32
          type: integer
        weaponTranslationGroupHash:
          format: uint32
          type: integer
        weaponType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema27"
        weaponTypeHash:
          format: uint32
          type: integer
      type: object
      x-mobile-manifest-name: SandboxPatterns
    Destiny.Definitions.DestinySandboxPerkDefinition:
      description: "Perks are modifiers to a character or item that can be applied situationally.\r

        - Perks determine a weapons' damage type.\r

        - Perks put the Mods in Modifiers (they are literally the entity that bestows the Sandbox benefit for whatever fluff text about the modifier in the Socket, Plug or Talent Node)\r

        - Perks are applied for unique alterations of state in Objectives\r

        Anyways, I'm sure you can see why perks are so interesting.\r

        What Perks often don't have is human readable information, so we attempt to reverse engineer that by pulling that data from places that uniquely refer to these perks: namely, Talent Nodes and Plugs. That only gives us a subset of perks that are human readable, but those perks are the ones people generally care about anyways. The others are left as a mystery, their true purpose mostly unknown and undocumented."
      properties:
        damageType:
          description: "If this perk grants a damage type to a weapon, the damage type will be defined here.\r

            Unless you have a compelling reason to use this enum value, use the damageTypeHash instead to look up the actual DestinyDamageTypeDefinition."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema30"
        damageTypeHash:
          description: "The hash identifier for looking up the DestinyDamageTypeDefinition, if this perk has a damage type.\r

            This is preferred over using the damageType enumeration value, which has been left purely because it is occasionally convenient."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDamageTypeDefinition"
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: These display properties are by no means guaranteed to be populated. Usually when it is, it's only because we back-filled them with the displayProperties of some Talent Node or Plug item that happened to be uniquely providing that perk.
          type: object
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        isDisplayable:
          description: If true, you can actually show the perk in the UI. Otherwise, it doesn't have useful player-facing information.
          type: boolean
        perkGroups:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyTalentNodeStepGroups"
          description: "An old holdover from the original Armory, this was an attempt to group perks by functionality.\r

            It is as yet unpopulated, and there will be quite a bit of work needed to restore it to its former working order."
          type: object
        perkIdentifier:
          description: The string identifier for the perk.
          type: string
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: SandboxPerks
    Destiny.Definitions.DestinyStatDefinition:
      description: "This represents a stat that's applied to a character or an item (such as a weapon, piece of armor, or a vehicle).\r

        An example of a stat might be Attack Power on a weapon.\r

        Stats go through a complex set of transformations before they end up being shown to the user as a number or a progress bar, and those transformations are fundamentally intertwined with the concept of a \"Stat Group\" (DestinyStatGroupDefinition). Items have both Stats and a reference to a Stat Group, and it is the Stat Group that takes the raw stat information and gives it both rendering metadata (such as whether to show it as a number or a progress bar) and the final transformation data (interpolation tables to turn the raw investment stat into a display stat). Please see DestinyStatGroupDefinition for more information on that transformational process.\r

        Stats are segregated from Stat Groups because different items and types of items can refer to the same stat, but have different \"scales\" for the stat while still having the same underlying value. For example, both a Shotgun and an Auto Rifle may have a \"raw\" impact stat of 50, but the Auto Rifle's Stat Group will scale that 50 down so that, when it is displayed, it is a smaller value relative to the shotgun. (this is a totally made up example, don't assume shotguns have naturally higher impact than auto rifles because of this)\r

        A final caveat is that some stats, even after this \"final\" transformation, go through yet another set of transformations directly in the game as a result of dynamic, stateful scripts that get run. BNet has no access to these scripts, nor any way to know which scripts get executed. As a result, the stats for an item that you see in-game - particularly for stats that are often impacted by Perks, like Magazine Size - can change dramatically from what we return on Bungie.Net. This is a known issue with no fix coming down the pipeline. Take these stats with a grain of salt.\r

        Stats actually go through four transformations, for those interested:\r

        1) \"Sandbox\" stat, the \"most raw\" form. These are pretty much useless without transformations applied, and thus are not currently returned in the API. If you really want these, we can provide them. Maybe someone could do something cool with it?\r

        2) \"Investment\" stat (the stat's value after DestinyStatDefinition's interpolation tables and aggregation logic is applied to the \"Sandbox\" stat value)\r

        3) \"Display\" stat (the stat's base UI-visible value after DestinyStatGroupDefinition's interpolation tables are applied to the Investment Stat value. For most stats, this is what is displayed.)\r

        4) Underlying in-game stat (the stat's actual value according to the game, after the game runs dynamic scripts based on the game and character's state. This is the final transformation that BNet does not have access to. For most stats, this is not actually displayed to the user, with the exception of Magazine Size which is then piped back to the UI for display in-game, but not to BNet.)"
      properties:
        aggregationType:
          description: Stats can exist on a character or an item, and they may potentially be aggregated in different ways. The DestinyStatAggregationType enum value indicates the way that this stat is being aggregated.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema38"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hasComputedBlock:
          description: "True if the stat is computed rather than being delivered as a raw value on items.\r

            For instance, the Light stat in Destiny 1 was a computed stat."
          type: boolean
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        statCategory:
          description: The category of the stat, according to the game.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema39"
      type: object
      x-mobile-manifest-name: Stats
    Destiny.Definitions.DestinyStatDisplayDefinition:
      description: "Describes the way that an Item Stat (see DestinyStatDefinition) is transformed using the DestinyStatGroupDefinition related to that item. See both of the aforementioned definitions for more information about the stages of stat transformation.\r

        This represents the transformation of a stat into a \"Display\" stat (the closest value that BNet can get to the in-game display value of the stat)"
      properties:
        displayAsNumeric:
          description: If this is true, the stat should be displayed as a number. Otherwise, display it as a progress bar. Or, you know, do whatever you want. There's no displayAsNumeric police.
          type: boolean
        displayInterpolation:
          description: "The interpolation table representing how the Investment Stat is transformed into a Display Stat. \r

            See DestinyStatDefinition for a description of the stages of stat transformation."
          items:
            $ref: "#/components/schemas/Interpolation.InterpolationPoint"
          type: array
        maximumValue:
          description: Regardless of the output of interpolation, this is the maximum possible value that the stat can be. It should also be used as the upper bound for displaying the stat as a progress bar (the minimum always being 0)
          format: int32
          type: integer
        statHash:
          description: "The hash identifier for the stat being transformed into a Display stat.\r

            Use it to look up the DestinyStatDefinition, or key into a DestinyInventoryItemDefinition's stats property."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatDefinition"
      type: object
    Destiny.Definitions.DestinyStatGroupDefinition:
      description: "When an inventory item (DestinyInventoryItemDefinition) has Stats (such as Attack Power), the item will refer to a Stat Group. This definition enumerates the properties used to transform the item's \"Investment\" stats into \"Display\" stats.\r

        See DestinyStatDefinition's documentation for information about the transformation of Stats, and the meaning of an Investment vs. a Display stat.\r

        If you don't want to do these calculations on your own, fear not: pulling live data from the BNet endpoints will return display stat values pre-computed and ready for you to use. I highly recommend this approach, saves a lot of time and also accounts for certain stat modifiers that can't easily be accounted for without live data (such as stat modifiers on Talent Grids and Socket Plugs)"
      properties:
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        maximumValue:
          description: "The maximum possible value that any stat in this group can be transformed into.\r

            This is used by stats that *don't* have scaledStats entries below, but that still need to be displayed as a progress bar, in which case this is used as the upper bound for said progress bar. (the lower bound is always 0)"
          format: int32
          type: integer
        overrides:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatOverrideDefinition"
          description: "The game has the ability to override, based on the stat group, what the localized text is that is displayed for Stats being shown on the item.\r

            Mercifully, no Stat Groups use this feature currently. If they start using them, we'll all need to start using them (and those of you who are more prudent than I am can go ahead and start pre-checking for this.)"
          type: object
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        scaledStats:
          description: "Any stat that requires scaling to be transformed from an \"Investment\" stat to a \"Display\" stat will have an entry in this list. For more information on what those types of stats mean and the transformation process, see DestinyStatDefinition.\r

            In retrospect, I wouldn't mind if this was a dictionary keyed by the stat hash instead. But I'm going to leave it be because [[After Apple Picking]]."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatDisplayDefinition"
          type: array
        uiPosition:
          description: This apparently indicates the position of the stats in the UI? I've returned it in case anyone can use it, but it's not of any use to us on BNet. Something's being lost in translation with this value.
          format: int32
          type: integer
      type: object
      x-mobile-manifest-name: StatGroups
    Destiny.Definitions.DestinyStatOverrideDefinition:
      description: "Stat Groups (DestinyStatGroupDefinition) has the ability to override the localized text associated with stats that are to be shown on the items with which they are associated.\r

        This defines a specific overridden stat. You could theoretically check these before rendering your stat UI, and for each stat that has an override show these displayProperties instead of those on the DestinyStatDefinition.\r

        Or you could be like us, and skip that for now because the game has yet to actually use this feature. But know that it's here, waiting for a resilliant young designer to take up the mantle and make us all look foolish by showing the wrong name for stats.\r

        Note that, if this gets used, the override will apply only to items using the overriding Stat Group. Other items will still show the default stat's name/description."
      properties:
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: The display properties to show instead of the base DestinyStatDefinition display properties.
          type: object
        statHash:
          description: The hash identifier of the stat whose display properties are being overridden.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatDefinition"
      type: object
    Destiny.Definitions.DestinyTalentExclusiveGroup:
      description: As of Destiny 2, nodes can exist as part of "Exclusive Groups". These differ from exclusive sets in that, within the group, many nodes can be activated. But the act of activating any node in the group will cause "opposing" nodes (nodes in groups that are not allowed to be activated at the same time as this group) to deactivate.
      properties:
        groupHash:
          description: The identifier for this exclusive group. Only guaranteed unique within the talent grid, not globally.
          format: uint32
          type: integer
        loreHash:
          description: If this group has an associated piece of lore to show next to it, this will be the identifier for that DestinyLoreDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Lore.DestinyLoreDefinition"
        nodeHashes:
          description: A quick reference of the talent nodes that are part of this group, by their Talent Node hashes. (See DestinyTalentNodeDefinition.nodeHash)
          items:
            format: uint32
            type: integer
          type: array
        opposingGroupHashes:
          description: A quick reference of Groups whose nodes will be deactivated if any node in this group is activated.
          items:
            format: uint32
            type: integer
          type: array
        opposingNodeHashes:
          description: A quick reference of Nodes that will be deactivated if any node in this group is activated, by their Talent Node hashes. (See DestinyTalentNodeDefinition.nodeHash)
          items:
            format: uint32
            type: integer
          type: array
      type: object
    Destiny.Definitions.DestinyTalentGridDefinition:
      description: "The time has unfortunately come to talk about Talent Grids.\r

        Talent Grids are the most complex and unintuitive part of the Destiny Definition data. Grab a cup of coffee before we begin, I can wait.\r

        Talent Grids were the primary way that items could be customized in Destiny 1. In Destiny 2, for now, talent grids have become exclusively used by Subclass/Build items: but the system is still in place for it to be used by items should the direction change back toward talent grids.\r

        Talent Grids have Nodes: the visual circles on the talent grid detail screen that have icons and can be activated if you meet certain requirements and pay costs. The actual visual data and effects, however, are driven by the \"Steps\" on Talent Nodes. Any given node will have 1:M of these steps, and the specific step that will be considered the \"current\" step (and thus the dictator of all benefits, visual state, and activation requirements on the Node) will almost always not be determined until an instance of the item is created. This is how, in Destiny 1, items were able to have such a wide variety of what users saw as \"Perks\": they were actually Talent Grids with nodes that had a wide variety of Steps, randomly chosen at the time of item creation.\r

        Now that Talent Grids are used exclusively by subclasses and builds, all of the properties within still apply: but there are additional visual elements on the Subclass/Build screens that are superimposed on top of the talent nodes. Unfortunately, BNet doesn't have this data: if you want to build a subclass screen, you will have to provide your own \"decorative\" assets, such as the visual connectors between nodes and the fancy colored-fire-bathed character standing behind the nodes.\r

        DestinyInventoryItem.talentGrid.talentGridHash defines an item's linked Talent Grid, which brings you to this definition that contains enough satic data about talent grids to make your head spin. These *must* be combined with instanced data - found when live data returns DestinyItemTalentGridComponent - in order to derive meaning. The instanced data will reference nodes and steps within these definitions, which you will then have to look up in the definition and combine with the instanced data to give the user the visual representation of their item's talent grid."
      properties:
        exclusiveSets:
          description: "Talent Nodes can exist in \"exclusive sets\": these are sets of nodes in which only a single node in the set can be activated at any given time. Activating a node in this set will automatically deactivate the other nodes in the set (referred to as a \"Swap\").\r

            If a node in the exclusive set has already been activated, the game will not charge you materials to activate another node in the set, even if you have never activated it before, because you already paid the cost to activate one node in the set.\r

            Not to be confused with Exclusive Groups. (how the heck do we NOT get confused by that? Jeez) See the groups property for information about that only-tangentially-related concept."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyTalentNodeExclusiveSetDefinition"
          type: array
        gridLevelPerColumn:
          description: "The meaning of this has been lost in the sands of time: it still exists as a property, but appears to be unused in the modern UI of talent grids. It used to imply that each visual \"column\" of talent nodes required identical progression levels in order to be activated. Returning this value in case it is still useful to someone? Perhaps it's just a bit of interesting history."
          format: int32
          type: integer
        groups:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyTalentExclusiveGroup"
          description: "Talent Nodes can have \"Exclusive Groups\". These are not to be confused with Exclusive Sets (see exclusiveSets property).\r

            Look at the definition of DestinyTalentExclusiveGroup for more information and how they work. These groups are keyed by the \"groupHash\" from DestinyTalentExclusiveGroup."
          type: object
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        independentNodeIndexes:
          description: This is a quick reference to the indexes of nodes that are not part of exclusive sets. Handy for knowing which talent nodes can only be activated directly, rather than via swapping.
          items:
            format: int32
            type: integer
          type: array
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        maxGridLevel:
          description: "The maximum possible level of the Talent Grid: at this level, any nodes are allowed to be activated."
          format: int32
          type: integer
        nodeCategories:
          description: "BNet wants to show talent nodes grouped by similar purpose with localized titles. This is the ordered list of those categories: if you want to show nodes by category, you can iterate over this list, render the displayProperties for the category as the title, and then iterate over the talent nodes referenced by the category to show the related nodes.\r

            Note that this is different from Exclusive Groups or Sets, because these categories also incorporate \"Independent\" nodes that belong to neither sets nor groups. These are purely for visual grouping of nodes rather than functional grouping."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyTalentNodeCategory"
          type: array
        nodes:
          description: The list of Talent Nodes on the Grid (recall that Nodes themselves are really just locations in the UI to show whatever their current Step is. You will only know the current step for a node by retrieving instanced data through platform calls to the API that return DestinyItemTalentGridComponent).
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyTalentNodeDefinition"
          type: array
        progressionHash:
          description: The hash identifier of the Progression (DestinyProgressionDefinition) that drives whether and when Talent Nodes can be activated on the Grid. Items will have instances of this Progression, and will gain experience that will eventually cause the grid to increase in level. As the grid's level increases, it will cross the threshold where nodes can be activated. See DestinyTalentGridStepDefinition's activation requirements for more information.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionDefinition"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: Talents
    Destiny.Definitions.DestinyTalentNodeCategory:
      description: "An artificial construct provided by Bungie.Net, where we attempt to group talent nodes by functionality.\r

        This is a single set of references to Talent Nodes that share a common trait or purpose."
      properties:
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: Will contain at least the "name", which will be the title of the category. We will likely not have description and an icon yet, but I'm going to keep my options open.
          type: object
        identifier:
          description: Mostly just for debug purposes, but if you find it useful you can have it. This is BNet's manually created identifier for this category.
          type: string
        isLoreDriven:
          description: If true, we found the localized content in a related DestinyLoreDefinition instead of local BNet localization files. This is mostly for ease of my own future investigations.
          type: boolean
        nodeHashes:
          description: The set of all hash identifiers for Talent Nodes (DestinyTalentNodeDefinition) in this Talent Grid that are part of this Category.
          items:
            format: uint32
            type: integer
          type: array
      type: object
    Destiny.Definitions.DestinyTalentNodeDefinition:
      description: "Talent Grids on items have Nodes. These nodes have positions in the talent grid's UI, and contain \"Steps\" (DestinyTalentNodeStepDefinition), one of whom will be the \"Current\" step.\r

        The Current Step determines the visual properties of the node, as well as what the node grants when it is activated.\r

        See DestinyTalentGridDefinition for a more complete overview of how Talent Grids work, and how they are used in Destiny 2 (and how they were used in Destiny 1)."
      properties:
        autoUnlocks:
          description: If true, this node will automatically unlock when the Talent Grid's level reaches the required level of the current step of this node.
          type: boolean
        binaryPairNodeIndex:
          description: "At one point, Talent Nodes supported the idea of \"Binary Pairs\": nodes that overlapped each other visually, and where activating one deactivated the other. They ended up not being used, mostly because Exclusive Sets are *almost* a superset of this concept, but the potential for it to be used still exists in theory.\r

            If this is ever used, this will be the index into the DestinyTalentGridDefinition.nodes property for the node that is the binary pair match to this node. Activating one deactivates the other."
          format: int32
          type: integer
        column:
          description: The visual "column" where the node should be shown in the UI. If negative, the node is hidden.
          format: int32
          type: integer
        exclusiveWithNodeHashes:
          description: "The nodeHash values for nodes that are in an Exclusive Set with this node.\r

            See DestinyTalentGridDefinition.exclusiveSets for more info about exclusive sets.\r

            Again, note that these are nodeHashes and *not* nodeIndexes."
          items:
            format: uint32
            type: integer
          type: array
        groupHash:
          description: "As of Destiny 2, nodes can exist as part of \"Exclusive Groups\". These differ from exclusive sets in that, within the group, many nodes can be activated. But the act of activating any node in the group will cause \"opposing\" nodes (nodes in groups that are not allowed to be activated at the same time as this group) to deactivate.\r

            See DestinyTalentExclusiveGroup for more information on the details. This is an identifier for this node's group, if it is part of one."
          format: uint32
          type: integer
        ignoreForCompletion:
          description: "Comes from the talent grid node style: if true, then this node should be ignored for determining whether the grid is complete."
          type: boolean
        isRandom:
          description: If this is true, the node's step is determined randomly rather than the first step being chosen.
          type: boolean
        isRandomRepurchasable:
          description: If this is true, the node can be "re-rolled" to acquire a different random current step. This is not used, but still exists for a theoretical future of talent grids.
          type: boolean
        lastStepRepeats:
          description: "At one point, Nodes were going to be able to be activated multiple times, changing the current step and potentially piling on multiple effects from the previously activated steps. This property would indicate if the last step could be activated multiple times. \r

            This is not currently used, but it isn't out of the question that this could end up being used again in a theoretical future."
          type: boolean
        layoutIdentifier:
          description: A string identifier for a custom visual layout to apply to this talent node. Unfortunately, we do not have any data for rendering these custom layouts. It will be up to you to interpret these strings and change your UI if you want to have custom UI matching these layouts.
          type: string
        loreHash:
          description: Talent nodes can be associated with a piece of Lore, generally rendered in a tooltip. This is the hash identifier of the lore element to show, if there is one to be show.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Lore.DestinyLoreDefinition"
        nodeHash:
          description: "The hash identifier for the node, which unfortunately is also content version dependent but can be (and ideally, should be) used instead of the nodeIndex to uniquely identify the node.\r

            The two exist side-by-side for backcompat reasons due to the Great Talent Node Restructuring of Destiny 1, and I ran out of time to remove one of them and standardize on the other. Sorry!"
          format: uint32
          type: integer
        nodeIndex:
          description: "The index into the DestinyTalentGridDefinition's \"nodes\" property where this node is located. Used to uniquely identify the node within the Talent Grid. Note that this is content version dependent: make sure you have the latest version of content before trying to use these properties."
          format: int32
          type: integer
        nodeStyleIdentifier:
          description: "Comes from the talent grid node style: this identifier should be used to determine how to render the node in the UI."
          type: string
        prerequisiteNodeIndexes:
          description: "Indexes into the DestinyTalentGridDefinition.nodes property for any nodes that must be activated before this one is allowed to be activated.\r

            I would have liked to change this to hashes for Destiny 2, but we have run out of time."
          items:
            format: int32
            type: integer
          type: array
        randomActivationRequirement:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyNodeActivationRequirement"
          description: "At one point, you were going to be able to repurchase talent nodes that had random steps, to \"re-roll\" the current step of the node (and thus change the properties of your item). This was to be the activation requirement for performing that re-roll.\r

            The system still exists to do this, as far as I know, so it may yet come back around!"
          type: object
        randomStartProgressionBarAtProgression:
          description: If the node's step is randomly selected, this is the amount of the Talent Grid's progression experience at which the progression bar for the node should be shown.
          format: int32
          type: integer
        row:
          description: The visual "row" where the node should be shown in the UI. If negative, then the node is hidden.
          format: int32
          type: integer
        steps:
          description: "At this point, \"steps\" have been obfuscated into conceptual entities, aggregating the underlying notions of \"properties\" and \"true steps\".\r

            If you need to know a step as it truly exists - such as when recreating Node logic when processing Vendor data - you'll have to use the \"realSteps\" property below."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyNodeStepDefinition"
          type: array
      type: object
    Destiny.Definitions.DestinyTalentNodeExclusiveSetDefinition:
      description: The list of indexes into the Talent Grid's "nodes" property for nodes in this exclusive set. (See DestinyTalentNodeDefinition.nodeIndex)
      properties:
        nodeIndexes:
          description: The list of node indexes for the exclusive set. Historically, these were indexes. I would have liked to replace this with nodeHashes for consistency, but it's way too late for that. (9:09 PM, he's right!)
          items:
            format: int32
            type: integer
          type: array
      type: object
    Destiny.Definitions.DestinyTalentNodeStepDamageTypes:
      $ref: "#/components/schemas/schema59"
    Destiny.Definitions.DestinyTalentNodeStepGroups:
      description: These properties are an attempt to categorize talent node steps by certain common properties. See the related enumerations for the type of properties being categorized.
      properties:
        damageTypes:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema59"
        guardianAttributes:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema57"
        impactEffects:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema56"
        lightAbilities:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema58"
        weaponPerformance:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema55"
      type: object
    Destiny.Definitions.DestinyTalentNodeStepGuardianAttributes:
      $ref: "#/components/schemas/schema57"
    Destiny.Definitions.DestinyTalentNodeStepImpactEffects:
      $ref: "#/components/schemas/schema56"
    Destiny.Definitions.DestinyTalentNodeStepLightAbilities:
      $ref: "#/components/schemas/schema58"
    Destiny.Definitions.DestinyTalentNodeStepWeaponPerformances:
      $ref: "#/components/schemas/schema55"
    Destiny.Definitions.DestinyUnlockDefinition:
      description: Unlock Flags are small bits (literally, a bit, as in a boolean value) that the game server uses for an extremely wide range of state checks, progress storage, and other interesting tidbits of information.
      properties:
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: "Sometimes, but not frequently, these unlock flags also have human readable information: usually when they are being directly tested for some requirement, in which case the string is a localized description of why the requirement check failed."
          type: object
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: Unlocks
    Destiny.Definitions.DestinyUnlockExpressionDefinition:
      description: "Where the sausage gets made. Unlock Expressions are the foundation of the game's gating mechanics and investment-related restrictions. They can test Unlock Flags and Unlock Values for certain states, using a sufficient amount of logical operators such that unlock expressions are effectively Turing complete.\r

        Use UnlockExpressionParser to evaluate expressions using an IUnlockContext parsed from Babel."
      properties:
        scope:
          description: A shortcut for determining the most restrictive gating that this expression performs. See the DestinyGatingScope enum's documentation for more details.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema50"
      type: object
    Destiny.Definitions.DestinyUnlockValueDefinition:
      description: An Unlock Value is an internal integer value, stored on the server and used in a variety of ways, most frequently for the gating/requirement checks that the game performs across all of its main features. They can also be used as the storage data for mapped Progressions, Objectives, and other features that require storage of variable numeric values.
      properties:
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
    Destiny.Definitions.DestinyVendorAcceptedItemDefinition:
      description: "If you ever wondered how the Vault works, here it is.\r

        The Vault is merely a set of inventory buckets that exist on your Profile/Account level. When you transfer items in the Vault, the game is using the Vault Vendor's DestinyVendorAcceptedItemDefinitions to see where the appropriate destination bucket is for the source bucket from whence your item is moving. If it finds such an entry, it transfers the item to the other bucket.\r

        The mechanics for Postmaster works similarly, which is also a vendor. All driven by Accepted Items."
      properties:
        acceptedInventoryBucketHash:
          description: The "source" bucket for a transfer. When a user wants to transfer an item, the appropriate DestinyVendorDefinition's acceptedItems property is evaluated, looking for an entry where acceptedInventoryBucketHash matches the bucket that the item being transferred is currently located. If it exists, the item will be transferred into whatever bucket is defined by destinationInventoryBucketHash.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryBucketDefinition"
        destinationInventoryBucketHash:
          description: This is the bucket where the item being transferred will be put, given that it was being transferred *from* the bucket defined in acceptedInventoryBucketHash.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryBucketDefinition"
      type: object
    Destiny.Definitions.DestinyVendorActionDefinition:
      description: If a vendor can ever end up performing actions, these are the properties that will be related to those actions. I'm not going to bother documenting this yet, as it is unused and unclear if it will ever be used... but in case it is ever populated and someone finds it useful, it is defined here.
      properties:
        actionHash:
          format: uint32
          type: integer
        actionId:
          type: string
        autoPerformAction:
          type: boolean
        description:
          type: string
        executeSeconds:
          format: int32
          type: integer
        icon:
          type: string
        isPositive:
          type: boolean
        name:
          type: string
        verb:
          type: string
      type: object
    Destiny.Definitions.DestinyVendorCategoryEntryDefinition:
      description: This is the definition for a single Vendor Category, into which Sale Items are grouped.
      properties:
        buyStringOverride:
          description: The localized string for making purchases from this category, if it is different from the vendor's string for purchasing.
          type: string
        categoryHash:
          description: The hashed identifier for the category.
          format: uint32
          type: integer
        categoryIndex:
          description: The index of the category in the original category definitions for the vendor.
          format: int32
          type: integer
        disabledDescription:
          description: If the category is disabled, this is the localized description to show.
          type: string
        displayTitle:
          description: The localized title of the category.
          type: string
        hideFromRegularPurchase:
          description: True if this category doesn't allow purchases.
          type: boolean
        hideIfNoCurrency:
          description: If you don't have the currency required to buy items from this category, should the items be hidden?
          type: boolean
        isDisplayOnly:
          description: "If true, this category only displays items: you can't purchase anything in them."
          type: boolean
        isPreview:
          description: Sometimes a category isn't actually used to sell items, but rather to preview them. This implies different UI (and manual placement of the category in the UI) in the game, and special treatment.
          type: boolean
        overlay:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorCategoryOverlayDefinition"
          description: If this category has an overlay prompt that should appear, this contains the details of that prompt.
          type: object
        quantityAvailable:
          description: The amount of items that will be available when this category is shown.
          format: int32
          type: integer
        resetIntervalMinutesOverride:
          format: int32
          type: integer
        resetOffsetMinutesOverride:
          format: int32
          type: integer
        showUnavailableItems:
          description: If items aren't up for sale in this category, should we still show them (greyed out)?
          type: boolean
        sortValue:
          description: Used in sorting items in vendors... but there's a lot more to it. Just go with the order provided in the itemIndexes property on the DestinyVendorCategoryComponent instead, it should be more reliable than trying to recalculate it yourself.
          format: int32
          type: integer
        vendorItemIndexes:
          description: A shortcut for the vendor item indexes sold under this category. Saves us from some expensive reorganization at runtime.
          items:
            format: int32
            type: integer
          type: array
      type: object
    Destiny.Definitions.DestinyVendorCategoryOverlayDefinition:
      description: The details of an overlay prompt to show to a user. They are all fairly self-explanatory localized strings that can be shown.
      properties:
        choiceDescription:
          type: string
        currencyItemHash:
          description: If this overlay has a currency item that it features, this is said featured item.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        description:
          type: string
        icon:
          type: string
        title:
          type: string
      type: object
    Destiny.Definitions.DestinyVendorDefinition:
      description: "These are the definitions for Vendors.\r

        In Destiny, a Vendor can be a lot of things - some things that you wouldn't expect, and some things that you don't even see directly in the game. Vendors are the Dolly Levi of the Destiny universe.\r

        - Traditional Vendors as you see in game: people who you come up to and who give you quests, rewards, or who you can buy things from.\r

        - Kiosks/Collections, which are really just Vendors that don't charge currency (or charge some pittance of a currency) and whose gating for purchases revolves more around your character's state.\r

        - Previews for rewards or the contents of sacks. These are implemented as Vendors, where you can't actually purchase from them but the items that they have for sale and the categories of sale items reflect the rewards or contents of the sack. This is so that the game could reuse the existing Vendor display UI for rewards and save a bunch of wheel reinvention.\r

        - Item Transfer capabilities, like the Vault and Postmaster. Vendors can have \"acceptedItem\" buckets that determine the source and destination buckets for transfers. When you interact with such a vendor, these buckets are what gets shown in the UI instead of any items that the Vendor would have for sale. Yep, the Vault is a vendor.\r

        It is pretty much guaranteed that they'll be used for even more features in the future. They have come to be seen more as generic categorized containers for items than \"vendors\" in a traditional sense, for better or worse.\r

        Where possible and time allows, we'll attempt to split those out into their own more digestible derived \"Definitions\": but often time does not allow that, as you can see from the above ways that vendors are used which we never split off from Vendor Definitions externally.\r

        Since Vendors are so many things to so many parts of the game, the definition is understandably complex. You will want to combine this data with live Vendor information from the API when it is available."
      properties:
        acceptedItems:
          description: If the Vendor is actually a vehicle for the transferring of items (like the Vault and Postmaster vendors), this defines the list of source->destination buckets for transferring.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorAcceptedItemDefinition"
          type: array
        actions:
          description: Describes "actions" that can be performed on a vendor. Currently, none of these exist. But theoretically a Vendor could let you interact with it by performing actions. We'll see what these end up looking like if they ever get used.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorActionDefinition"
          type: array
        buyString:
          description: If the vendor has a custom localized string describing the "buy" action, that is returned here.
          type: string
        categories:
          description: "These are the headers for sections of items that the vendor is selling. When you see items organized by category in the header, it is these categories that it is showing.\r

            Well, technically not *exactly* these. On BNet, it doesn't make sense to have categories be \"paged\" as we do in Destiny, so we run some heuristics to attempt to aggregate pages of categories together. \r

            These are the categories post-concatenation, if the vendor had concatenation applied. If you want the pre-aggregated category data, use originalCategories."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorCategoryEntryDefinition"
          type: array
        consolidateCategories:
          description: If TRUE, consolidate categories that only differ by trivial properties (such as having minor differences in name)
          type: boolean
        displayCategories:
          description: "Display Categories are different from \"categories\" in that these are specifically for visual grouping and display of categories in Vendor UI. \r

            The \"categories\" structure is for validation of the contained items, and can be categorized entirely separately from \"Display Categories\", there need be and often will be no meaningful relationship between the two."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDisplayCategoryDefinition"
          type: array
        displayItemHash:
          description: "If the vendor has an item that should be displayed as the \"featured\" item, this is the hash identifier for that DestinyVendorItemDefinition.\r

            Apparently this is usually a related currency, like a reputation token. But it need not be restricted to that."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDisplayPropertiesDefinition"
        enabled:
          description: If a vendor is not enabled, we won't even save the vendor's definition, and we won't return any items or info about them. It's as if they don't exist.
          type: boolean
        factionHash:
          description: "If the Vendor has a faction, this hash will be valid and point to a DestinyFactionDefinition.\r

            The game UI and BNet often mine the faction definition for additional elements and details to place on the screen, such as the faction's Progression status (aka \"Reputation\")."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyFactionDefinition"
        failureStrings:
          description: "If an item can't be purchased from the vendor, there may be many \"custom\"/game state specific reasons why not.\r

            This is a list of localized strings with messages for those custom failures. The live BNet data will return a failureIndexes property for items that can't be purchased: using those values to index into this array, you can show the user the appropriate failure message for the item that can't be bought."
          items:
            type: string
          type: array
        groups:
          description: "A vendor can be a part of 0 or 1 \"groups\" at a time: a group being a collection of Vendors related by either location or function/purpose. It's used for our our Companion Vendor UI. Only one of these can be active for a Vendor at a time."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorGroupReference"
          type: array
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        ignoreSaleItemHashes:
          description: Some items don't make sense to return in the API, for example because they represent an action to be performed rather than an item being sold. I'd rather we not do this, but at least in the short term this is a workable workaround.
          items:
            format: uint32
            type: integer
          type: array
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        inhibitBuying:
          description: If this is true, you aren't allowed to buy whatever the vendor is selling.
          type: boolean
        inhibitSelling:
          description: If this is true, you're not allowed to sell whatever the vendor is buying.
          type: boolean
        interactions:
          description: 'In addition to selling items, vendors can have "interactions": UI where you "talk" with the vendor and they offer you a reward, some item, or merely acknowledge via dialog that you did something cool.'
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorInteractionDefinition"
          type: array
        inventoryFlyouts:
          description: If the vendor shows you items from your own inventory - such as the Vault vendor does - this data describes the UI around showing those inventory buckets and which ones get shown.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorInventoryFlyoutDefinition"
          type: array
        itemList:
          description: "If the vendor sells items (or merely has a list of items to show like the \"Sack\" vendors do), this is the list of those items that the vendor can sell. From this list, only a subset will be available from the vendor at any given time, selected randomly and reset on the vendor's refresh interval.\r

            Note that a vendor can sell the same item multiple ways: for instance, nothing stops a vendor from selling you some specific weapon but using two different currencies, or the same weapon at multiple \"item levels\"."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorItemDefinition"
          type: array
        locations:
          description: A vendor can be at different places in the world depending on the game/character/account state. This is the list of possible locations for the vendor, along with conditions we use to determine which one is currently active.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Vendors.DestinyVendorLocationDefinition"
          type: array
        originalCategories:
          description: See the categories property for a description of categories and why originalCategories exists.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorCategoryEntryDefinition"
          type: array
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        resetIntervalMinutes:
          description: "A number used for calculating the frequency of a vendor's inventory resetting/refreshing.\r

            Don't worry about calculating this - we do it on the server side and send you the next refresh date with the live data."
          format: int32
          type: integer
        resetOffsetMinutes:
          description: Again, used for reset/refreshing of inventory. Don't worry too much about it. Unless you want to.
          format: int32
          type: integer
        returnWithVendorRequest:
          description: "As many of you know, Vendor data has historically been pretty brutal on the BNet servers. In an effort to reduce this workload, only Vendors with this flag set will be returned on Vendor requests. This allows us to filter out Vendors that don't dynamic data that's particularly useful: things like \"Preview/Sack\" vendors, for example, that you can usually suss out the details for using just the definitions themselves."
          type: boolean
        sellString:
          description: Ditto for selling. Not that you can sell items to a vendor anymore. Will it come back? Who knows. The string's still there.
          type: string
        services:
          description: BNet doesn't use this data yet, but it appears to be an optional list of flavor text about services that the Vendor can provide.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorServiceDefinition"
          type: array
        unlockRanges:
          description: If we were able to predict the dates when this Vendor will be visible/available, this will be the list of those date ranges. Sadly, we're not able to predict this very frequently, so this will often be useless data.
          items:
            $ref: "#/components/schemas/Dates.DateRange"
          type: array
        vendorBanner:
          description: If the vendor has a custom banner image, that can be found here.
          type: string
        vendorIdentifier:
          description: The internal identifier for the Vendor. A holdover from the old days of Vendors, but we don't have time to refactor it away.
          type: string
        vendorPortrait:
          description: A portrait of the Vendor's smiling mug. Or frothing tentacles.
          type: string
        vendorProgressionType:
          description: "The type of reward progression that this vendor has. Default - The original rank progression from token redemption. Ritual - Progression from ranks in ritual content. For example: Crucible (Shaxx), Gambit (Drifter), and Battlegrounds (War Table)."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema43"
        vendorSubcategoryIdentifier:
          description: The identifier of the VendorCategoryDefinition for this vendor's subcategory.
          type: string
        visible:
          description: If a vendor is not visible, we still have and will give vendor definition info, but we won't use them for things like Advisors or UI.
          type: boolean
      type: object
      x-mobile-manifest-name: Vendors
    Destiny.Definitions.DestinyVendorDisplayPropertiesDefinition:
      properties:
        description:
          type: string
        hasIcon:
          type: boolean
        highResIcon:
          description: If this item has a high-res icon (at least for now, many things won't), then the path to that icon will be here.
          type: string
        icon:
          description: "Note that \"icon\" is sometimes misleading, and should be interpreted in the context of the entity. For instance, in Destiny 1 the DestinyRecordBookDefinition's icon was a big picture of a book.\r

            But usually, it will be a small square image that you can use as... well, an icon.\r

            They are currently represented as 96px x 96px images."
          type: string
        iconSequences:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyIconSequenceDefinition"
          type: array
        largeIcon:
          description: I regret calling this a "large icon". It's more like a medium-sized image with a picture of the vendor's mug on it, trying their best to look cool. Not what one would call an icon.
          type: string
        largeTransparentIcon:
          description: This is apparently the "Watermark". I am not certain offhand where this is actually used in the Game UI, but some people may find it useful.
          type: string
        mapIcon:
          description: This is the icon used in the map overview, when the vendor is located on the map.
          type: string
        name:
          type: string
        originalIcon:
          description: If we replaced the icon with something more glitzy, this is the original icon that the vendor had according to the game's content. It may be more lame and/or have less razzle-dazzle. But who am I to tell you which icon to use.
          type: string
        requirementsDisplay:
          description: Vendors, in addition to expected display property data, may also show some "common requirements" as statically defined definition data. This might be when a vendor accepts a single type of currency, or when the currency is unique to the vendor and the designers wanted to show that currency when you interact with the vendor.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorRequirementDisplayEntryDefinition"
          type: array
        smallTransparentIcon:
          description: This is the icon used in parts of the game UI such as the vendor's waypoint.
          type: string
        subtitle:
          type: string
      type: object
    Destiny.Definitions.DestinyVendorGroupDefinition:
      description: "BNet attempts to group vendors into similar collections. These groups aren't technically game canonical, but they are helpful for filtering vendors or showing them organized into a clean view on a webpage or app.\r

        These definitions represent the groups we've built. Unlike in Destiny 1, a Vendors' group may change dynamically as the game state changes: thus, you will want to check DestinyVendorComponent responses to find a vendor's currently active Group (if you care).\r

        Using this will let you group your vendors in your UI in a similar manner to how we will do grouping in the Companion."
      properties:
        categoryName:
          description: For now, a group just has a name.
          type: string
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        order:
          description: The recommended order in which to render the groups, Ascending order.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: VendorGroups
    Destiny.Definitions.DestinyVendorGroupReference:
      properties:
        vendorGroupHash:
          description: The DestinyVendorGroupDefinition to which this Vendor can belong.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorGroupDefinition"
      type: object
    Destiny.Definitions.DestinyVendorInteractionDefinition:
      description: A Vendor Interaction is a dialog shown by the vendor other than sale items or transfer screens. The vendor is showing you something, and asking you to reply to it by choosing an option or reward.
      properties:
        flavorLineOne:
          description: If the vendor interaction has flavor text, this is some of it.
          type: string
        flavorLineTwo:
          description: If the vendor interaction has flavor text, this is the rest of it.
          type: string
        headerDisplayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: The header for the interaction dialog.
          type: object
        instructions:
          description: The localized text telling the player what to do when they see this dialog.
          type: string
        interactionIndex:
          description: The position of this interaction in its parent array. Note that this is NOT content agnostic, and should not be used as such.
          format: int32
          type: integer
        interactionType:
          description: The enumerated version of the possible UI hints for vendor interactions, which is a little easier to grok than the hash found in uiInteractionType.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema45"
        questlineItemHash:
          description: If this interaction dialog is about a quest, this is the questline related to the interaction. You can use this to show the quest overview, or even the character's status with the quest if you use it to find the character's current Quest Step by checking their inventory against this questlineItemHash's DestinyInventoryItemDefinition.setData.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        replies:
          description: The potential replies that the user can make to the interaction.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorInteractionReplyDefinition"
          type: array
        rewardBlockLabel:
          description: If this interaction is displaying rewards, this is the text to use for the header of the reward-displaying section of the interaction.
          type: string
        rewardVendorCategoryIndex:
          description: If the vendor's reward list is sourced from one of his categories, this is the index into the category array of items to show.
          format: int32
          type: integer
        sackInteractionList:
          description: If this interaction is meant to show you sacks, this is the list of types of sacks to be shown. If empty, the interaction is not meant to show sacks.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorInteractionSackEntryDefinition"
          type: array
        uiInteractionType:
          description: A UI hint for the behavior of the interaction screen. This is useful to determine what type of interaction is occurring, such as a prompt to receive a rank up reward or a prompt to choose a reward for completing a quest. The hash isn't as useful as the Enum in retrospect, well what can you do. Try using interactionType instead.
          format: uint32
          type: integer
        vendorCategoryIndex:
          description: If >= 0, this is the category of sale items to show along with this interaction dialog.
          format: int32
          type: integer
      type: object
    Destiny.Definitions.DestinyVendorInteractionReplyDefinition:
      description: "When the interaction is replied to, Reward sites will fire and items potentially selected based on whether the given unlock expression is TRUE.\r

        You can potentially choose one from multiple replies when replying to an interaction: this is how you get either/or rewards from vendors."
      properties:
        itemRewardsSelection:
          description: The rewards granted upon responding to the vendor.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema46"
        reply:
          description: The localized text for the reply.
          type: string
        replyType:
          description: An enum indicating the type of reply being made.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema47"
      type: object
    Destiny.Definitions.DestinyVendorInteractionSackEntryDefinition:
      description: Compare this sackType to the sack identifier in the DestinyInventoryItemDefinition.vendorSackType property of items. If they match, show this sack with this interaction.
      properties:
        sackType:
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.DestinyVendorInventoryFlyoutBucketDefinition:
      description: Information about a single inventory bucket in a vendor flyout UI and how it is shown.
      properties:
        collapsible:
          description: If true, the inventory bucket should be able to be collapsed visually.
          type: boolean
        inventoryBucketHash:
          description: The inventory bucket whose contents should be shown.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryBucketDefinition"
        sortItemsBy:
          description: The methodology to use for sorting items from the flyout.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema48"
      type: object
    Destiny.Definitions.DestinyVendorInventoryFlyoutDefinition:
      description: 'The definition for an "inventory flyout": a UI screen where we show you part of an otherwise hidden vendor inventory: like the Vault inventory buckets.'
      properties:
        buckets:
          description: A list of inventory buckets and other metadata to show on the screen.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorInventoryFlyoutBucketDefinition"
          type: array
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: The title and other common properties of the flyout.
          type: object
        equipmentSlotHash:
          description: If this flyout is meant to show you the contents of the player's equipment slot, this is the slot to show.
          format: uint32
          type: integer
        flyoutId:
          description: An identifier for the flyout, in case anything else needs to refer to them.
          format: uint32
          type: integer
        lockedDescription:
          description: If the flyout is locked, this is the reason why.
          type: string
        suppressNewness:
          description: If this is true, don't show any of the glistening "this is a new item" UI elements, like we show on the inventory items themselves in in-game UI.
          type: boolean
      type: object
    Destiny.Definitions.DestinyVendorItemDefinition:
      description: This represents an item being sold by the vendor.
      properties:
        action:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorSaleItemActionBlockDefinition"
          description: The action to be performed when purchasing the item, if it's not just "buy".
          type: object
        categoryIndex:
          description: The index into the DestinyVendorDefinition.categories array, so you can find the category associated with this item.
          format: int32
          type: integer
        creationLevels:
          description: The Default level at which the item will spawn. Almost always driven by an adjusto these days. Ideally should be singular. It's a long story how this ended up as a list, but there is always either going to be 0:1 of these entities.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemCreationEntryLevelDefinition"
          type: array
        currencies:
          description: "This is a pre-compiled aggregation of item value and priceOverrideList, so that we have one place to check for what the purchaser must pay for the item. Use this instead of trying to piece together the price separately.\r

            The somewhat crappy part about this is that, now that item quantity overrides have dynamic modifiers, this will not necessarily be statically true. If you were using this instead of live data, switch to using live data."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorItemQuantity"
          type: array
        displayCategory:
          description: The string identifier for the category selling this item.
          type: string
        displayCategoryIndex:
          description: "This is an index specifically into the display category, as opposed to the server-side Categories (which do not need to match or pair with each other in any way: server side categories are really just structures for common validation. Display Category will let us more easily categorize items visually)"
          format: int32
          type: integer
        exclusivity:
          description: If this item can only be purchased by a given platform, this indicates the platform to which it is restricted.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        expirationTooltip:
          description: If this item can expire, this is the tooltip message to show with its expiration info.
          type: string
        failureIndexes:
          description: An list of indexes into the DestinyVendorDefinition.failureStrings array, indicating the possible failure strings that can be relevant for this item.
          items:
            format: int32
            type: integer
          type: array
        inventoryBucketHash:
          description: The inventory bucket into which this item will be placed upon purchase.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryBucketDefinition"
        isCrm:
          description: If this sale can only be performed as the result of receiving a CRM offer, this is true.
          type: boolean
        isOffer:
          description: If this sale can only be performed as the result of an offer check, this is true.
          type: boolean
        itemHash:
          description: "The hash identifier of the item being sold (DestinyInventoryItemDefinition).\r

            Note that a vendor can sell the same item in multiple ways, so don't assume that itemHash is a unique identifier for this entity."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        maximumLevel:
          description: The maximum character level at which this item is available for sale.
          format: int32
          type: integer
        minimumLevel:
          description: The minimum character level at which this item is available for sale.
          format: int32
          type: integer
        originalCategoryIndex:
          description: Same as above, but for the original category indexes.
          format: int32
          type: integer
        purchasableScope:
          description: "Similar to visibilityScope, it represents the most restrictive scope that determines whether the item can be purchased. It will at least be as restrictive as visibilityScope, but could be more restrictive if the item has additional purchase requirements beyond whether it is merely visible or not.\r

            See DestinyGatingScope's documentation for more information."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema50"
        quantity:
          description: The amount you will recieve of the item described in itemHash if you make the purchase.
          format: int32
          type: integer
        redirectToSaleIndexes:
          description: If this is populated, the purchase of this item should redirect to purchasing these other items instead.
          items:
            format: int32
            type: integer
          type: array
        refundPolicy:
          description: If this item can be refunded, this is the policy for what will be refundd, how, and in what time period.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema49"
        refundTimeLimit:
          description: The amount of time before refundability of the newly purchased item will expire.
          format: int32
          type: integer
        socketOverrides:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorItemSocketOverride"
          type: array
        sortValue:
          description: "*if* the category this item is in supports non-default sorting, this value should represent the sorting value to use, pre-processed and ready to go."
          format: int32
          type: integer
        unpurchasable:
          description: "If true, this item is some sort of dummy sale item that cannot actually be purchased. It may be a display only item, or some fluff left by a content designer for testing purposes, or something that got disabled because it was a terrible idea. You get the picture. We won't know *why* it can't be purchased, only that it can't be. Sorry.\r

            This is also only whether it's unpurchasable as a static property according to game content. There are other reasons why an item may or may not be purchasable at runtime, so even if this isn't set to True you should trust the runtime value for this sale item over the static definition if this is unset."
          type: boolean
        vendorItemIndex:
          description: The index into the DestinyVendorDefinition.saleList. This is what we use to refer to items being sold throughout live and definition data.
          format: int32
          type: integer
        visibilityScope:
          description: "The most restrictive scope that determines whether the item is available in the Vendor's inventory. See DestinyGatingScope's documentation for more information.\r

            This can be determined by Unlock gating, or by whether or not the item has purchase level requirements (minimumLevel and maximumLevel properties)."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema50"
      type: object
    Destiny.Definitions.DestinyVendorItemQuantity:
      description: In addition to item quantity information for vendor prices, this also has any optional information that may exist about how the item's quantity can be modified. (unfortunately not information that is able to be read outside of the BNet servers, but it's there)
      properties:
        hasConditionalVisibility:
          description: "Indicates that this item quantity may be conditionally shown or hidden, based on various sources of state. For example: server flags, account state, or character progress."
          type: boolean
        itemHash:
          description: The hash identifier for the item in question. Use it to look up the item's DestinyInventoryItemDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        itemInstanceId:
          description: If this quantity is referring to a specific instance of an item, this will have the item's instance ID. Normally, this will be null.
          format: int64
          type: integer
        quantity:
          description: The amount of the item needed/available depending on the context of where DestinyItemQuantity is being used.
          format: int32
          type: integer
      type: object
    Destiny.Definitions.DestinyVendorItemSocketOverride:
      description: The information for how the vendor purchase should override a given socket with custom plug data.
      properties:
        randomizedOptionsCount:
          description: If this is greater than -1, the number of randomized plugs on this socket will be set to this quantity instead of whatever it's set to by default.
          format: int32
          type: integer
        singleItemHash:
          description: "If this is populated, the socket will be overridden with a specific plug.\r

            If this isn't populated, it's being overridden by something more complicated that is only known by the Game Server and God, which means we can't tell you in advance what it'll be."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        socketTypeHash:
          description: This appears to be used to select which socket ultimately gets the override defined here.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinySocketTypeDefinition"
      type: object
    Destiny.Definitions.DestinyVendorRequirementDisplayEntryDefinition:
      description: The localized properties of the requirementsDisplay, allowing information about the requirement or item being featured to be seen.
      properties:
        icon:
          type: string
        name:
          type: string
        source:
          type: string
        type:
          type: string
      type: object
    Destiny.Definitions.DestinyVendorSaleItemActionBlockDefinition:
      description: Not terribly useful, some basic cooldown interaction info.
      properties:
        executeSeconds:
          format: float
          type: number
        isPositive:
          type: boolean
      type: object
    Destiny.Definitions.DestinyVendorServiceDefinition:
      description: When a vendor provides services, this is the localized name of those services.
      properties:
        name:
          description: The localized name of a service provided.
          type: string
      type: object
    Destiny.Definitions.Director.DestinyActivityGraphArtElementDefinition:
      description: These Art Elements are meant to represent one-off visual effects overlaid on the map. Currently, we do not have a pipeline to import the assets for these overlays, so this info exists as a placeholder for when such a pipeline exists (if it ever will)
      properties:
        position:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyPositionDefinition"
          description: The position on the map of the art element.
          type: object
      type: object
    Destiny.Definitions.Director.DestinyActivityGraphConnectionDefinition:
      description: "Nodes on a graph can be visually connected: this appears to be the information about which nodes to link. It appears to lack more detailed information, such as the path for that linking."
      properties:
        destNodeHash:
          format: uint32
          type: integer
        sourceNodeHash:
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.Director.DestinyActivityGraphDefinition:
      description: "Represents a Map View in the director: be them overview views, destination views, or other.\r

        They have nodes which map to activities, and other various visual elements that we (or others) may or may not be able to use.\r

        Activity graphs, most importantly, have nodes which can have activities in various states of playability.\r

        Unfortunately, activity graphs are combined at runtime with Game UI-only assets such as fragments of map images, various in-game special effects, decals etc... that we don't get in these definitions.\r

        If we end up having time, we may end up trying to manually populate those here: but the last time we tried that, before the lead-up to D1, it proved to be unmaintainable as the game's content changed. So don't bet the farm on us providing that content in this definition."
      properties:
        artElements:
          description: Represents one-off/special UI elements that appear on the map.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Director.DestinyActivityGraphArtElementDefinition"
          type: array
        connections:
          description: Represents connections between graph nodes. However, it lacks context that we'd need to make good use of it.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Director.DestinyActivityGraphConnectionDefinition"
          type: array
        displayObjectives:
          description: "Objectives can display on maps, and this is supposedly metadata for that. I have not had the time to analyze the details of what is useful within however: we could be missing important data to make this work. Expect this property to be expanded on later if possible."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Director.DestinyActivityGraphDisplayObjectiveDefinition"
          type: array
        displayProgressions:
          description: Progressions can also display on maps, but similarly to displayObjectives we appear to lack some required information and context right now. We will have to look into it later and add more data if possible.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Director.DestinyActivityGraphDisplayProgressionDefinition"
          type: array
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        linkedGraphs:
          description: Represents links between this Activity Graph and other ones.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Director.DestinyLinkedGraphDefinition"
          type: array
        nodes:
          description: These represent the visual "nodes" on the map's view. These are the activities you can click on in the map.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Director.DestinyActivityGraphNodeDefinition"
          type: array
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: ActivityGraphs
    Destiny.Definitions.Director.DestinyActivityGraphDisplayObjectiveDefinition:
      description: When a Graph needs to show active Objectives, this defines those objectives as well as an identifier.
      properties:
        id:
          description: $NOTE $amola 2017-01-19 This field is apparently something that CUI uses to manually wire up objectives to display info. I am unsure how it works.
          format: uint32
          type: integer
        objectiveHash:
          description: The objective being shown on the map.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
      type: object
    Destiny.Definitions.Director.DestinyActivityGraphDisplayProgressionDefinition:
      description: When a Graph needs to show active Progressions, this defines those objectives as well as an identifier.
      properties:
        id:
          format: uint32
          type: integer
        progressionHash:
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.Director.DestinyActivityGraphNodeActivityDefinition:
      description: "The actual activity to be redirected to when you click on the node. Note that a node can have many Activities attached to it: but only one will be active at any given time. The list of Node Activities will be traversed, and the first one found to be active will be displayed. This way, a node can layer multiple variants of an activity on top of each other. For instance, one node can control the weekly Crucible Playlist. There are multiple possible playlists, but only one is active for the week."
      properties:
        activityHash:
          description: The activity that will be activated if the user clicks on this node. Controls all activity-related information displayed on the node if it is active (the text shown in the tooltip etc)
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        nodeActivityId:
          description: An identifier for this node activity. It is only guaranteed to be unique within the Activity Graph.
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.Director.DestinyActivityGraphNodeDefinition:
      description: This is the position and other data related to nodes in the activity graph that you can click to launch activities. An Activity Graph node will only have one active Activity at a time, which will determine the activity to be launched (and, unless overrideDisplay information is provided, will also determine the tooltip and other UI related to the node)
      properties:
        activities:
          description: The node may have various possible activities that could be active for it, however only one may be active at a time. See the DestinyActivityGraphNodeActivityDefinition for details.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Director.DestinyActivityGraphNodeActivityDefinition"
          type: array
        featuringStates:
          description: The node may have various visual accents placed on it, or styles applied. These are the list of possible styles that the Node can have. The game iterates through each, looking for the first one that passes a check of the required game/character/account state in order to show that style, and then renders the node in that style.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Director.DestinyActivityGraphNodeFeaturingStateDefinition"
          type: array
        nodeId:
          description: An identifier for the Activity Graph Node, only guaranteed to be unique within its parent Activity Graph.
          format: uint32
          type: integer
        overrideDisplay:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: The node *may* have display properties that override the active Activity's display properties.
          type: object
        position:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyPositionDefinition"
          description: The position on the map for this node.
          type: object
        states:
          description: Represents possible states that the graph node can be in. These are combined with some checking that happens in the game client and server to determine which state is actually active at any given time.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Director.DestinyActivityGraphNodeStateEntry"
          type: array
      type: object
    Destiny.Definitions.Director.DestinyActivityGraphNodeFeaturingStateDefinition:
      description: Nodes can have different visual states. This object represents a single visual state ("highlight type") that a node can be in, and the unlock expression condition to determine whether it should be set.
      properties:
        highlightType:
          description: The node can be highlighted in a variety of ways - the game iterates through these and finds the first FeaturingState that is valid at the present moment given the Game, Account, and Character state, and renders the node in that state. See the ActivityGraphNodeHighlightType enum for possible values.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema51"
      type: object
    Destiny.Definitions.Director.DestinyActivityGraphNodeStateEntry:
      description: Represents a single state that a graph node might end up in. Depending on what's going on in the game, graph nodes could be shown in different ways or even excluded from view entirely.
      properties:
        state:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema62"
      type: object
    Destiny.Definitions.Director.DestinyLinkedGraphDefinition:
      description: This describes links between the current graph and others, as well as when that link is relevant.
      properties:
        description:
          type: string
        linkedGraphId:
          format: uint32
          type: integer
        linkedGraphs:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Director.DestinyLinkedGraphEntryDefinition"
          type: array
        name:
          type: string
        overview:
          type: string
        unlockExpression:
          $ref: "#/components/schemas/Destiny.Definitions.DestinyUnlockExpressionDefinition"
      type: object
    Destiny.Definitions.Director.DestinyLinkedGraphEntryDefinition:
      properties:
        activityGraphHash:
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.EnergyTypes.DestinyEnergyTypeDefinition:
      description: Represents types of Energy that can be used for costs and payments related to Armor 2.0 mods.
      properties:
        capacityStatHash:
          description: If this Energy Type can be used for determining the Type of Energy that an item can consume, this is the hash for the DestinyInvestmentStatDefinition that represents the stat which holds the Capacity for that energy type. (Note that this is optional because "Any" is a valid cost, but not valid for Capacity - an Armor must have a specific Energy Type for determining the energy type that the Armor is restricted to use)
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatDefinition"
        costStatHash:
          description: If this Energy Type can be used as a cost to pay for socketing Armor 2.0 items, this is the hash for the DestinyInvestmentStatDefinition that stores the plug's raw cost.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatDefinition"
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: The description of the energy type, icon etc...
          type: object
        enumValue:
          description: We have an enumeration for Energy types for quick reference. This is the current definition's Energy type enum value.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema72"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        showIcon:
          description: If TRUE, the game shows this Energy type's icon. Otherwise, it doesn't. Whether you show it or not is up to you.
          type: boolean
        transparentIconPath:
          description: A variant of the icon that is transparent and colorless.
          type: string
      type: object
      x-mobile-manifest-name: EnergyTypes
    Destiny.Definitions.GuardianRanks.DestinyGuardianRankConstantsDefinition:
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        iconBackgrounds:
          $ref: "#/components/schemas/Destiny.Definitions.GuardianRanks.DestinyGuardianRankIconBackgroundsDefinition"
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        rankCount:
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        rootNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
      type: object
      x-mobile-manifest-name: GuardianRankConstants
    Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition:
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        foregroundImagePath:
          type: string
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        overlayImagePath:
          type: string
        overlayMaskImagePath:
          type: string
        presentationNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        rankNumber:
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: GuardianRanks
    Destiny.Definitions.GuardianRanks.DestinyGuardianRankIconBackgroundsDefinition:
      properties:
        backgroundEmptyBlueGradientBorderedImagePath:
          type: string
        backgroundEmptyBorderedImagePath:
          type: string
        backgroundFilledBlueBorderedImagePath:
          type: string
        backgroundFilledBlueGradientBorderedImagePath:
          type: string
        backgroundFilledBlueLowAlphaImagePath:
          type: string
        backgroundFilledBlueMediumAlphaImagePath:
          type: string
        backgroundFilledGrayHeavyAlphaBorderedImagePath:
          type: string
        backgroundFilledGrayMediumAlphaBorderedImagePath:
          type: string
        backgroundFilledWhiteImagePath:
          type: string
        backgroundFilledWhiteMediumAlphaImagePath:
          type: string
        backgroundPlateBlackAlphaImagePath:
          type: string
        backgroundPlateBlackImagePath:
          type: string
        backgroundPlateWhiteImagePath:
          type: string
      type: object
    Destiny.Definitions.Items.DestinyDerivedItemCategoryDefinition:
      description: "A shortcut for the fact that some items have a \"Preview Vendor\" - See DestinyInventoryItemDefinition.preview.previewVendorHash - that is intended to be used to show what items you can get as a result of acquiring or using this item.\r

        A common example of this in Destiny 1 was Eververse \"Boxes,\" which could have many possible items. This \"Preview Vendor\" is not a vendor you can actually see in the game, but it defines categories and sale items for all of the possible items you could get from the Box so that the game can show them to you. We summarize that info here so that you don't have to do that Vendor lookup and aggregation manually."
      properties:
        categoryDescription:
          description: The localized string for the category title. This will be something describing the items you can get as a group, or your likelihood/the quantity you'll get.
          type: string
        items:
          description: This is the list of all of the items for this category and the basic properties we'll know about them.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Items.DestinyDerivedItemDefinition"
          type: array
      type: object
    Destiny.Definitions.Items.DestinyDerivedItemDefinition:
      description: This is a reference to, and summary data for, a specific item that you can get as a result of Using or Acquiring some other Item (For example, this could be summary information for an Emote that you can get by opening an an Eververse Box) See DestinyDerivedItemCategoryDefinition for more information.
      properties:
        iconPath:
          description: An icon for the item.
          type: string
        itemDescription:
          description: A brief description of the item.
          type: string
        itemDetail:
          description: Additional details about the derived item, in addition to the description.
          type: string
        itemHash:
          description: The hash for the DestinyInventoryItemDefinition of this derived item, if there is one. Sometimes we are given this information as a manual override, in which case there won't be an actual DestinyInventoryItemDefinition for what we display, but you can still show the strings from this object itself.
          format: uint32
          type: integer
        itemName:
          description: The name of the derived item.
          type: string
        vendorItemIndex:
          description: If the item was derived from a "Preview Vendor", this will be an index into the DestinyVendorDefinition's itemList property. Otherwise, -1.
          format: int32
          type: integer
      type: object
    Destiny.Definitions.Items.DestinyEnergyCapacityEntry:
      description: Items can have Energy Capacity, and plugs can provide that capacity such as on a piece of Armor in Armor 2.0. This is how much "Energy" can be spent on activating plugs for this item.
      properties:
        capacityValue:
          description: How much energy capacity this plug provides.
          format: int32
          type: integer
        energyType:
          description: The Energy Type for this energy capacity, in enum form for easy use.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema72"
        energyTypeHash:
          description: Energy provided by a plug is always of a specific type - this is the hash identifier for the energy type for which it provides Capacity.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.EnergyTypes.DestinyEnergyTypeDefinition"
      type: object
    Destiny.Definitions.Items.DestinyEnergyCostEntry:
      description: Some plugs cost Energy, which is a stat on the item that can be increased by other plugs (that, at least in Armor 2.0, have a "masterworks-like" mechanic for upgrading). If a plug has costs, the details of that cost are defined here.
      properties:
        energyCost:
          description: The Energy cost for inserting this plug.
          format: int32
          type: integer
        energyType:
          description: The type of energy that this plug costs, in enum form.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema72"
        energyTypeHash:
          description: The type of energy that this plug costs, as a reference to the DestinyEnergyTypeDefinition of the energy type.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.EnergyTypes.DestinyEnergyTypeDefinition"
      type: object
    Destiny.Definitions.Items.DestinyItemPlugDefinition:
      description: "If an item is a Plug, its DestinyInventoryItemDefinition.plug property will be populated with an instance of one of these bad boys.\r

        This gives information about when it can be inserted, what the plug's category is (and thus whether it is compatible with a socket... see DestinySocketTypeDefinition for information about Plug Categories and socket compatibility), whether it is enabled and other Plug info."
      properties:
        alternatePlugStyle:
          description: "The alternate plug of the plug: only applies when the item is in states that only the server can know about and control, unfortunately. See AlternateUiPlugLabel for the related label info."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema70"
        alternateUiPlugLabel:
          description: If the plug meets certain state requirements, it may have an alternative label applied to it. This is the alternative label that will be applied in such a situation.
          type: string
        enabledMaterialRequirementHash:
          description: It's not enough for the plug to be inserted. It has to be enabled as well. For it to be enabled, it may require materials. This is the hash identifier for the DestinyMaterialRequirementSetDefinition for those requirements, if there is one.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyMaterialRequirementSetDefinition"
        enabledRules:
          description: "The rules around whether the plug, once inserted, is enabled and providing its benefits.\r

            The live data DestinyItemPlugComponent.enableFailIndexes will be an index into this array, so you can pull out the failure strings appropriate for the user."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Items.DestinyPlugRuleDefinition"
          type: array
        energyCapacity:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Items.DestinyEnergyCapacityEntry"
          description: IF not null, this plug provides Energy capacity to the item in which it is socketed. In Armor 2.0 for example, is implemented in a similar way to Masterworks, where visually it's a single area of the UI being clicked on to "Upgrade" to higher energy levels, but it's actually socketing new plugs.
          type: object
        energyCost:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Items.DestinyEnergyCostEntry"
          description: IF not null, this plug has an energy cost. This contains the details of that cost.
          type: object
        insertionMaterialRequirementHash:
          description: If inserting this plug requires materials, this is the hash identifier for looking up the DestinyMaterialRequirementSetDefinition for those requirements.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyMaterialRequirementSetDefinition"
        insertionRules:
          description: "The rules around when this plug can be inserted into a socket, aside from the socket's individual restrictions.\r

            The live data DestinyItemPlugComponent.insertFailIndexes will be an index into this array, so you can pull out the failure strings appropriate for the user."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Items.DestinyPlugRuleDefinition"
          type: array
        isDummyPlug:
          description: If TRUE, this plug is used for UI display purposes only, and doesn't have any interesting effects of its own.
          type: boolean
        onActionRecreateSelf:
          description: If you successfully socket the item, this will determine whether or not you get "refunded" on the plug.
          type: boolean
        parentItemOverride:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Items.DestinyParentItemOverride"
          description: "Do you ever get the feeling that a system has become so overburdened by edge cases that it probably should have become some other system entirely? So do I!\r

            In totally unrelated news, Plugs can now override properties of their parent items. This is some of the relevant definition data for those overrides.\r

            If this is populated, it will have the override data to be applied when this plug is applied to an item."
          type: object
        plugAvailability:
          description: Indicates the rules about when this plug can be used. See the PlugAvailabilityMode enumeration for more information!
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema71"
        plugCategoryHash:
          description: "The hash for the plugCategoryIdentifier. You can use this instead if you wish: I put both in the definition for debugging purposes."
          format: uint32
          type: integer
        plugCategoryIdentifier:
          description: The string identifier for the plug's category. Use the socket's DestinySocketTypeDefinition.plugWhitelist to determine whether this plug can be inserted into the socket.
          type: string
        plugStyle:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema70"
        previewItemOverrideHash:
          description: In the game, if you're inspecting a plug item directly, this will be the item shown with the plug attached. Look up the DestinyInventoryItemDefinition for this hash for the item.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        uiPlugLabel:
          description: "Plugs can have arbitrary, UI-defined identifiers that the UI designers use to determine the style applied to plugs. Unfortunately, we have neither a definitive list of these labels nor advance warning of when new labels might be applied or how that relates to how they get rendered. If you want to, you can refer to known labels to change your own styles: but know that new ones can be created arbitrarily, and we have no way of associating the labels with any specific UI style guidance... you'll have to piece that together on your end. Or do what we do, and just show plugs more generically, without specialized styles."
          type: string
      type: object
    Destiny.Definitions.Items.DestinyItemTierTypeDefinition:
      description: "Defines the tier type of an item. Mostly this provides human readable properties for types like Common, Rare, etc...\r

        It also provides some base data for infusion that could be useful."
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        infusionProcess:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Items.DestinyItemTierTypeInfusionBlock"
          description: If this tier defines infusion properties, they will be contained here.
          type: object
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: ItemTierTypes
    Destiny.Definitions.Items.DestinyItemTierTypeInfusionBlock:
      properties:
        baseQualityTransferRatio:
          description: The default portion of quality that will transfer from the infuser to the infusee item. (InfuserQuality - InfuseeQuality) * baseQualityTransferRatio = base quality transferred.
          format: float
          type: number
        minimumQualityIncrement:
          description: As long as InfuserQuality > InfuseeQuality, the amount of quality bestowed is guaranteed to be at least this value, even if the transferRatio would dictate that it should be less. The total amount of quality that ends up in the Infusee cannot exceed the Infuser's quality however (for instance, if you infuse a 300 item with a 301 item and the minimum quality increment is 10, the infused item will not end up with 310 quality)
          format: int32
          type: integer
      type: object
    Destiny.Definitions.Items.DestinyParentItemOverride:
      properties:
        additionalEquipRequirementsDisplayStrings:
          items:
            type: string
          type: array
        pipIcon:
          type: string
      type: object
    Destiny.Definitions.Items.DestinyPlugRuleDefinition:
      description: "Dictates a rule around whether the plug is enabled or insertable.\r

        In practice, the live Destiny data will refer to these entries by index. You can then look up that index in the appropriate property (enabledRules or insertionRules) to get the localized string for the failure message if it failed."
      properties:
        failureMessage:
          description: The localized string to show if this rule fails.
          type: string
      type: object
    Destiny.Definitions.Loadouts.DestinyLoadoutColorDefinition:
      properties:
        colorImagePath:
          type: string
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: LoadoutColors
    Destiny.Definitions.Loadouts.DestinyLoadoutConstantsDefinition:
      properties:
        blackIconImagePath:
          description: This is a color-inverted version of the whiteIconImagePath.
          type: string
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        loadoutColorHashes:
          description: A list of the loadout color hashes in index order, for convenience.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Loadouts.DestinyLoadoutColorDefinition"
        loadoutCountPerCharacter:
          description: The maximum number of loadouts available to each character. The loadouts component API response can return fewer loadouts than this, as more loadouts are unlocked by reaching higher Guardian Ranks.
          format: int32
          type: integer
        loadoutIconHashes:
          description: A list of the loadout icon hashes in index order, for convenience.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Loadouts.DestinyLoadoutIconDefinition"
        loadoutNameHashes:
          description: A list of the loadout name hashes in index order, for convenience.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Loadouts.DestinyLoadoutNameDefinition"
        loadoutPreviewFilterOutSocketCategoryHashes:
          description: A list of the socket category hashes to be filtered out of loadout item preview displays.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinySocketCategoryDefinition"
        loadoutPreviewFilterOutSocketTypeHashes:
          description: A list of the socket type hashes to be filtered out of loadout item preview displays.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinySocketTypeDefinition"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        whiteIconImagePath:
          description: This is the same icon as the one in the display properties, offered here as well with a more descriptive name.
          type: string
      type: object
      x-mobile-manifest-name: LoadoutConstants
    Destiny.Definitions.Loadouts.DestinyLoadoutIconDefinition:
      properties:
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        iconImagePath:
          type: string
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: LoadoutIcons
    Destiny.Definitions.Loadouts.DestinyLoadoutNameDefinition:
      properties:
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        name:
          type: string
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: LoadoutNames
    Destiny.Definitions.Lore.DestinyLoreDefinition:
      description: "These are definitions for in-game \"Lore,\" meant to be narrative enhancements of the game experience.\r

        DestinyInventoryItemDefinitions for interesting items point to these definitions, but nothing's stopping you from scraping all of these and doing something cool with them. If they end up having cool data."
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        subtitle:
          type: string
      type: object
      x-mobile-manifest-name: Lore
    Destiny.Definitions.Metrics.DestinyMetricDefinition:
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        lowerValueIsBetter:
          type: boolean
        parentNodeHashes:
          description: A quick reference to presentation nodes that have this node as a child. Presentation nodes can be parented under multiple parents.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        presentationNodeType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema64"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        trackingObjectiveHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
        traitHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Traits.DestinyTraitDefinition"
        traitIds:
          items:
            type: string
          type: array
      type: object
      x-mobile-manifest-name: Metrics
    Destiny.Definitions.Milestones.DestinyMilestoneActivityDefinition:
      description: "Milestones can have associated activities which provide additional information about the context, challenges, modifiers, state etc... related to this Milestone. \r

        Information we need to be able to return that data is defined here, along with Tier data to establish a relationship between a conceptual Activity and its difficulty levels and variants."
      properties:
        conceptualActivityHash:
          description: "The \"Conceptual\" activity hash. Basically, we picked the lowest level activity and are treating it as the canonical definition of the activity for rendering purposes.\r

            If you care about the specific difficulty modes and variations, use the activities under \"Variants\"."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        variants:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneActivityVariantDefinition"
          description: "A milestone-referenced activity can have many variants, such as Tiers or alternative modes of play.\r

            Even if there is only a single variant, the details for these are represented within as a variant definition.\r

            It is assumed that, if this DestinyMilestoneActivityDefinition is active, then all variants should be active.\r

            If a Milestone could ever split the variants' active status conditionally, they should all have their own DestinyMilestoneActivityDefinition instead! The potential duplication will be worth it for the obviousness of processing and use."
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
      type: object
    Destiny.Definitions.Milestones.DestinyMilestoneActivityVariantDefinition:
      description: "Represents a variant on an activity for a Milestone: a specific difficulty tier, or a specific activity variant for example.\r

        These will often have more specific details, such as an associated Guided Game, progression steps, tier-specific rewards, and custom values."
      properties:
        activityHash:
          description: "The hash to use for looking up the variant Activity's definition (DestinyActivityDefinition), where you can find its distinguishing characteristics such as difficulty level and recommended light level. \r

            Frequently, that will be the only distinguishing characteristics in practice, which is somewhat of a bummer."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        order:
          description: "If you care to do so, render the variants in the order prescribed by this value.\r

            When you combine live Milestone data with the definition, the order becomes more useful because you'll be cross-referencing between the definition and live data."
          format: int32
          type: integer
      type: object
    Destiny.Definitions.Milestones.DestinyMilestoneChallengeActivityDefinition:
      properties:
        activityGraphNodes:
          description: If the activity and its challenge is visible on any of these nodes, it will be returned.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneChallengeActivityGraphNodeEntry"
          type: array
        activityHash:
          description: The activity for which this challenge is active.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        challenges:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneChallengeDefinition"
          type: array
        phases:
          description: "Phases related to this activity, if there are any.\r

            These will be listed in the order in which they will appear in the actual activity."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneChallengeActivityPhase"
          type: array
      type: object
    Destiny.Definitions.Milestones.DestinyMilestoneChallengeActivityGraphNodeEntry:
      properties:
        activityGraphHash:
          format: uint32
          type: integer
        activityGraphNodeHash:
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.Milestones.DestinyMilestoneChallengeActivityPhase:
      properties:
        phaseHash:
          description: The hash identifier of the activity's phase.
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.Milestones.DestinyMilestoneChallengeDefinition:
      properties:
        challengeObjectiveHash:
          description: The challenge related to this milestone.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
      type: object
    Destiny.Definitions.Milestones.DestinyMilestoneDefinition:
      description: "Milestones are an in-game concept where they're attempting to tell you what you can do next in-game.\r

        If that sounds a lot like Advisors in Destiny 1, it is! So we threw out Advisors in the Destiny 2 API and tacked all of the data we would have put on Advisors onto Milestones instead.\r

        Each Milestone represents something going on in the game right now:\r

        - A \"ritual activity\" you can perform, like nightfall\r

        - A \"special event\" that may have activities related to it, like Taco Tuesday (there's no Taco Tuesday in Destiny 2)\r

        - A checklist you can fulfill, like helping your Clan complete all of its weekly objectives\r

        - A tutorial quest you can play through, like the introduction to the Crucible.\r

        Most of these milestones appear in game as well. Some of them are BNet only, because we're so extra. You're welcome.\r

        There are some important caveats to understand about how we currently render Milestones and their deficiencies. The game currently doesn't have any content that actually tells you oughtright *what* the Milestone is: that is to say, what you'll be doing. The best we get is either a description of the overall Milestone, or of the Quest that the Milestone is having you partake in: which is usually something that assumes you already know what it's talking about, like \"Complete 5 Challenges\". 5 Challenges for what? What's a challenge? These are not questions that the Milestone data will answer for you unfortunately.\r

        This isn't great, and in the future I'd like to add some custom text to give you more contextual information to pass on to your users. But for now, you can do what we do to render what little display info we do have:\r

        Start by looking at the currently active quest (ideally, you've fetched DestinyMilestone or DestinyPublicMilestone data from the API, so you know the currently active quest for the Milestone in question). Look up the Quests property in the Milestone Definition, and check if it has display properties. If it does, show that as the description of the Milestone. If it doesn't, fall back on the Milestone's description.\r

        This approach will let you avoid, whenever possible, the even less useful (and sometimes nonexistant) milestone-level names and descriptions."
      properties:
        activities:
          description: A Milestone can now be represented by one or more activities directly (without a backing Quest), and that activity can have many challenges, modifiers, and related to it.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneChallengeActivityDefinition"
          type: array
        defaultOrder:
          format: int32
          type: integer
        displayPreference:
          description: 'A hint to the UI to indicate what to show as the display properties for this Milestone when showing "Live" milestone data. Feel free to show more than this if desired: this hint is meant to simplify our own UI, but it may prove useful to you as well.'
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema95"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        explorePrioritizesActivityImage:
          description: If TRUE, "Explore Destiny" (the front page of BNet and the companion app) prioritize using the activity image over any overriding Quest or Milestone image provided. This unfortunate hack is brought to you by Trials of The Nine.
          type: boolean
        friendlyName:
          description: If the milestone has a friendly identifier for association with other features - such as Recruiting - that identifier can be found here. This is "friendly" in that it looks better in a URL than whatever the identifier for the Milestone actually is.
          type: string
        hasPredictableDates:
          description: A shortcut for clients - and the server - to understand whether we can predict the start and end dates for this event. In practice, there are multiple ways that an event could have predictable date ranges, but not all events will be able to be predicted via any mechanism (for instance, events that are manually triggered on and off)
          type: boolean
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        image:
          description: A custom image someone made just for the milestone. Isn't that special?
          type: string
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        isInGameMilestone:
          description: Some milestones are explicit objectives that you can see and interact with in the game. Some milestones are more conceptual, built by BNet to help advise you on activities and events that happen in-game but that aren't explicitly shown in game as Milestones. If this is TRUE, you can see this as a milestone in the game. If this is FALSE, it's an event or activity you can participate in, but you won't see it as a Milestone in the game's UI.
          type: boolean
        milestoneType:
          description: An enumeration listing one of the possible types of milestones. Check out the DestinyMilestoneType enum for more info!
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema96"
        quests:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneQuestDefinition"
          description: "The full set of possible Quests that give the overview of the Milestone event/activity in question. Only one of these can be active at a time for a given Conceptual Milestone, but many of them may be \"available\" for the user to choose from. (for instance, with Milestones you can choose from the three available Quests, but only one can be active at a time) Keyed by the quest item.\r

            As of Forsaken (~September 2018), Quest-style Milestones are being removed for many types of activities. There will likely be further revisions to the Milestone concept in the future."
          type: object
        recruitable:
          description: If True, then the Milestone has been integrated with BNet's recruiting feature.
          type: boolean
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        rewards:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneRewardCategoryDefinition"
          description: "If this milestone can provide rewards, this will define the categories into which the individual reward entries are placed.\r

            This is keyed by the Category's hash, which is only guaranteed to be unique within a given Milestone."
          type: object
        showInExplorer:
          description: "If TRUE, this entry should be returned in the list of milestones for the \"Explore Destiny\" (i.e. new BNet homepage) features of Bungie.net (as long as the underlying event is active) Note that this is a property specifically used by BNet and the companion app for the \"Live Events\" feature of the front page/welcome view: it's not a reflection of what you see in-game."
          type: boolean
        showInMilestones:
          description: Determines whether we'll show this Milestone in the user's personal Milestones list.
          type: boolean
        values:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneValueDefinition"
          description: Sometimes, milestones will have arbitrary values associated with them that are of interest to us or to third party developers. This is the collection of those values' definitions, keyed by the identifier of the value and providing useful definition information such as localizable names and descriptions for the value.
          type: object
        vendors:
          description: Sometimes, milestones will have rewards provided by Vendors. This definition gives the information needed to understand which vendors are relevant, the order in which they should be returned if order matters, and the conditions under which the Vendor is relevant to the user.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneVendorDefinition"
          type: array
        vendorsDisplayTitle:
          description: If you're going to show Vendors for the Milestone, you can use this as a localized "header" for the section where you show that vendor data. It'll provide a more context-relevant clue about what the vendor's role is in the Milestone.
          type: string
      type: object
      x-mobile-manifest-name: Milestones
    Destiny.Definitions.Milestones.DestinyMilestoneDisplayPreference:
      $ref: "#/components/schemas/schema95"
    Destiny.Definitions.Milestones.DestinyMilestoneQuestDefinition:
      description: Any data we need to figure out whether this Quest Item is the currently active one for the conceptual Milestone. Even just typing this description, I already regret it.
      properties:
        activities:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneActivityDefinition"
          description: The full set of all possible "conceptual activities" that are related to this Milestone. Tiers or alternative modes of play within these conceptual activities will be defined as sub-entities. Keyed by the Conceptual Activity Hash. Use the key to look up DestinyActivityDefinition.
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        destinationHash:
          description: Sometimes, a Milestone's quest is related to an entire Destination rather than a specific activity. In that situation, this will be the hash of that Destination. Hotspots are currently the only Milestones that expose this data, but that does not preclude this data from being returned for other Milestones in the future.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDestinationDefinition"
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: "The individual quests may have different definitions from the overall milestone: if there's a specific active quest, use these displayProperties instead of that of the overall DestinyMilestoneDefinition."
          type: object
        overrideImage:
          description: If populated, this image can be shown instead of the generic milestone's image when this quest is live, or it can be used to show a background image for the quest itself that differs from that of the Activity or the Milestone.
          type: string
        questItemHash:
          description: The item representing this Milestone quest. Use this hash to look up the DestinyInventoryItemDefinition for the quest to find its steps and human readable data.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        questRewards:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneQuestRewardsDefinition"
          description: The rewards you will get for completing this quest, as best as we could extract them from our data. Sometimes, it'll be a decent amount of data. Sometimes, it's going to be sucky. Sorry.
          type: object
      type: object
    Destiny.Definitions.Milestones.DestinyMilestoneQuestRewardItem:
      description: "A subclass of DestinyItemQuantity, that provides not just the item and its quantity but also information that BNet can - at some point - use internally to provide more robust runtime information about the item's qualities.\r

        If you want it, please ask! We're just out of time to wire it up right now. Or a clever person just may do it with our existing endpoints."
      properties:
        hasConditionalVisibility:
          description: "Indicates that this item quantity may be conditionally shown or hidden, based on various sources of state. For example: server flags, account state, or character progress."
          type: boolean
        itemHash:
          description: The hash identifier for the item in question. Use it to look up the item's DestinyInventoryItemDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        itemInstanceId:
          description: If this quantity is referring to a specific instance of an item, this will have the item's instance ID. Normally, this will be null.
          format: int64
          type: integer
        quantity:
          description: The amount of the item needed/available depending on the context of where DestinyItemQuantity is being used.
          format: int32
          type: integer
        vendorHash:
          description: The quest reward item *may* be associated with a vendor. If so, this is that vendor. Use this hash to look up the DestinyVendorDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
        vendorItemIndex:
          description: The quest reward item *may* be associated with a vendor. If so, this is the index of the item being sold, which we can use at runtime to find instanced item information for the reward item.
          format: int32
          type: integer
      type: object
    Destiny.Definitions.Milestones.DestinyMilestoneQuestRewardsDefinition:
      description: If rewards are given in a quest - as opposed to overall in the entire Milestone - there's way less to track. We're going to simplify this contract as a result. However, this also gives us the opportunity to potentially put more than just item information into the reward data if we're able to mine it out in the future. Remember this if you come back and ask "why are quest reward items nested inside of their own class?"
      properties:
        items:
          description: "The items that represent your reward for completing the quest.\r

            Be warned, these could be \"dummy\" items: items that are only used to render a good-looking in-game tooltip, but aren't the actual items themselves.\r

            For instance, when experience is given there's often a dummy item representing \"experience\", with quantity being the amount of experience you got. We don't have a programmatic association between those and whatever Progression is actually getting that experience... yet."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneQuestRewardItem"
          type: array
      type: object
    Destiny.Definitions.Milestones.DestinyMilestoneRewardCategoryDefinition:
      description: The definition of a category of rewards, that contains many individual rewards.
      properties:
        categoryHash:
          description: Identifies the reward category. Only guaranteed unique within this specific component!
          format: uint32
          type: integer
        categoryIdentifier:
          description: The string identifier for the category, if you want to use it for some end. Guaranteed unique within the specific component.
          type: string
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: Hopefully this is obvious by now.
          type: object
        order:
          description: If you want to use BNet's recommended order for rendering categories programmatically, use this value and compare it to other categories to determine the order in which they should be rendered. I don't feel great about putting this here, I won't lie.
          format: int32
          type: integer
        rewardEntries:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneRewardEntryDefinition"
          description: If this milestone can provide rewards, this will define the sets of rewards that can be earned, the conditions under which they can be acquired, internal data that we'll use at runtime to determine whether you've already earned or redeemed this set of rewards, and the category that this reward should be placed under.
          type: object
      type: object
    Destiny.Definitions.Milestones.DestinyMilestoneRewardEntryDefinition:
      description: The definition of a specific reward, which may be contained in a category of rewards and that has optional information about how it is obtained.
      properties:
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: For us to bother returning this info, we should be able to return some kind of information about why these rewards are grouped together. This is ideally that information. Look at how confident I am that this will always remain true.
          type: object
        items:
          description: The items you will get as rewards, and how much of it you'll get.
          items:
            $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          type: array
        order:
          description: If you want to follow BNet's ordering of these rewards, use this number within a given category to order the rewards. Yeah, I know. I feel dirty too.
          format: int32
          type: integer
        rewardEntryHash:
          description: The identifier for this reward entry. Runtime data will refer to reward entries by this hash. Only guaranteed unique within the specific Milestone.
          format: uint32
          type: integer
        rewardEntryIdentifier:
          description: The string identifier, if you care about it. Only guaranteed unique within the specific Milestone.
          type: string
        vendorHash:
          description: If this reward is redeemed at a Vendor, this is the hash of the Vendor to go to in order to redeem the reward. Use this hash to look up the DestinyVendorDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
      type: object
    Destiny.Definitions.Milestones.DestinyMilestoneType:
      $ref: "#/components/schemas/schema96"
    Destiny.Definitions.Milestones.DestinyMilestoneValueDefinition:
      description: "The definition for information related to a key/value pair that is relevant for a particular Milestone or component within the Milestone. \r

        This lets us more flexibly pass up information that's useful to someone, even if it's not necessarily us."
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        key:
          type: string
      type: object
    Destiny.Definitions.Milestones.DestinyMilestoneVendorDefinition:
      description: "If the Milestone or a component has vendors whose inventories could/should be displayed that are relevant to it, this will return the vendor in question. \r

        It also contains information we need to determine whether that vendor is actually relevant at the moment, given the user's current state."
      properties:
        vendorHash:
          description: The hash of the vendor whose wares should be shown as associated with the Milestone.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
      type: object
    Destiny.Definitions.PowerCaps.DestinyPowerCapDefinition:
      description: Defines a 'power cap' (limit) for gear items, based on the rarity tier and season of release.
      properties:
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        powerCap:
          description: The raw value for a power cap.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: PowerCaps
    Destiny.Definitions.Presentation.DestinyPresentationChildBlock:
      properties:
        displayStyle:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema66"
        parentPresentationNodeHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        presentationNodeType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema64"
      type: object
    Destiny.Definitions.Presentation.DestinyPresentationNodeBaseDefinition:
      description: This is the base class for all presentation system children. Presentation Nodes, Records, Collectibles, and Metrics.
      properties:
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        parentNodeHashes:
          description: A quick reference to presentation nodes that have this node as a child. Presentation nodes can be parented under multiple parents.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        presentationNodeType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema64"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        traitHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Traits.DestinyTraitDefinition"
        traitIds:
          items:
            type: string
          type: array
      type: object
    Destiny.Definitions.Presentation.DestinyPresentationNodeChildEntry:
      properties:
        nodeDisplayPriority:
          description: Use this value to sort the presentation node children in ascending order.
          format: uint32
          type: integer
        presentationNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
      type: object
    Destiny.Definitions.Presentation.DestinyPresentationNodeChildEntryBase:
      properties:
        nodeDisplayPriority:
          description: Use this value to sort the presentation node children in ascending order.
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.Presentation.DestinyPresentationNodeChildrenBlock:
      description: As/if presentation nodes begin to host more entities as children, these lists will be added to. One list property exists per type of entity that can be treated as a child of this presentation node, and each holds the identifier of the entity and any associated information needed to display the UI for that entity (if anything)
      properties:
        collectibles:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeCollectibleChildEntry"
          type: array
        craftables:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeCraftableChildEntry"
          type: array
        metrics:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeMetricChildEntry"
          type: array
        presentationNodes:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeChildEntry"
          type: array
        records:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeRecordChildEntry"
          type: array
      type: object
    Destiny.Definitions.Presentation.DestinyPresentationNodeCollectibleChildEntry:
      properties:
        collectibleHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Collectibles.DestinyCollectibleDefinition"
        nodeDisplayPriority:
          description: Use this value to sort the presentation node children in ascending order.
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.Presentation.DestinyPresentationNodeCraftableChildEntry:
      properties:
        craftableItemHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        nodeDisplayPriority:
          description: Use this value to sort the presentation node children in ascending order.
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition:
      description: "A PresentationNode is an entity that represents a logical grouping of other entities visually/organizationally.\r

        For now, Presentation Nodes may contain the following... but it may be used for more in the future:\r

        - Collectibles - Records (Or, as the public will call them, \"Triumphs.\" Don't ask me why we're overloading the term \"Triumph\", it still hurts me to think about it) - Metrics (aka Stat Trackers) - Other Presentation Nodes, allowing a tree of Presentation Nodes to be created\r

        Part of me wants to break these into conceptual definitions per entity being collected, but the possibility of these different types being mixed in the same UI and the possibility that it could actually be more useful to return the \"bare metal\" presentation node concept has resulted in me deciding against that for the time being.\r

        We'll see if I come to regret this as well."
      properties:
        children:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeChildrenBlock"
          description: The child entities contained by this presentation node.
          type: object
        completionRecordHash:
          description: If this presentation node has an associated "Record" that you can accomplish for completing its children, this is the identifier of that Record.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordDefinition"
        disableChildSubscreenNavigation:
          description: If this presentation node has children, but the game doesn't let you inspect the details of those children, that is indicated here.
          type: boolean
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        displayStyle:
          description: A hint for how to display this presentation node when it's shown in a list.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema66"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        maxCategoryRecordScore:
          format: int32
          type: integer
        nodeType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema64"
        objectiveHash:
          description: If this presentation node shows a related objective (for instance, if it tracks the progress of its children), the objective being tracked is indicated here.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
        originalIcon:
          description: The original icon for this presentation node, before we futzed with it.
          type: string
        parentNodeHashes:
          description: A quick reference to presentation nodes that have this node as a child. Presentation nodes can be parented under multiple parents.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        presentationNodeType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema64"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        requirements:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeRequirementsBlock"
          description: The requirements for being able to interact with this presentation node and its children.
          type: object
        rootViewIcon:
          description: Some presentation nodes are meant to be explicitly shown on the "root" or "entry" screens for the feature to which they are related. You should use this icon when showing them on such a view, if you have a similar "entry point" view in your UI. If you don't have a UI, then I guess it doesn't matter either way does it?
          type: string
        scope:
          description: Indicates whether this presentation node's state is determined on a per-character or on an account-wide basis.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema65"
        screenStyle:
          description: A hint for how to display this presentation node when it's shown in its own detail screen.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema67"
        traitHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Traits.DestinyTraitDefinition"
        traitIds:
          items:
            type: string
          type: array
      type: object
      x-mobile-manifest-name: PresentationNodes
    Destiny.Definitions.Presentation.DestinyPresentationNodeMetricChildEntry:
      properties:
        metricHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Metrics.DestinyMetricDefinition"
        nodeDisplayPriority:
          description: Use this value to sort the presentation node children in ascending order.
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.Presentation.DestinyPresentationNodeRecordChildEntry:
      properties:
        nodeDisplayPriority:
          description: Use this value to sort the presentation node children in ascending order.
          format: uint32
          type: integer
        recordHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordDefinition"
      type: object
    Destiny.Definitions.Presentation.DestinyPresentationNodeRequirementsBlock:
      description: Presentation nodes can be restricted by various requirements. This defines the rules of those requirements, and the message(s) to be shown if these requirements aren't met.
      properties:
        entitlementUnavailableMessage:
          description: If this node is not accessible due to Entitlements (for instance, you don't own the required game expansion), this is the message to show.
          type: string
      type: object
    Destiny.Definitions.Presentation.DestinyScoredPresentationNodeBaseDefinition:
      properties:
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        maxCategoryRecordScore:
          format: int32
          type: integer
        parentNodeHashes:
          description: A quick reference to presentation nodes that have this node as a child. Presentation nodes can be parented under multiple parents.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        presentationNodeType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema64"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        traitHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Traits.DestinyTraitDefinition"
        traitIds:
          items:
            type: string
          type: array
      type: object
    Destiny.Definitions.Progression.DestinyProgressionLevelRequirementDefinition:
      description: "These are pre-constructed collections of data that can be used to determine the Level Requirement for an item given a Progression to be tested (such as the Character's level).\r

        For instance, say a character receives a new Auto Rifle, and that Auto Rifle's DestinyInventoryItemDefinition.quality.progressionLevelRequirementHash property is pointing at one of these DestinyProgressionLevelRequirementDefinitions. Let's pretend also that the progressionHash it is pointing at is the Character Level progression. In that situation, the character's level will be used to interpolate a value in the requirementCurve property. The value picked up from that interpolation will be the required level for the item."
      properties:
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        progressionHash:
          description: "The progression whose level should be used to determine the level requirement.\r

            Look up the DestinyProgressionDefinition with this hash for more information about the progression in question."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionDefinition"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        requirementCurve:
          description: "A curve of level requirements, weighted by the related progressions' level.\r

            Interpolate against this curve with the character's progression level to determine what the level requirement of the generated item that is using this data will be."
          items:
            $ref: "#/components/schemas/Interpolation.InterpolationPointFloat"
          type: array
      type: object
      x-mobile-manifest-name: ProgressionLevelRequirements
    Destiny.Definitions.Records.DestinyRecordCompletionBlock:
      properties:
        ScoreValue:
          format: int32
          type: integer
        partialCompletionObjectiveCountThreshold:
          description: The number of objectives that must be completed before the objective is considered "complete"
          format: int32
          type: integer
        shouldFireToast:
          type: boolean
        toastStyle:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema69"
      type: object
    Destiny.Definitions.Records.DestinyRecordDefinition:
      properties:
        completionInfo:
          $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordCompletionBlock"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        expirationInfo:
          $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordExpirationBlock"
        forTitleGilding:
          type: boolean
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        intervalInfo:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordIntervalBlock"
          description: Some records have multiple 'interval' objectives, and the record may be claimed at each completed interval
          type: object
        loreHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Lore.DestinyLoreDefinition"
        objectiveHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
        parentNodeHashes:
          description: A quick reference to presentation nodes that have this node as a child. Presentation nodes can be parented under multiple parents.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        presentationInfo:
          $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationChildBlock"
        presentationNodeType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema64"
        recordValueStyle:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema68"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        requirements:
          $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeRequirementsBlock"
        rewardItems:
          description: "If there is any publicly available information about rewards earned for achieving this record, this is the list of those items.\r

            \ However, note that some records intentionally have \"hidden\" rewards. These will not be returned in this list."
          items:
            $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          type: array
        scope:
          description: Indicates whether this Record's state is determined on a per-character or on an account-wide basis.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema65"
        shouldShowLargeIcons:
          description: A hint to show a large icon for a reward
          type: boolean
        stateInfo:
          $ref: "#/components/schemas/Destiny.Definitions.Records.SchemaRecordStateBlock"
        titleInfo:
          $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordTitleBlock"
        traitHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Traits.DestinyTraitDefinition"
        traitIds:
          items:
            type: string
          type: array
      type: object
      x-mobile-manifest-name: Records
    Destiny.Definitions.Records.DestinyRecordExpirationBlock:
      description: If this record has an expiration after which it cannot be earned, this is some information about that expiration.
      properties:
        description:
          type: string
        hasExpiration:
          type: boolean
        icon:
          type: string
      type: object
    Destiny.Definitions.Records.DestinyRecordIntervalBlock:
      properties:
        intervalObjectives:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordIntervalObjective"
          type: array
        intervalRewards:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordIntervalRewards"
          type: array
        originalObjectiveArrayInsertionIndex:
          format: int32
          type: integer
      type: object
    Destiny.Definitions.Records.DestinyRecordIntervalObjective:
      properties:
        intervalObjectiveHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
        intervalScoreValue:
          format: int32
          type: integer
      type: object
    Destiny.Definitions.Records.DestinyRecordIntervalRewards:
      properties:
        intervalRewardItems:
          items:
            $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          type: array
      type: object
    Destiny.Definitions.Records.DestinyRecordTitleBlock:
      properties:
        gildingTrackingRecordHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordDefinition"
        hasTitle:
          type: boolean
        titlesByGender:
          additionalProperties:
            type: string
          type: object
        titlesByGenderHash:
          additionalProperties:
            type: string
          description: For those who prefer to use the definitions.
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyGenderDefinition"
      type: object
    Destiny.Definitions.Records.SchemaRecordStateBlock:
      properties:
        featuredPriority:
          format: int32
          type: integer
        obscuredString:
          type: string
      type: object
    Destiny.Definitions.Reporting.DestinyReportReasonCategoryDefinition:
      description: "If you're going to report someone for a Terms of Service violation, you need to choose a category and reason for the report. This definition holds both the categories and the reasons within those categories, for simplicity and my own laziness' sake.\r

        Note tha this means that, to refer to a Reason by reasonHash, you need a combination of the reasonHash *and* the associated ReasonCategory's hash: there are some reasons defined under multiple categories."
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        reasons:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Definitions.Reporting.DestinyReportReasonDefinition"
          description: The specific reasons for the report under this category.
          type: object
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: ReportReasonCategories
    Destiny.Definitions.Reporting.DestinyReportReasonDefinition:
      description: "A specific reason for being banned. Only accessible under the related category (DestinyReportReasonCategoryDefinition) under which it is shown. Note that this means that report reasons' reasonHash are not globally unique: and indeed, entries like \"Other\" are defined under most categories for example."
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        reasonHash:
          description: "The identifier for the reason: they are only guaranteed unique under the Category in which they are found."
          format: uint32
          type: integer
      type: object
    Destiny.Definitions.Seasons.DestinyEventCardDefinition:
      description: "Defines the properties of an 'Event Card' in Destiny 2, to coincide with a seasonal event for additional challenges, premium rewards, a new seal, and a special title. For example: Solstice of Heroes 2022."
      properties:
        color:
          $ref: "#/components/schemas/Destiny.Misc.DestinyColor"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        endTime:
          format: int64
          type: integer
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        images:
          $ref: "#/components/schemas/Destiny.Definitions.Seasons.DestinyEventCardImages"
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        linkRedirectPath:
          type: string
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        sealPresentationNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        ticketCurrencyItemHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        ticketVendorCategoryHash:
          format: uint32
          type: integer
        ticketVendorHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
        triumphsPresentationNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
      type: object
      x-mobile-manifest-name: EventCards
    Destiny.Definitions.Seasons.DestinyEventCardImages:
      properties:
        cardCompleteImagePath:
          type: string
        cardCompleteWrapImagePath:
          type: string
        cardIncompleteImagePath:
          type: string
        progressIconImagePath:
          type: string
        themeBackgroundImagePath:
          type: string
        unownedCardSleeveImagePath:
          type: string
        unownedCardSleeveWrapImagePath:
          type: string
      type: object
    Destiny.Definitions.Seasons.DestinySeasonDefinition:
      description: 'Defines a canonical "Season" of Destiny: a range of a few months where the game highlights certain challenges, provides new loot, has new Clan-related rewards and celebrates various seasonal events.'
      properties:
        artifactItemHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        backgroundImagePath:
          type: string
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        endDate:
          format: date-time
          type: string
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        preview:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Seasons.DestinySeasonPreviewDefinition"
          description: Optional - Defines the promotional text, images, and links to preview this season.
          type: object
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        sealPresentationNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        seasonNumber:
          format: int32
          type: integer
        seasonPassHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Seasons.DestinySeasonPassDefinition"
        seasonPassProgressionHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionDefinition"
        seasonalChallengesPresentationNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Presentation.DestinyPresentationNodeDefinition"
        startDate:
          format: date-time
          type: string
      type: object
      x-mobile-manifest-name: Seasons
    Destiny.Definitions.Seasons.DestinySeasonPassDefinition:
      properties:
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        prestigeProgressionHash:
          description: "I know what you're thinking, but I promise we're not going to duplicate and drown you. Instead, we're giving you sweet, sweet power bonuses.\r

            \ Prestige progression is further progression that you can make on the Season pass after you gain max ranks, that will ultimately increase your power/light level over the theoretical limit."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionDefinition"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        rewardProgressionHash:
          description: This is the progression definition related to the progression for the initial levels 1-100 that provide item rewards for the Season pass. Further experience after you reach the limit is provided in the "Prestige" progression referred to by prestigeProgressionHash.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionDefinition"
      type: object
      x-mobile-manifest-name: SeasonPasses
    Destiny.Definitions.Seasons.DestinySeasonPreviewDefinition:
      description: Defines the promotional text, images, and links to preview this season.
      properties:
        description:
          description: A localized description of the season.
          type: string
        images:
          description: A list of images to preview the seasonal content. Should have at least three to show.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Seasons.DestinySeasonPreviewImageDefinition"
          type: array
        linkPath:
          description: "A relative path to learn more about the season. Web browsers should be automatically redirected to the user's Bungie.net locale. For example: \"/SeasonOfTheChosen\" will redirect to \"/7/en/Seasons/SeasonOfTheChosen\" for English users."
          type: string
        videoLink:
          description: An optional link to a localized video, probably YouTube.
          type: string
      type: object
    Destiny.Definitions.Seasons.DestinySeasonPreviewImageDefinition:
      description: Defines the thumbnail icon, high-res image, and video link for promotional images
      properties:
        highResImage:
          description: An optional path to a high-resolution image, probably 1920x1080.
          type: string
        thumbnailImage:
          description: A thumbnail icon path to preview seasonal content, probably 480x270.
          type: string
      type: object
    Destiny.Definitions.Social.DestinySocialCommendationDefinition:
      properties:
        activityGivingLimit:
          format: int32
          type: integer
        cardImagePath:
          type: string
        color:
          $ref: "#/components/schemas/Destiny.Misc.DestinyColor"
        displayActivities:
          description: The display properties for the the activities that this commendation is available in.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          type: array
        displayPriority:
          format: int32
          type: integer
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        parentCommendationNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Social.DestinySocialCommendationNodeDefinition"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: SocialCommendations
    Destiny.Definitions.Social.DestinySocialCommendationNodeDefinition:
      properties:
        childCommendationHashes:
          description: A list of hashes that map to child commendations.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Social.DestinySocialCommendationDefinition"
        childCommendationNodeHashes:
          description: A list of hashes that map to child commendation nodes. Only the root commendations node is expected to have child nodes.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Social.DestinySocialCommendationNodeDefinition"
        color:
          allOf:
            - $ref: "#/components/schemas/Destiny.Misc.DestinyColor"
          description: The color associated with this group of commendations.
          type: object
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        parentCommendationNodeHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Social.DestinySocialCommendationNodeDefinition"
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: SocialCommendationNodes
    Destiny.Definitions.Sockets.DestinyInsertPlugActionDefinition:
      description: Data related to what happens while a plug is being inserted, mostly for UI purposes.
      properties:
        actionExecuteSeconds:
          description: How long it takes for the Plugging of the item to be completed once it is initiated, if you care.
          format: int32
          type: integer
        actionType:
          description: The type of action being performed when you act on this Socket Type. The most common value is "insert plug", but there are others as well (for instance, a "Masterwork" socket may allow for Re-initialization, and an Infusion socket allows for items to be consumed to upgrade the item)
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema32"
      type: object
    Destiny.Definitions.Sockets.DestinyPlugSetDefinition:
      description: "Sometimes, we have large sets of reusable plugs that are defined identically and thus can (and in some cases, are so large that they *must*) be shared across the places where they are used. These are the definitions for those reusable sets of plugs. \r

        \ See DestinyItemSocketEntryDefinition.plugSource and reusablePlugSetHash for the relationship between these reusable plug sets and the sockets that leverage them (for starters, Emotes).\r

        \ As of the release of Shadowkeep (Late 2019), these will begin to be sourced from game content directly - which means there will be many more of them, but it also means we may not get all data that we used to get for them.\r

        \ DisplayProperties, in particular, will no longer be guaranteed to contain valid information. We will make a best effort to guess what ought to be populated there where possible, but it will be invalid for many/most plug sets."
      properties:
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: If you want to show these plugs in isolation, these are the display properties for them.
          type: object
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        isFakePlugSet:
          description: "Mostly for our debugging or reporting bugs, BNet is making \"fake\" plug sets in a desperate effort to reduce socket sizes.\r

            \ If this is true, the plug set was generated by BNet: if it looks wrong, that's a good indicator that it's bungie.net that fucked this up."
          type: boolean
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        reusablePlugItems:
          description: "This is a list of pre-determined plugs that can be plugged into this socket, without the character having the plug in their inventory.\r

            If this list is populated, you will not be allowed to plug an arbitrary item in the socket: you will only be able to choose from one of these reusable plugs."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyItemSocketEntryPlugItemRandomizedDefinition"
          type: array
      type: object
      x-mobile-manifest-name: PlugSets
    Destiny.Definitions.Sockets.DestinyPlugWhitelistEntryDefinition:
      description: "Defines a plug \"Category\" that is allowed to be plugged into a socket of this type.\r

        This should be compared against a given plug item's DestinyInventoryItemDefinition.plug.plugCategoryHash, which indicates the plug item's category."
      properties:
        categoryHash:
          description: "The hash identifier of the Plug Category to compare against the plug item's plug.plugCategoryHash.\r

            Note that this does NOT relate to any Definition in itself, it is only used for comparison purposes."
          format: uint32
          type: integer
        categoryIdentifier:
          description: The string identifier for the category, which is here mostly for debug purposes.
          type: string
        reinitializationPossiblePlugHashes:
          description: "The list of all plug items (DestinyInventoryItemDefinition) that the socket may randomly be populated with when reinitialized.\r

            Which ones you should actually show are determined by the plug being inserted into the socket, and the socket’s type.\r

            When you inspect the plug that could go into a Masterwork Socket, look up the socket type of the socket being inspected and find the DestinySocketTypeDefinition.\r

            Then, look at the Plugs that can fit in that socket. Find the Whitelist in the DestinySocketTypeDefinition that matches the plug item’s categoryhash.\r

            That whitelist entry will potentially have a new “reinitializationPossiblePlugHashes” property.If it does, that means we know what it will roll if you try to insert this plug into this socket."
          items:
            format: uint32
            type: integer
          type: array
      type: object
    Destiny.Definitions.Sockets.DestinySocketCategoryDefinition:
      description: "Sockets on an item are organized into Categories visually.\r

        You can find references to the socket category defined on an item's DestinyInventoryItemDefinition.sockets.socketCategories property.\r

        This has the display information for rendering the categories' header, and a hint for how the UI should handle showing this category.\r

        The shitty thing about this, however, is that the socket categories' UI style can be overridden by the item's UI style. For instance, the Socket Category used by Emote Sockets says it's \"consumable,\" but that's a lie: they're all reusable, and overridden by the detail UI pages in ways that we can't easily account for in the API.\r

        As a result, I will try to compile these rules into the individual sockets on items, and provide the best hint possible there through the plugSources property. In the future, I may attempt to use this information in conjunction with the item to provide a more usable UI hint on the socket layer, but for now improving the consistency of plugSources is the best I have time to provide. (See https://github.com/Bungie-net/api/issues/522 for more info)"
      properties:
        categoryStyle:
          description: Same as uiCategoryStyle, but in a more usable enumeration form.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema33"
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        uiCategoryStyle:
          description: "A string hinting to the game's UI system about how the sockets in this category should be displayed.\r

            BNet doesn't use it: it's up to you to find valid values and make your own special UI if you want to honor this category style."
          format: uint32
          type: integer
      type: object
      x-mobile-manifest-name: SocketCategories
    Destiny.Definitions.Sockets.DestinySocketTypeDefinition:
      description: "All Sockets have a \"Type\": a set of common properties that determine when the socket allows Plugs to be inserted, what Categories of Plugs can be inserted, and whether the socket is even visible at all given the current game/character/account state.\r

        See DestinyInventoryItemDefinition for more information about Socketed items and Plugs."
      properties:
        alwaysRandomizeSockets:
          type: boolean
        avoidDuplicatesOnInitialization:
          type: boolean
        currencyScalars:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinySocketTypeScalarMaterialRequirementEntry"
          type: array
        displayProperties:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
          description: There are fields for this display data, but they appear to be unpopulated as of now. I am not sure where in the UI these would show if they even were populated, but I will continue to return this data in case it becomes useful.
          type: object
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        hideDuplicateReusablePlugs:
          type: boolean
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        insertAction:
          allOf:
            - $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinyInsertPlugActionDefinition"
          description: Defines what happens when a plug is inserted into sockets of this type.
          type: object
        isPreviewEnabled:
          type: boolean
        overridesUiAppearance:
          description: This property indicates if the socket type determines whether Emblem icons and nameplates should be overridden by the inserted plug item's icon and nameplate.
          type: boolean
        plugWhitelist:
          description: "A list of Plug \"Categories\" that are allowed to be plugged into sockets of this type.\r

            These should be compared against a given plug item's DestinyInventoryItemDefinition.plug.plugCategoryHash, which indicates the plug item's category.\r

            If the plug's category matches any whitelisted plug, or if the whitelist is empty, it is allowed to be inserted."
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinyPlugWhitelistEntryDefinition"
          type: array
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
        socketCategoryHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Sockets.DestinySocketCategoryDefinition"
        visibility:
          description: Sometimes a socket isn't visible. These are some of the conditions under which sockets of this type are not visible. Unfortunately, the truth of visibility is much, much more complex. Best to rely on the live data for whether the socket is visible and enabled.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema31"
      type: object
      x-mobile-manifest-name: SocketTypes
    Destiny.Definitions.Sockets.DestinySocketTypeScalarMaterialRequirementEntry:
      properties:
        currencyItemHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        scalarValue:
          format: int32
          type: integer
      type: object
    Destiny.Definitions.Sources.DestinyItemSourceDefinition:
      description: "Properties of a DestinyInventoryItemDefinition that store all of the information we were able to discern about how the item spawns, and where you can find the item.\r

        Items will have many of these sources, one per level at which it spawns, to try and give more granular data about where items spawn for specific level ranges."
      properties:
        computedStats:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemStatDefinition"
          description: The stats computed for this level/quality range.
          type: object
        level:
          description: "The level at which the item spawns. Essentially the Primary Key for this source data: there will be multiple of these source entries per item that has source data, grouped by the level at which the item spawns."
          format: int32
          type: integer
        maxLevelRequired:
          description: The maximum Character Level required for equipping the item when the item spawns at the item level defined on this DestinyItemSourceDefinition, as far as we saw in our processing.
          format: int32
          type: integer
        maxQuality:
          description: The maximum quality at which the item spawns for this level.
          format: int32
          type: integer
        minLevelRequired:
          description: The minimum Character Level required for equipping the item when the item spawns at the item level defined on this DestinyItemSourceDefinition, as far as we saw in our processing.
          format: int32
          type: integer
        minQuality:
          description: The minimum Quality at which the item spawns for this level. Examine DestinyInventoryItemDefinition for more information about what Quality means. Just don't ask Phaedrus about it, he'll never stop talking and you'll have to write a book about it.
          format: int32
          type: integer
        sourceHashes:
          description: The DestinyRewardSourceDefinitions found that can spawn the item at this level.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyRewardSourceDefinition"
      type: object
    Destiny.Definitions.Traits.DestinyTraitDefinition:
      properties:
        displayHint:
          description: "An identifier for how this trait can be displayed. For example: a 'keyword' hint to show an explanation for certain related terms."
          type: string
        displayProperties:
          $ref: "#/components/schemas/Destiny.Definitions.Common.DestinyDisplayPropertiesDefinition"
        hash:
          description: "The unique identifier for this entity. Guaranteed to be unique for the type of entity, but not globally.\r

            When entities refer to each other in Destiny content, it is this hash that they are referring to."
          format: uint32
          type: integer
        index:
          description: The index of the entity as it was found in the investment tables.
          format: int32
          type: integer
        redacted:
          description: If this is true, then there is an entity with this identifier/type combination, but BNet is not yet allowed to show it. Sorry!
          type: boolean
      type: object
      x-mobile-manifest-name: Traits
    Destiny.Definitions.Vendors.DestinyVendorLocationDefinition:
      description: These definitions represent vendors' locations and relevant display information at different times in the game.
      properties:
        backgroundImagePath:
          description: The relative path to the background image representing this Vendor at this location, for use in a banner.
          type: string
        destinationHash:
          description: The hash identifier for a Destination at which this vendor may be located. Each destination where a Vendor may exist will only ever have a single entry.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDestinationDefinition"
      type: object
    Destiny.DestinyActivity:
      description: "Represents the \"Live\" data that we can obtain about a Character's status with a specific Activity. This will tell you whether the character can participate in the activity, as well as some other basic mutable information. \r

        Meant to be combined with static DestinyActivityDefinition data for a full picture of the Activity."
      properties:
        activityHash:
          description: The hash identifier of the Activity. Use this to look up the DestinyActivityDefinition of the activity.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        booleanActivityOptions:
          additionalProperties:
            type: boolean
          description: "The set of activity options for this activity, keyed by an identifier that's unique for this activity (not guaranteed to be unique between or across all activities, though should be unique for every *variant* of a given *conceptual* activity: for instance, the original D2 Raid has many variant DestinyActivityDefinitions. While other activities could potentially have the same option hashes, for any given D2 base Raid variant the hash will be unique).\r

            As a concrete example of this data, the hashes you get for Raids will correspond to the currently active \"Challenge Mode\".\r

            We don't have any human readable information for these, but saavy 3rd party app users could manually associate the key (a hash identifier for the \"option\" that is enabled/disabled) and the value (whether it's enabled or disabled presently)\r

            On our side, we don't necessarily even know what these are used for (the game designers know, but we don't), and we have no human readable data for them. In order to use them, you will have to do some experimentation."
          type: object
        canJoin:
          description: If true, the user is allowed to join with another Fireteam in this activity.
          type: boolean
        canLead:
          description: If true, the user is allowed to lead a Fireteam into this activity.
          type: boolean
        challenges:
          items:
            $ref: "#/components/schemas/Destiny.Challenges.DestinyChallengeStatus"
          type: array
        difficultyTier:
          description: A DestinyActivityDifficultyTier enum value indicating the difficulty of the activity.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema97"
        displayLevel:
          description: The difficulty level of the activity, if applicable.
          format: int32
          type: integer
        isCompleted:
          description: If true, we both have the ability to know that the user has completed this activity and they have completed it. Unfortunately, we can't necessarily know this for all activities. As such, this should probably only be used if you already know in advance which specific activities you wish to check.
          type: boolean
        isNew:
          description: If true, then the activity should have a "new" indicator in the Director UI.
          type: boolean
        isVisible:
          description: If true, the user should be able to see this activity.
          type: boolean
        loadoutRequirementIndex:
          description: If returned, this is the index into the DestinyActivityDefinition's "loadouts" property, indicating the currently active loadout requirements.
          format: int32
          type: integer
        modifierHashes:
          description: "If the activity has modifiers, this will be the list of modifiers that all variants have in common. Perform lookups against DestinyActivityModifierDefinition which defines the modifier being applied to get at the modifier data.\r

            Note that, in the DestiyActivityDefinition, you will see many more modifiers than this being referred to: those are all *possible* modifiers for the activity, not the active ones. Use only the active ones to match what's really live."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition"
        recommendedLight:
          description: The recommended light level for the activity, if applicable.
          format: int32
          type: integer
      type: object
    Destiny.DestinyActivityDifficultyTier:
      $ref: "#/components/schemas/schema97"
    Destiny.DestinyActivityModeCategory:
      $ref: "#/components/schemas/schema61"
    Destiny.DestinyActivityNavPointType:
      $ref: "#/components/schemas/schema60"
    Destiny.DestinyAmmunitionType:
      $ref: "#/components/schemas/schema41"
    Destiny.DestinyBreakerType:
      $ref: "#/components/schemas/schema29"
    Destiny.DestinyClass:
      $ref: "#/components/schemas/schema28"
    Destiny.DestinyCollectibleState:
      $ref: "#/components/schemas/schema90"
    Destiny.DestinyComponentType:
      $ref: "#/components/schemas/schema2"
    Destiny.DestinyEnergyType:
      $ref: "#/components/schemas/schema72"
    Destiny.DestinyEquipItemResult:
      description: The results of an Equipping operation performed through the Destiny API.
      properties:
        equipStatus:
          description: A PlatformErrorCodes enum indicating whether it succeeded, and if it failed why.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema1"
        itemInstanceId:
          description: The instance ID of the item in question (all items that can be equipped must, but definition, be Instanced and thus have an Instance ID that you can use to refer to them)
          format: int64
          type: integer
      type: object
    Destiny.DestinyEquipItemResults:
      description: The results of a bulk Equipping operation performed through the Destiny API.
      properties:
        equipResults:
          items:
            $ref: "#/components/schemas/Destiny.DestinyEquipItemResult"
          type: array
      type: object
    Destiny.DestinyGamePrivacySetting:
      $ref: "#/components/schemas/schema92"
    Destiny.DestinyGameVersions:
      $ref: "#/components/schemas/schema87"
    Destiny.DestinyGatingScope:
      $ref: "#/components/schemas/schema50"
    Destiny.DestinyGender:
      $ref: "#/components/schemas/schema42"
    Destiny.DestinyGraphNodeState:
      $ref: "#/components/schemas/schema62"
    Destiny.DestinyItemQuantity:
      description: Used in a number of Destiny contracts to return data about an item stack and its quantity. Can optionally return an itemInstanceId if the item is instanced - in which case, the quantity returned will be 1. If it's not... uh, let me know okay? Thanks.
      properties:
        hasConditionalVisibility:
          description: "Indicates that this item quantity may be conditionally shown or hidden, based on various sources of state. For example: server flags, account state, or character progress."
          type: boolean
        itemHash:
          description: The hash identifier for the item in question. Use it to look up the item's DestinyInventoryItemDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        itemInstanceId:
          description: If this quantity is referring to a specific instance of an item, this will have the item's instance ID. Normally, this will be null.
          format: int64
          type: integer
        quantity:
          description: The amount of the item needed/available depending on the context of where DestinyItemQuantity is being used.
          format: int32
          type: integer
      type: object
    Destiny.DestinyItemSortType:
      $ref: "#/components/schemas/schema48"
    Destiny.DestinyItemSubType:
      $ref: "#/components/schemas/schema27"
    Destiny.DestinyItemType:
      $ref: "#/components/schemas/schema26"
    Destiny.DestinyJoinClosedReasons:
      $ref: "#/components/schemas/schema93"
    Destiny.DestinyObjectiveGrantStyle:
      $ref: "#/components/schemas/schema54"
    Destiny.DestinyObjectiveUiStyle:
      $ref: "#/components/schemas/schema53"
    Destiny.DestinyPartyMemberStates:
      $ref: "#/components/schemas/schema91"
    Destiny.DestinyPresentationDisplayStyle:
      $ref: "#/components/schemas/schema66"
    Destiny.DestinyPresentationNodeState:
      $ref: "#/components/schemas/schema88"
    Destiny.DestinyPresentationNodeType:
      $ref: "#/components/schemas/schema64"
    Destiny.DestinyPresentationScreenStyle:
      $ref: "#/components/schemas/schema67"
    Destiny.DestinyProgression:
      description: Information about a current character's status with a Progression. A progression is a value that can increase with activity and has levels. Think Character Level and Reputation Levels. Combine this "live" data with the related DestinyProgressionDefinition for a full picture of the Progression.
      properties:
        currentProgress:
          description: This is the total amount of progress obtained overall for this progression (for instance, the total amount of Character Level experience earned)
          format: int32
          type: integer
        currentResetCount:
          description: The number of resets of this progression you've executed this season, if applicable to this progression.
          format: int32
          type: integer
        dailyLimit:
          description: If this progression has a daily limit, this is that limit.
          format: int32
          type: integer
        dailyProgress:
          description: The amount of progress earned today for this progression.
          format: int32
          type: integer
        level:
          description: This is the level of the progression (for instance, the Character Level).
          format: int32
          type: integer
        levelCap:
          description: This is the maximum possible level you can achieve for this progression (for example, the maximum character level obtainable)
          format: int32
          type: integer
        nextLevelAt:
          description: The total amount of progression (i.e. "Experience") needed in order to reach the next level.
          format: int32
          type: integer
        progressToNextLevel:
          description: The amount of progression (i.e. "Experience") needed to reach the next level of this Progression. Jeez, progression is such an overloaded word.
          format: int32
          type: integer
        progressionHash:
          description: The hash identifier of the Progression in question. Use it to look up the DestinyProgressionDefinition in static data.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionDefinition"
        rewardItemStates:
          description: Information about historical rewards for this progression, if there is any data for it.
          items:
            description: Represents the different states a progression reward item can be in.
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema22"
          type: array
        seasonResets:
          description: Information about historical resets of this progression, if there is any data for it.
          items:
            $ref: "#/components/schemas/Destiny.DestinyProgressionResetEntry"
          type: array
        stepIndex:
          description: Progressions define their levels in "steps". Since the last step may be repeatable, the user may be at a higher level than the actual Step achieved in the progression. Not necessarily useful, but potentially interesting for those cruising the API. Relate this to the "steps" property of the DestinyProgression to see which step the user is on, if you care about that. (Note that this is Content Version dependent since it refers to indexes.)
          format: int32
          type: integer
        weeklyLimit:
          description: If this progression has a weekly limit, this is that limit.
          format: int32
          type: integer
        weeklyProgress:
          description: The amount of progress earned toward this progression in the current week.
          format: int32
          type: integer
      type: object
    Destiny.DestinyProgressionResetEntry:
      description: "Represents a season and the number of resets you had in that season.\r

        \ We do not necessarily - even for progressions with resets - track it over all seasons. So be careful and check the season numbers being returned."
      properties:
        resets:
          format: int32
          type: integer
        season:
          format: int32
          type: integer
      type: object
    Destiny.DestinyProgressionRewardItemAcquisitionBehavior:
      $ref: "#/components/schemas/schema75"
    Destiny.DestinyProgressionRewardItemState:
      $ref: "#/components/schemas/schema22"
    Destiny.DestinyProgressionScope:
      $ref: "#/components/schemas/schema23"
    Destiny.DestinyProgressionStepDisplayEffect:
      $ref: "#/components/schemas/schema24"
    Destiny.DestinyRace:
      $ref: "#/components/schemas/schema94"
    Destiny.DestinyRecordState:
      $ref: "#/components/schemas/schema89"
    Destiny.DestinyRecordToastStyle:
      $ref: "#/components/schemas/schema69"
    Destiny.DestinyRecordValueStyle:
      $ref: "#/components/schemas/schema68"
    Destiny.DestinyScope:
      $ref: "#/components/schemas/schema65"
    Destiny.DestinySocketCategoryStyle:
      $ref: "#/components/schemas/schema33"
    Destiny.DestinySocketVisibility:
      $ref: "#/components/schemas/schema31"
    Destiny.DestinyStat:
      description: Represents a stat on an item *or* Character (NOT a Historical Stat, but a physical attribute stat like Attack, Defense etc...)
      properties:
        statHash:
          description: The hash identifier for the Stat. Use it to look up the DestinyStatDefinition for static data about the stat.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatDefinition"
        value:
          description: The current value of the Stat.
          format: int32
          type: integer
      type: object
    Destiny.DestinyStatAggregationType:
      $ref: "#/components/schemas/schema38"
    Destiny.DestinyStatCategory:
      $ref: "#/components/schemas/schema39"
    Destiny.DestinyTalentNode:
      description: "I see you've come to find out more about Talent Nodes. I'm so sorry. Talent Nodes are the conceptual, visual nodes that appear on Talent Grids. Talent Grids, in Destiny 1, were found on almost every instanced item: they had Nodes that could be activated to change the properties of the item. In Destiny 2, Talent Grids only exist for Builds/Subclasses, and while the basic concept is the same (Nodes can be activated once you've gained sufficient Experience on the Item, and provide effects), there are some new concepts from Destiny 1. Examine DestinyTalentGridDefinition and its subordinates for more information. This is the \"Live\" information for the current status of a Talent Node on a specific item. Talent Nodes have many Steps, but only one can be active at any one time: and it is the Step that determines both the visual and the game state-changing properties that the Node provides. Examine this and DestinyTalentNodeStepDefinition carefully. *IMPORTANT NOTE* Talent Nodes are, unfortunately, Content Version DEPENDENT. Though they refer to hashes for Nodes and Steps, those hashes are not guaranteed to be immutable across content versions. This is a source of great exasperation for me, but as a result anyone using Talent Grid data must ensure that the content version of their static content matches that of the server responses before showing or making decisions based on talent grid data."
      properties:
        activationGridLevel:
          description: The progression level required on the Talent Grid in order to be able to activate this talent node. Talent Grids have their own Progression - similar to Character Level, but in this case it is experience related to the item itself.
          format: int32
          type: integer
        hidden:
          description: Whether or not the talent node is actually visible in the game's UI. Whether you want to show it in your own UI is up to you! I'm not gonna tell you who to sock it to.
          type: boolean
        isActivated:
          description: "If true, the node is activated: it's current step then provides its benefits."
          type: boolean
        materialsToUpgrade:
          description: If the node has material requirements to be activated, this is the list of those requirements.
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyMaterialRequirement"
          type: array
        nodeHash:
          description: The hash of the Talent Node being referred to (in DestinyTalentGridDefinition.nodes). Deceptively CONTENT VERSION DEPENDENT. We have no guarantee of the hash's immutability between content versions.
          format: uint32
          type: integer
        nodeIndex:
          description: The index of the Talent Node being referred to (an index into DestinyTalentGridDefinition.nodes[]). CONTENT VERSION DEPENDENT.
          format: int32
          type: integer
        nodeStatsBlock:
          allOf:
            - $ref: "#/components/schemas/Destiny.DestinyTalentNodeStatBlock"
          description: This property has some history. A talent grid can provide stats on both the item it's related to and the character equipping the item. This returns data about those stat bonuses.
          type: object
        progressPercent:
          description: If you want to show a progress bar or circle for how close this talent node is to being activate-able, this is the percentage to show. It follows the node's underlying rules about when the progress bar should first show up, and when it should be filled.
          format: float
          type: number
        state:
          description: "An DestinyTalentNodeState enum value indicating the node's state: whether it can be activated or swapped, and why not if neither can be performed."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema99"
        stepIndex:
          description: "The currently relevant Step for the node. It is this step that has rendering data for the node and the benefits that are provided if the node is activated. (the actual rules for benefits provided are extremely complicated in theory, but with how Talent Grids are being used in Destiny 2 you don't have to worry about a lot of those old Destiny 1 rules.) This is an index into: DestinyTalentGridDefinition.nodes[nodeIndex].steps[stepIndex]"
          format: int32
          type: integer
      type: object
    Destiny.DestinyTalentNodeStatBlock:
      description: This property has some history. A talent grid can provide stats on both the item it's related to and the character equipping the item. This returns data about those stat bonuses.
      properties:
        currentStepStats:
          description: The stat benefits conferred when this talent node is activated for the current Step that is active on the node.
          items:
            $ref: "#/components/schemas/Destiny.DestinyStat"
          type: array
        nextStepStats:
          description: 'This is a holdover from the old days of Destiny 1, when a node could be activated multiple times, conferring multiple steps worth of benefits: you would use this property to show what activating the "next" step on the node would provide vs. what the current step is providing. While Nodes are currently not being used this way, the underlying system for this functionality still exists. I hesitate to remove this property while the ability for designers to make such a talent grid still exists. Whether you want to show it is up to you.'
          items:
            $ref: "#/components/schemas/Destiny.DestinyStat"
          type: array
      type: object
    Destiny.DestinyTalentNodeState:
      $ref: "#/components/schemas/schema99"
    Destiny.DestinyUnlockStatus:
      description: "Indicates the status of an \"Unlock Flag\" on a Character or Profile.\r

        These are individual bits of state that can be either set or not set, and sometimes provide interesting human-readable information in their related DestinyUnlockDefinition."
      properties:
        isSet:
          description: Whether the unlock flag is set.
          type: boolean
        unlockHash:
          description: The hash identifier for the Unlock Flag. Use to lookup DestinyUnlockDefinition for static data. Not all unlocks have human readable data - in fact, most don't. But when they do, it can be very useful to show. Even if they don't have human readable data, you might be able to infer the meaning of an unlock flag with a bit of experimentation...
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyUnlockDefinition"
      type: object
    Destiny.DestinyUnlockValueUIStyle:
      $ref: "#/components/schemas/schema52"
    Destiny.DestinyVendorFilter:
      description: Indicates the type of filter to apply to Vendor results.
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: ApiPurchasable
          numericValue: "1"
    Destiny.DestinyVendorInteractionRewardSelection:
      $ref: "#/components/schemas/schema46"
    Destiny.DestinyVendorItemRefundPolicy:
      $ref: "#/components/schemas/schema49"
    Destiny.DestinyVendorItemState:
      $ref: "#/components/schemas/schema101"
    Destiny.DestinyVendorProgressionType:
      $ref: "#/components/schemas/schema43"
    Destiny.DestinyVendorReplyType:
      $ref: "#/components/schemas/schema47"
    Destiny.DyeReference:
      properties:
        channelHash:
          format: uint32
          type: integer
        dyeHash:
          format: uint32
          type: integer
      type: object
    Destiny.Entities.Characters.DestinyCharacterActivitiesComponent:
      description: This component holds activity data for a character. It will tell you about the character's current activity status, as well as activities that are available to the user.
      properties:
        availableActivities:
          description: The list of activities that the user can play.
          items:
            $ref: "#/components/schemas/Destiny.DestinyActivity"
          type: array
        currentActivityHash:
          description: "If the user is in an activity, this will be the hash of the Activity being played. Note that you must combine this info with currentActivityModeHash to get a real picture of what the user is doing right now. For instance, PVP \"Activities\" are just maps: it's the ActivityMode that determines what type of PVP game they're playing."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        currentActivityModeHash:
          description: If the user is in an activity, this will be the hash of the activity mode being played. Combine with currentActivityHash to give a person a full picture of what they're doing right now.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityModeDefinition"
        currentActivityModeHashes:
          description: If the user is in an activity, this will be the hashes of the DestinyActivityModeDefinition being played. Combine with currentActivityHash to give a person a full picture of what they're doing right now.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityModeDefinition"
        currentActivityModeType:
          description: And the current activity's most specific mode type, if it can be found.
          enum:
            - "0"
            - "2"
            - "3"
            - "4"
            - "5"
            - "6"
            - "7"
            - "9"
            - "10"
            - "11"
            - "12"
            - "13"
            - "15"
            - "16"
            - "17"
            - "18"
            - "19"
            - "20"
            - "21"
            - "22"
            - "24"
            - "25"
            - "26"
            - "27"
            - "28"
            - "29"
            - "30"
            - "31"
            - "32"
            - "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"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: Story
              numericValue: "2"
            - identifier: Strike
              numericValue: "3"
            - identifier: Raid
              numericValue: "4"
            - identifier: AllPvP
              numericValue: "5"
            - identifier: Patrol
              numericValue: "6"
            - identifier: AllPvE
              numericValue: "7"
            - identifier: Reserved9
              numericValue: "9"
            - identifier: Control
              numericValue: "10"
            - identifier: Reserved11
              numericValue: "11"
            - description: Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
              identifier: Clash
              numericValue: "12"
            - identifier: Reserved13
              numericValue: "13"
            - identifier: CrimsonDoubles
              numericValue: "15"
            - identifier: Nightfall
              numericValue: "16"
            - identifier: HeroicNightfall
              numericValue: "17"
            - identifier: AllStrikes
              numericValue: "18"
            - identifier: IronBanner
              numericValue: "19"
            - identifier: Reserved20
              numericValue: "20"
            - identifier: Reserved21
              numericValue: "21"
            - identifier: Reserved22
              numericValue: "22"
            - identifier: Reserved24
              numericValue: "24"
            - identifier: AllMayhem
              numericValue: "25"
            - identifier: Reserved26
              numericValue: "26"
            - identifier: Reserved27
              numericValue: "27"
            - identifier: Reserved28
              numericValue: "28"
            - identifier: Reserved29
              numericValue: "29"
            - identifier: Reserved30
              numericValue: "30"
            - identifier: Supremacy
              numericValue: "31"
            - identifier: PrivateMatchesAll
              numericValue: "32"
            - identifier: Survival
              numericValue: "37"
            - identifier: Countdown
              numericValue: "38"
            - identifier: TrialsOfTheNine
              numericValue: "39"
            - identifier: Social
              numericValue: "40"
            - identifier: TrialsCountdown
              numericValue: "41"
            - identifier: TrialsSurvival
              numericValue: "42"
            - identifier: IronBannerControl
              numericValue: "43"
            - identifier: IronBannerClash
              numericValue: "44"
            - identifier: IronBannerSupremacy
              numericValue: "45"
            - identifier: ScoredNightfall
              numericValue: "46"
            - identifier: ScoredHeroicNightfall
              numericValue: "47"
            - identifier: Rumble
              numericValue: "48"
            - identifier: AllDoubles
              numericValue: "49"
            - identifier: Doubles
              numericValue: "50"
            - identifier: PrivateMatchesClash
              numericValue: "51"
            - identifier: PrivateMatchesControl
              numericValue: "52"
            - identifier: PrivateMatchesSupremacy
              numericValue: "53"
            - identifier: PrivateMatchesCountdown
              numericValue: "54"
            - identifier: PrivateMatchesSurvival
              numericValue: "55"
            - identifier: PrivateMatchesMayhem
              numericValue: "56"
            - identifier: PrivateMatchesRumble
              numericValue: "57"
            - identifier: HeroicAdventure
              numericValue: "58"
            - identifier: Showdown
              numericValue: "59"
            - identifier: Lockdown
              numericValue: "60"
            - identifier: Scorched
              numericValue: "61"
            - identifier: ScorchedTeam
              numericValue: "62"
            - identifier: Gambit
              numericValue: "63"
            - identifier: AllPvECompetitive
              numericValue: "64"
            - identifier: Breakthrough
              numericValue: "65"
            - identifier: BlackArmoryRun
              numericValue: "66"
            - identifier: Salvage
              numericValue: "67"
            - identifier: IronBannerSalvage
              numericValue: "68"
            - identifier: PvPCompetitive
              numericValue: "69"
            - identifier: PvPQuickplay
              numericValue: "70"
            - identifier: ClashQuickplay
              numericValue: "71"
            - identifier: ClashCompetitive
              numericValue: "72"
            - identifier: ControlQuickplay
              numericValue: "73"
            - identifier: ControlCompetitive
              numericValue: "74"
            - identifier: GambitPrime
              numericValue: "75"
            - identifier: Reckoning
              numericValue: "76"
            - identifier: Menagerie
              numericValue: "77"
            - identifier: VexOffensive
              numericValue: "78"
            - identifier: NightmareHunt
              numericValue: "79"
            - identifier: Elimination
              numericValue: "80"
            - identifier: Momentum
              numericValue: "81"
            - identifier: Dungeon
              numericValue: "82"
            - identifier: Sundial
              numericValue: "83"
            - identifier: TrialsOfOsiris
              numericValue: "84"
            - identifier: Dares
              numericValue: "85"
            - identifier: Offensive
              numericValue: "86"
            - identifier: LostSector
              numericValue: "87"
            - identifier: Rift
              numericValue: "88"
            - identifier: ZoneControl
              numericValue: "89"
            - identifier: IronBannerRift
              numericValue: "90"
            - identifier: IronBannerZoneControl
              numericValue: "91"
        currentActivityModeTypes:
          description: All Activity Modes that apply to the current activity being played, in enum form.
          items:
            description: For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don't take this to mean that some D1-only feature is coming back!
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema4"
          type: array
        currentPlaylistActivityHash:
          description: If the user is in a playlist, this is the hash identifier for the playlist that they chose.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        dateActivityStarted:
          description: The last date that the user started playing an activity.
          format: date-time
          type: string
        lastCompletedStoryHash:
          description: This will have the activity hash of the last completed story/campaign mission, in case you care about that.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
      type: object
      x-destiny-component-type-dependency: CharacterActivities
    Destiny.Entities.Characters.DestinyCharacterComponent:
      description: This component contains base properties of the character. You'll probably want to always request this component, but hey you do you.
      properties:
        baseCharacterLevel:
          description: The "base" level of your character, not accounting for any light level.
          format: int32
          type: integer
        characterId:
          description: The unique identifier for the character.
          format: int64
          type: integer
        classHash:
          description: Use this hash to look up the character's DestinyClassDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyClassDefinition"
        classType:
          description: "Mostly for historical purposes at this point, this is an enumeration for the character's class.\r

            It'll be preferable in the general case to look up the related definition: but for some people this was too convenient to remove."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema28"
        dateLastPlayed:
          description: The last date that the user played Destiny.
          format: date-time
          type: string
        emblemBackgroundPath:
          description: A shortcut path to the user's currently equipped emblem background image. If you're just showing summary info for a user, this is more convenient than examining their equipped emblem and looking up the definition.
          type: string
        emblemColor:
          allOf:
            - $ref: "#/components/schemas/Destiny.Misc.DestinyColor"
          description: A shortcut for getting the background color of the user's currently equipped emblem without having to do a DestinyInventoryItemDefinition lookup.
          type: object
        emblemHash:
          description: The hash of the currently equipped emblem for the user. Can be used to look up the DestinyInventoryItemDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        emblemPath:
          description: A shortcut path to the user's currently equipped emblem image. If you're just showing summary info for a user, this is more convenient than examining their equipped emblem and looking up the definition.
          type: string
        genderHash:
          description: Use this hash to look up the character's DestinyGenderDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyGenderDefinition"
        genderType:
          description: "Mostly for historical purposes at this point, this is an enumeration for the character's Gender.\r

            It'll be preferable in the general case to look up the related definition: but for some people this was too convenient to remove. And yeah, it's an enumeration and not a boolean. Fight me."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema42"
        levelProgression:
          allOf:
            - $ref: "#/components/schemas/Destiny.DestinyProgression"
          description: "The progression that indicates your character's level. Not their light level, but their character level: you know, the thing you max out a couple hours in and then ignore for the sake of light level."
          type: object
        light:
          description: "The user's calculated \"Light Level\". Light level is an indicator of your power that mostly matters in the end game, once you've reached the maximum character level: it's a level that's dependent on the average Attack/Defense power of your items."
          format: int32
          type: integer
        membershipId:
          description: Every Destiny Profile has a membershipId. This is provided on the character as well for convenience.
          format: int64
          type: integer
        membershipType:
          description: membershipType tells you the platform on which the character plays. Examine the BungieMembershipType enumeration for possible values.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        minutesPlayedThisSession:
          description: If the user is currently playing, this is how long they've been playing.
          format: int64
          type: integer
        minutesPlayedTotal:
          description: If this value is 525,600, then they played Destiny for a year. Or they're a very dedicated Rent fan. Note that this includes idle time, not just time spent actually in activities shooting things.
          format: int64
          type: integer
        percentToNextLevel:
          description: A number between 0 and 100, indicating the whole and fractional % remaining to get to the next character level.
          format: float
          type: number
        raceHash:
          description: Use this hash to look up the character's DestinyRaceDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyRaceDefinition"
        raceType:
          description: "Mostly for historical purposes at this point, this is an enumeration for the character's race.\r

            It'll be preferable in the general case to look up the related definition: but for some people this was too convenient to remove."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema94"
        stats:
          additionalProperties:
            format: int32
            type: integer
          description: "Your character's stats, such as Agility, Resilience, etc... *not* historical stats.\r

            You'll have to call a different endpoint for those."
          type: object
        titleRecordHash:
          description: If this Character has a title assigned to it, this is the identifier of the DestinyRecordDefinition that has that title information.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordDefinition"
      type: object
      x-destiny-component-type-dependency: Characters
    Destiny.Entities.Characters.DestinyCharacterProgressionComponent:
      description: 'This component returns anything that could be considered "Progression" on a user: data where the user is gaining levels, reputation, completions, rewards, etc...'
      properties:
        checklists:
          additionalProperties:
            additionalProperties:
              type: boolean
            type: object
          description: "The set of checklists that can be examined for this specific character, keyed by the hash identifier of the Checklist (DestinyChecklistDefinition)\r

            For each checklist returned, its value is itself a Dictionary keyed by the checklist's hash identifier with the value being a boolean indicating if it's been discovered yet."
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Checklists.DestinyChecklistDefinition"
        factions:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Progression.DestinyFactionProgression"
          description: A dictionary of all known Factions, keyed by the Faction's hash. It contains data about this character's status with the faction.
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyFactionDefinition"
        milestones:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestone"
          description: Milestones are related to the simple progressions shown in the game, but return additional and hopefully helpful information for users about the specifics of the Milestone's status.
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneDefinition"
        progressions:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.DestinyProgression"
          description: "A Dictionary of all known progressions for the Character, keyed by the Progression's hash.\r

            Not all progressions have user-facing data, but those who do will have that data contained in the DestinyProgressionDefinition."
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionDefinition"
        quests:
          description: "If the user has any active quests, the quests' statuses will be returned here.\r

            \ Note that quests have been largely supplanted by Milestones, but that doesn't mean that they won't make a comeback independent of milestones at some point.\r

            \ (Fun fact: quests came back as I feared they would, but we never looped back to populate this... I'm going to put that in the backlog.)"
          items:
            $ref: "#/components/schemas/Destiny.Quests.DestinyQuestStatus"
          type: array
        seasonalArtifact:
          allOf:
            - $ref: "#/components/schemas/Destiny.Artifacts.DestinyArtifactCharacterScoped"
          description: Data related to your progress on the current season's artifact that can vary per character.
          type: object
        uninstancedItemObjectives:
          additionalProperties:
            items:
              $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
            type: array
          description: "Sometimes, you have items in your inventory that don't have instances, but still have Objective information. This provides you that objective information for uninstanced items. \r

            This dictionary is keyed by the item's hash: which you can use to look up the name and description for the overall task(s) implied by the objective. The value is the list of objectives for this item, and their statuses."
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        uninstancedItemPerks:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemPerksComponent"
          description: "Sometimes, you have items in your inventory that don't have instances, but still have perks (for example: Trials passage cards). This gives you the perk information for uninstanced items.\r

            This dictionary is keyed by item hash, which you can use to look up the corresponding item definition. The value is the list of perks states for the item."
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
      x-destiny-component-type-dependency: CharacterProgressions
    Destiny.Entities.Characters.DestinyCharacterRenderComponent:
      description: "Only really useful if you're attempting to render the character's current appearance in 3D, this returns a bare minimum of information, pre-aggregated, that you'll need to perform that rendering. Note that you need to combine this with other 3D assets and data from our servers.\r

        Examine the Javascript returned by https://bungie.net/sharedbundle/spasm to see how we use this data, but be warned: the rabbit hole goes pretty deep."
      properties:
        customDyes:
          description: Custom dyes, calculated by iterating over the character's equipped items. Useful for pre-fetching all of the dye data needed from our server.
          items:
            $ref: "#/components/schemas/Destiny.DyeReference"
          type: array
        customization:
          allOf:
            - $ref: "#/components/schemas/Destiny.Character.DestinyCharacterCustomization"
          description: This is actually something that Spasm.js *doesn't* do right now, and that we don't return assets for yet. This is the data about what character customization options you picked. You can combine this with DestinyCharacterCustomizationOptionDefinition to show some cool info, and hopefully someday to actually render a user's face in 3D. We'll see if we ever end up with time for that.
          type: object
        peerView:
          allOf:
            - $ref: "#/components/schemas/Destiny.Character.DestinyCharacterPeerView"
          description: "A minimal view of:\r

            - Equipped items\r

            - The rendering-related custom options on those equipped items\r

            Combined, that should be enough to render all of the items on the equipped character."
          type: object
      type: object
      x-destiny-component-type-dependency: CharacterRenderData
    Destiny.Entities.Inventory.DestinyInventoryComponent:
      description: "A list of minimal information for items in an inventory: be it a character's inventory, or a Profile's inventory. (Note that the Vault is a collection of inventory buckets in the Profile's inventory)\r

        Inventory Items returned here are in a flat list, but importantly they have a bucketHash property that indicates the specific inventory bucket that is holding them. These buckets constitute things like the separate sections of the Vault, the user's inventory slots, etc. See DestinyInventoryBucketDefinition for more info."
      properties:
        items:
          description: The items in this inventory. If you care to bucket them, use the item's bucketHash property to group them.
          items:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemComponent"
          type: array
      type: object
    Destiny.Entities.Items.DestinyItemComponent:
      description: The base item component, filled with properties that are generally useful to know in any item request or that don't feel worthwhile to put in their own component.
      properties:
        bindStatus:
          description: If the item is bound to a location, it will be specified in this enum.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema83"
        bucketHash:
          description: The hash identifier for the specific inventory bucket in which the item is located.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryBucketDefinition"
        expirationDate:
          description: If the item can expire, this is the date at which it will/did expire.
          format: date-time
          type: string
        isWrapper:
          description: "If this is true, the object is actually a \"wrapper\" of the object it's representing. This means that it's not the actual item itself, but rather an item that must be \"opened\" in game before you have and can use the item.\r

            \ Wrappers are an evolution of \"bundles\", which give an easy way to let you preview the contents of what you purchased while still letting you get a refund before you \"open\" it."
          type: boolean
        itemHash:
          description: The identifier for the item's definition, which is where most of the useful static information for the item can be found.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        itemInstanceId:
          description: If the item is instanced, it will have an instance ID. Lack of an instance ID implies that the item has no distinct local qualities aside from stack size.
          format: int64
          type: integer
        itemValueVisibility:
          description: If available, a list that describes which item values (rewards) should be shown (true) or hidden (false).
          items:
            type: boolean
          type: array
        location:
          description: An easy reference for where the item is located. Redundant if you got the item from an Inventory, but useful when making detail calls on specific items.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema37"
        lockable:
          description: If the item can be locked, this will indicate that state.
          type: boolean
        metricHash:
          description: The identifier for the currently-selected metric definition, to be displayed on the emblem nameplate.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Metrics.DestinyMetricDefinition"
        metricObjective:
          allOf:
            - $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
          description: The objective progress for the currently-selected metric definition, to be displayed on the emblem nameplate.
          type: object
        overrideStyleItemHash:
          description: "If populated, this is the hash of the item whose icon (and other secondary styles, but *not* the human readable strings) should override whatever icons/styles are on the item being sold.\r

            If you don't do this, certain items whose styles are being overridden by socketed items - such as the \"Recycle Shader\" item - would show whatever their default icon/style is, and it wouldn't be pretty or look accurate."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        quantity:
          description: The quantity of the item in this stack. Note that Instanced items cannot stack. If an instanced item, this value will always be 1 (as the stack has exactly one item in it)
          format: int32
          type: integer
        state:
          description: "A flags enumeration indicating the transient/custom states of the item that affect how it is rendered: whether it's tracked or locked for example, or whether it has a masterwork plug inserted."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema85"
        tooltipNotificationIndexes:
          description: If this is populated, it is a list of indexes into DestinyInventoryItemDefinition.tooltipNotifications for any special tooltip messages that need to be shown for this item.
          items:
            format: int32
            type: integer
          type: array
        transferStatus:
          description: If there is a known error state that would cause this item to not be transferable, this Flags enum will indicate all of those error states. Otherwise, it will be 0 (CanTransfer).
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema84"
        versionNumber:
          description: The version of this item, used to index into the versions list in the item definition quality block.
          format: int32
          type: integer
      type: object
    Destiny.Entities.Items.DestinyItemInstanceComponent:
      description: "If an item is \"instanced\", this will contain information about the item's instance that doesn't fit easily into other components. One might say this is the \"essential\" instance data for the item.\r

        Items are instanced if they require information or state that can vary. For instance, weapons are Instanced: they are given a unique identifier, uniquely generated stats, and can have their properties altered. Non-instanced items have none of these things: for instance, Glimmer has no unique properties aside from how much of it you own.\r

        You can tell from an item's definition whether it will be instanced or not by looking at the DestinyInventoryItemDefinition's definition.inventory.isInstanceItem property."
      properties:
        breakerType:
          description: If populated, this item has a breaker type corresponding to the given value. See DestinyBreakerTypeDefinition for more details.
          enum:
            - "0"
            - "1"
            - "2"
            - "3"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: ShieldPiercing
              numericValue: "1"
            - identifier: Disruption
              numericValue: "2"
            - identifier: Stagger
              numericValue: "3"
        breakerTypeHash:
          description: If populated, this is the hash identifier for the item's breaker type. See DestinyBreakerTypeDefinition for more details.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.BreakerTypes.DestinyBreakerTypeDefinition"
        canEquip:
          description: "If this is an equippable item, you can check it here. There are permanent as well as transitory reasons why an item might not be able to be equipped: check cannotEquipReason for details."
          type: boolean
        cannotEquipReason:
          description: If you cannot equip the item, this is a flags enum that enumerates all of the reasons why you couldn't equip the item. You may need to refine your UI further by using unlockHashesRequiredToEquip and equipRequiredLevel.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema98"
        damageType:
          description: If the item has a damage type, this is the item's current damage type.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema30"
        damageTypeHash:
          description: The current damage type's hash, so you can look up localized info and icons for it.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDamageTypeDefinition"
        energy:
          allOf:
            - $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemInstanceEnergy"
          description: IF populated, this item supports Energy mechanics (i.e. Armor 2.0), and these are the current details of its energy type and available capacity to spend energy points.
          type: object
        equipRequiredLevel:
          description: If the item cannot be equipped until you reach a certain level, that level will be reflected here.
          format: int32
          type: integer
        isEquipped:
          description: Is the item currently equipped on the given character?
          type: boolean
        itemLevel:
          description: The Item's "Level" has the most significant bearing on its stats, such as Light and Power.
          format: int32
          type: integer
        primaryStat:
          allOf:
            - $ref: "#/components/schemas/Destiny.DestinyStat"
          description: The item stat that we consider to be "primary" for the item. For instance, this would be "Attack" for Weapons or "Defense" for armor.
          type: object
        quality:
          description: The "Quality" of the item has a lesser - but still impactful - bearing on stats like Light and Power.
          format: int32
          type: integer
        unlockHashesRequiredToEquip:
          description: "Sometimes, there are limitations to equipping that are represented by character-level flags called \"unlocks\".\r

            This is a list of flags that they need in order to equip the item that the character has not met. Use these to look up the descriptions to show in your UI by looking up the relevant DestinyUnlockDefinitions for the hashes."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyUnlockDefinition"
      type: object
      x-destiny-component-type-dependency: ItemInstances
    Destiny.Entities.Items.DestinyItemInstanceEnergy:
      properties:
        energyCapacity:
          description: The total capacity of Energy that the item currently has, regardless of if it is currently being used.
          format: int32
          type: integer
        energyType:
          description: This is the enum version of the Energy Type value, for convenience.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema72"
        energyTypeHash:
          description: The type of energy for this item. Plugs that require Energy can only be inserted if they have the "Any" Energy Type or the matching energy type of this item. This is a reference to the DestinyEnergyTypeDefinition for the energy type, where you can find extended info about it.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.EnergyTypes.DestinyEnergyTypeDefinition"
        energyUnused:
          description: The amount of energy still available for inserting new plugs.
          format: int32
          type: integer
        energyUsed:
          description: The amount of Energy currently in use by inserted plugs.
          format: int32
          type: integer
      type: object
    Destiny.Entities.Items.DestinyItemObjectivesComponent:
      description: Items can have objectives and progression. When you request this block, you will obtain information about any Objectives and progression tied to this item.
      properties:
        dateCompleted:
          description: If we have any information on when these objectives were completed, this will be the date of that completion. This won't be on many items, but could be interesting for some items that do store this information.
          format: date-time
          type: string
        flavorObjective:
          allOf:
            - $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
          description: I may regret naming it this way - but this represents when an item has an objective that doesn't serve a beneficial purpose, but rather is used for "flavor" or additional information. For instance, when Emblems track specific stats, those stats are represented as Objectives on the item.
          type: object
        objectives:
          description: "If the item has a hard association with objectives, your progress on them will be defined here. \r

            Objectives are our standard way to describe a series of tasks that have to be completed for a reward."
          items:
            $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
          type: array
      type: object
      x-destiny-component-type-dependency: ItemObjectives
    Destiny.Entities.Items.DestinyItemPerksComponent:
      description: "Instanced items can have perks: benefits that the item bestows.\r

        These are related to DestinySandboxPerkDefinition, and sometimes - but not always - have human readable info. When they do, they are the icons and text that you see in an item's tooltip.\r

        Talent Grids, Sockets, and the item itself can apply Perks, which are then summarized here for your convenience."
      properties:
        perks:
          description: The list of perks to display in an item tooltip - and whether or not they have been activated.
          items:
            $ref: "#/components/schemas/Destiny.Perks.DestinyPerkReference"
          type: array
      type: object
      x-destiny-component-type-dependency: ItemPerks
    Destiny.Entities.Items.DestinyItemRenderComponent:
      description: Many items can be rendered in 3D. When you request this block, you will obtain the custom data needed to render this specific instance of the item.
      properties:
        artRegions:
          additionalProperties:
            format: int32
            type: integer
          description: "A dictionary for rendering gear components, with:\r

            key = Art Arrangement Region Index\r

            value = The chosen Arrangement Index for the Region, based on the value of a stat on the item used for making the choice."
          type: object
        useCustomDyes:
          description: If you should use custom dyes on this item, it will be indicated here.
          type: boolean
      type: object
      x-destiny-component-type-dependency: ItemRenderData
    Destiny.Entities.Items.DestinyItemSocketState:
      description: "The status of a given item's socket. (which plug is inserted, if any: whether it is enabled, what \"reusable\" plugs can be inserted, etc...)\r

        If I had it to do over, this would probably have a DestinyItemPlug representing the inserted item instead of most of these properties. :shrug:"
      properties:
        enableFailIndexes:
          description: If a plug is inserted but not enabled, this will be populated with indexes into the plug item definition's plug.enabledRules property, so that you can show the reasons why it is not enabled.
          items:
            format: int32
            type: integer
          type: array
        isEnabled:
          description: "Even if a plug is inserted, it doesn't mean it's enabled.\r

            This flag indicates whether the plug is active and providing its benefits."
          type: boolean
        isVisible:
          description: "A plug may theoretically provide benefits but not be visible - for instance, some older items use a plug's damage type perk to modify their own damage type. These, though they are not visible, still affect the item. This field indicates that state.\r

            An invisible plug, while it provides benefits if it is Enabled, cannot be directly modified by the user."
          type: boolean
        plugHash:
          description: "The currently active plug, if any.\r

            Note that, because all plugs are statically defined, its effect on stats and perks can be statically determined using the plug item's definition. The stats and perks can be taken at face value on the plug item as the stats and perks it will provide to the user/item."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
    Destiny.Entities.Items.DestinyItemSocketsComponent:
      description: "Instanced items can have sockets, which are slots on the item where plugs can be inserted.\r

        Sockets are a bit complex: be sure to examine the documentation on the DestinyInventoryItemDefinition's \"socket\" block and elsewhere on these objects for more details."
      properties:
        sockets:
          description: The list of all sockets on the item, and their status information.
          items:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemSocketState"
          type: array
      type: object
      x-destiny-component-type-dependency: ItemSockets
    Destiny.Entities.Items.DestinyItemStatsComponent:
      description: "If you want the stats on an item's instanced data, get this component.\r

        These are stats like Attack, Defense etc... and *not* historical stats.\r

        Note that some stats have additional computation in-game at runtime - for instance, Magazine Size - and thus these stats might not be 100% accurate compared to what you see in-game for some stats. I know, it sucks. I hate it too."
      properties:
        stats:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.DestinyStat"
          description: If the item has stats that it provides (damage, defense, etc...), it will be given here.
          type: object
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyStatDefinition"
      type: object
      x-destiny-component-type-dependency: ItemStats
    Destiny.Entities.Items.DestinyItemTalentGridComponent:
      description: "Well, we're here in Destiny 2, and Talent Grids are unfortunately still around.\r

        The good news is that they're pretty much only being used for certain base information on items and for Builds/Subclasses. The bad news is that they still suck. If you really want this information, grab this component.\r

        An important note is that talent grids are defined as such:\r

        A Grid has 1:M Nodes, which has 1:M Steps.\r

        Any given node can only have a single step active at one time, which represents the actual visual contents and effects of the Node (for instance, if you see a \"Super Cool Bonus\" node, the actual icon and text for the node is coming from the current Step of that node).\r

        Nodes can be grouped into exclusivity sets *and* as of D2, exclusivity groups (which are collections of exclusivity sets that affect each other).\r

        See DestinyTalentGridDefinition for more information. Brace yourself, the water's cold out there in the deep end."
      properties:
        gridProgression:
          allOf:
            - $ref: "#/components/schemas/Destiny.DestinyProgression"
          description: If the item has a progression, it will be detailed here. A progression means that the item can gain experience. Thresholds of experience are what determines whether and when a talent node can be activated.
          type: object
        isGridComplete:
          description: "Indicates whether the talent grid on this item is completed, and thus whether it should have a gold border around it.\r

            Only will be true if the item actually *has* a talent grid, and only then if it is completed (i.e. every exclusive set has an activated node, and every non-exclusive set node has been activated)"
          type: boolean
        nodes:
          description: "Detailed information about the individual nodes in the talent grid.\r

            A node represents a single visual \"pip\" in the talent grid or Build detail view, though each node may have multiple \"steps\" which indicate the actual bonuses and visual representation of that node."
          items:
            $ref: "#/components/schemas/Destiny.DestinyTalentNode"
          type: array
        talentGridHash:
          description: "Most items don't have useful talent grids anymore, but Builds in particular still do.\r

            You can use this hash to lookup the DestinyTalentGridDefinition attached to this item, which will be crucial for understanding the node values on the item."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyTalentGridDefinition"
      type: object
      x-destiny-component-type-dependency: ItemTalentGrids
    Destiny.Entities.Profiles.DestinyProfileComponent:
      description: The most essential summary information about a Profile (in Destiny 1, we called these "Accounts").
      properties:
        activeEventCardHash:
          description: If populated, this is a reference to the event card that is currently active.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Seasons.DestinyEventCardDefinition"
        characterIds:
          description: A list of the character IDs, for further querying on your part.
          items:
            format: int64
            type: integer
          type: array
        currentGuardianRank:
          description: The 'current' Guardian Rank value, which starts at rank 1.
          format: int32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition"
        currentSeasonHash:
          description: If populated, this is a reference to the season that is currently active.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Seasons.DestinySeasonDefinition"
        currentSeasonRewardPowerCap:
          description: If populated, this is the reward power cap for the current season.
          format: int32
          type: integer
        dateLastPlayed:
          description: The last time the user played with any character on this Profile.
          format: date-time
          type: string
        eventCardHashesOwned:
          description: A list of hashes for event cards that a profile owns. Unlike most values in versionsOwned, these stay with the profile across all platforms.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Seasons.DestinyEventCardDefinition"
        lifetimeHighestGuardianRank:
          description: The 'lifetime highest' Guardian Rank value, which starts at rank 1.
          format: int32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition"
        seasonHashes:
          description: "A list of seasons that this profile owns. Unlike versionsOwned, these stay with the profile across Platforms, and thus will be valid.\r

            \ It turns out that Stadia Pro subscriptions will give access to seasons but only while playing on Stadia and with an active subscription. So some users (users who have Stadia Pro but choose to play on some other platform) won't see these as available: it will be whatever seasons are available for the platform on which they last played."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Seasons.DestinySeasonDefinition"
        userInfo:
          allOf:
            - $ref: "#/components/schemas/User.UserInfoCard"
          description: If you need to render the Profile (their platform name, icon, etc...) somewhere, this property contains that information.
          type: object
        versionsOwned:
          description: "If you want to know what expansions they own, this will contain that data.\r

            \ IMPORTANT: This field may not return the data you're interested in for Cross-Saved users. It returns the last ownership data we saw for this account - which is to say, what they've purchased on the platform on which they last played, which now could be a different platform.\r

            \ If you don't care about per-platform ownership and only care about whatever platform it seems they are playing on most recently, then this should be \"good enough.\" Otherwise, this should be considered deprecated. We do not have a good alternative to provide at this time with platform specific ownership data for DLC."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema87"
      type: object
      x-destiny-component-type-dependency: Profiles
    Destiny.Entities.Profiles.DestinyVendorReceiptsComponent:
      description: "For now, this isn't used for much: it's a record of the recent refundable purchases that the user has made. In the future, it could be used for providing refunds/buyback via the API. Wouldn't that be fun?"
      properties:
        receipts:
          description: The receipts for refundable purchases made at a vendor.
          items:
            $ref: "#/components/schemas/Destiny.Vendors.DestinyVendorReceipt"
          type: array
      type: object
      x-destiny-component-type-dependency: VendorReceipts
    Destiny.Entities.Vendors.DestinyVendorCategoriesComponent:
      description: "A vendor can have many categories of items that they sell. This component will return the category information for available items, as well as the index into those items in the user's sale item list.\r

        Note that, since both the category and items are indexes, this data is Content Version dependent. Be sure to check that your content is up to date before using this data. This is an unfortunate, but permanent, limitation of Vendor data."
      properties:
        categories:
          description: "The list of categories for items that the vendor sells, in rendering order.\r

            These categories each point to a \"display category\" in the displayCategories property of the DestinyVendorDefinition, as opposed to the other categories."
          items:
            $ref: "#/components/schemas/Destiny.Entities.Vendors.DestinyVendorCategory"
          type: array
      type: object
      x-destiny-component-type-dependency: VendorCategories
    Destiny.Entities.Vendors.DestinyVendorCategory:
      description: Information about the category and items currently sold in that category.
      properties:
        displayCategoryIndex:
          description: An index into the DestinyVendorDefinition.displayCategories property, so you can grab the display data for this category.
          format: int32
          type: integer
        itemIndexes:
          description: An ordered list of indexes into items being sold in this category (DestinyVendorDefinition.itemList) which will contain more information about the items being sold themselves. Can also be used to index into DestinyVendorSaleItemComponent data, if you asked for that data to be returned.
          items:
            format: int32
            type: integer
          type: array
      type: object
    Destiny.Entities.Vendors.DestinyVendorComponent:
      description: This component contains essential/summary information about the vendor.
      properties:
        canPurchase:
          description: If True, you can purchase from the Vendor.
          type: boolean
        enabled:
          description: "If True, the Vendor is currently accessible. \r

            If False, they may not actually be visible in the world at the moment."
          type: boolean
        nextRefreshDate:
          description: "The date when this vendor's inventory will next rotate/refresh.\r

            Note that this is distinct from the date ranges that the vendor is visible/available in-game: this field indicates the specific time when the vendor's available items refresh and rotate, regardless of whether the vendor is actually available at that time. Unfortunately, these two values may be (and are, for the case of important vendors like Xur) different.\r

            Issue https://github.com/Bungie-net/api/issues/353 is tracking a fix to start providing visibility date ranges where possible in addition to this refresh date, so that all important dates for vendors are available for use."
          format: date-time
          type: string
        progression:
          allOf:
            - $ref: "#/components/schemas/Destiny.DestinyProgression"
          description: If the Vendor has a related Reputation, this is the Progression data that represents the character's Reputation level with this Vendor.
          type: object
        seasonalRank:
          description: If this vendor has a seasonal rank, this will be the calculated value of that rank. How nice is that? I mean, that's pretty sweeet. It's a whole 32 bit integer.
          format: int32
          type: integer
        vendorHash:
          description: The unique identifier for the vendor. Use it to look up their DestinyVendorDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
        vendorLocationIndex:
          description: An index into the vendor definition's "locations" property array, indicating which location they are at currently. If -1, then the vendor has no known location (and you may choose not to show them in your UI as a result. I mean, it's your bag honey)
          format: int32
          type: integer
      type: object
      x-destiny-component-type-dependency: Vendors
    Destiny.Entities.Vendors.DestinyVendorSaleItemComponent:
      description: "Request this component if you want the details about an item being sold in relation to the character making the request: whether the character can buy it, whether they can afford it, and other data related to purchasing the item.\r

        Note that if you want instance, stats, etc... data for the item, you'll have to request additional components such as ItemInstances, ItemPerks etc... and acquire them from the DestinyVendorResponse's \"items\" property."
      properties:
        apiPurchasable:
          description: If true, this item can be purchased through the Bungie.net API.
          type: boolean
        augments:
          description: "A flags enumeration value representing the current state of any \"state modifiers\" on the item being sold. These are meant to correspond with some sort of visual indicator as to the augmentation: for instance, if an item is on sale or if you already own the item in question.\r

            Determining how you want to represent these in your own app (or if you even want to) is an exercise left for the reader."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema101"
        costs:
          description: A summary of the current costs of the item.
          items:
            $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          type: array
        failureIndexes:
          description: "Indexes in to the \"failureStrings\" lookup table in DestinyVendorDefinition for the given Vendor. Gives some more reliable failure information for why you can't purchase an item.\r

            It is preferred to use these over requiredUnlocks and unlockStatuses: the latter are provided mostly in case someone can do something interesting with it that I didn't anticipate."
          items:
            format: int32
            type: integer
          type: array
        itemHash:
          description: The hash of the item being sold, as a quick shortcut for looking up the DestinyInventoryItemDefinition of the sale item.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        itemValueVisibility:
          description: If available, a list that describes which item values (rewards) should be shown (true) or hidden (false).
          items:
            type: boolean
          type: array
        overrideNextRefreshDate:
          description: "If this item has its own custom date where it may be removed from the Vendor's rotation, this is that date.\r

            Note that there's not actually any guarantee that it will go away: it could be chosen again and end up still being in the Vendor's sale items! But this is the next date where that test will occur, and is also the date that the game shows for availability on things like Bounties being sold. So it's the best we can give."
          format: date-time
          type: string
        overrideStyleItemHash:
          description: "If populated, this is the hash of the item whose icon (and other secondary styles, but *not* the human readable strings) should override whatever icons/styles are on the item being sold.\r

            If you don't do this, certain items whose styles are being overridden by socketed items - such as the \"Recycle Shader\" item - would show whatever their default icon/style is, and it wouldn't be pretty or look accurate."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        quantity:
          description: How much of the item you'll be getting.
          format: int32
          type: integer
        requiredUnlocks:
          description: "If you can't buy the item due to a complex character state, these will be hashes for DestinyUnlockDefinitions that you can check to see messages regarding the failure (if the unlocks have human readable information: it is not guaranteed that Unlocks will have human readable strings, and your application will have to handle that)\r

            Prefer using failureIndexes instead. These are provided for informational purposes, but have largely been supplanted by failureIndexes."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyUnlockDefinition"
        saleStatus:
          description: A flag indicating whether the requesting character can buy the item, and if not the reasons why the character can't buy it.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema100"
        unlockStatuses:
          description: "If any complex unlock states are checked in determining purchasability, these will be returned here along with the status of the unlock check.\r

            Prefer using failureIndexes instead. These are provided for informational purposes, but have largely been supplanted by failureIndexes."
          items:
            $ref: "#/components/schemas/Destiny.DestinyUnlockStatus"
          type: array
        vendorItemIndex:
          description: "The index into the DestinyVendorDefinition.itemList property. Note that this means Vendor data *is* Content Version dependent: make sure you have the latest content before you use Vendor data, or these indexes may mismatch. \r

            Most systems avoid this problem, but Vendors is one area where we are unable to reasonably avoid content dependency at the moment."
          format: int32
          type: integer
      type: object
      x-destiny-component-type-dependency: VendorSales
    Destiny.EquipFailureReason:
      $ref: "#/components/schemas/schema98"
    Destiny.EquippingItemBlockAttributes:
      $ref: "#/components/schemas/schema40"
    Destiny.HistoricalStats.Definitions.DestinyActivityModeType:
      $ref: "#/components/schemas/schema4"
    Destiny.HistoricalStats.Definitions.DestinyActivityModeTypeArray:
      items:
        description: For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don't take this to mean that some D1-only feature is coming back!
        format: int32
        type: integer
        x-enum-reference:
          $ref: "#/components/schemas/schema4"
      type: array
    Destiny.HistoricalStats.Definitions.DestinyHistoricalStatsDefinition:
      properties:
        category:
          description: Category for the stat.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema104"
        group:
          description: Statistic group
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema3"
        iconImage:
          description: Optional URI to an icon for the statistic
          type: string
        medalTierHash:
          description: The tier associated with this medal - be it implicitly or explicitly.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyMedalTierDefinition"
        mergeMethod:
          description: Optional icon for the statistic
          enum:
            - "0"
            - "1"
            - "2"
          format: int32
          type: integer
          x-enum-values:
            - description: When collapsing multiple instances of the stat together, add the values.
              identifier: Add
              numericValue: "0"
            - description: When collapsing multiple instances of the stat together, take the lower value.
              identifier: Min
              numericValue: "1"
            - description: When collapsing multiple instances of the stat together, take the higher value.
              identifier: Max
              numericValue: "2"
        modes:
          description: Game modes where this statistic can be reported.
          items:
            description: For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don't take this to mean that some D1-only feature is coming back!
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema4"
          type: array
        periodTypes:
          description: Time periods the statistic covers
          items:
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema103"
          type: array
        statDescription:
          description: Description of a stat if applicable.
          type: string
        statId:
          description: Unique programmer friendly ID for this stat
          type: string
        statName:
          description: Display name
          type: string
        statNameAbbr:
          description: Display name abbreviated
          type: string
        unitLabel:
          description: Localized Unit Name for the stat.
          type: string
        unitType:
          description: Unit, if any, for the statistic
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema105"
        weight:
          description: Weight assigned to this stat indicating its relative impressiveness.
          format: int32
          type: integer
      type: object
      x-mobile-manifest-name: HistoricalStats
    Destiny.HistoricalStats.Definitions.DestinyStatsCategoryType:
      $ref: "#/components/schemas/schema104"
    Destiny.HistoricalStats.Definitions.DestinyStatsGroupType:
      $ref: "#/components/schemas/schema3"
    Destiny.HistoricalStats.Definitions.DestinyStatsMergeMethod:
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - description: When collapsing multiple instances of the stat together, add the values.
          identifier: Add
          numericValue: "0"
        - description: When collapsing multiple instances of the stat together, take the lower value.
          identifier: Min
          numericValue: "1"
        - description: When collapsing multiple instances of the stat together, take the higher value.
          identifier: Max
          numericValue: "2"
    Destiny.HistoricalStats.Definitions.PeriodType:
      $ref: "#/components/schemas/schema103"
    Destiny.HistoricalStats.Definitions.PeriodTypeArray:
      items:
        format: int32
        type: integer
        x-enum-reference:
          $ref: "#/components/schemas/schema103"
      type: array
    Destiny.HistoricalStats.Definitions.UnitType:
      $ref: "#/components/schemas/schema105"
    Destiny.HistoricalStats.DestinyActivityHistoryResults:
      properties:
        activities:
          description: List of activities, the most recent activity first.
          items:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsPeriodGroup"
          type: array
      type: object
    Destiny.HistoricalStats.DestinyAggregateActivityResults:
      properties:
        activities:
          description: List of all activities the player has participated in.
          items:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyAggregateActivityStats"
          type: array
      type: object
    Destiny.HistoricalStats.DestinyAggregateActivityStats:
      properties:
        activityHash:
          description: Hash ID that can be looked up in the DestinyActivityTable.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        values:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          description: Collection of stats for the player in this activity.
          type: object
      type: object
    Destiny.HistoricalStats.DestinyClanAggregateStat:
      properties:
        mode:
          description: The id of the mode of stats (allPvp, allPvE, etc)
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema4"
        statId:
          description: The id of the stat
          type: string
        value:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          description: Value of the stat for this player
          type: object
      type: object
    Destiny.HistoricalStats.DestinyHistoricalStatsAccountResult:
      properties:
        characters:
          items:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsPerCharacter"
          type: array
        mergedAllCharacters:
          $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsWithMerged"
        mergedDeletedCharacters:
          $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsWithMerged"
      type: object
    Destiny.HistoricalStats.DestinyHistoricalStatsActivity:
      description: Summary information about the activity that was played.
      properties:
        directorActivityHash:
          description: The unique hash identifier of the DestinyActivityDefinition that was played.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        instanceId:
          description: "The unique identifier for this *specific* match that was played.\r

            This value can be used to get additional data about this activity such as who else was playing via the GetPostGameCarnageReport endpoint."
          format: int64
          type: integer
        isPrivate:
          description: Whether or not the match was a private match.
          type: boolean
        membershipType:
          description: The Membership Type indicating the platform on which this match was played.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        mode:
          description: Indicates the most specific game mode of the activity that we could find.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema4"
        modes:
          description: The list of all Activity Modes to which this activity applies, including aggregates. This will let you see, for example, whether the activity was both Clash and part of the Trials of the Nine event.
          items:
            description: For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don't take this to mean that some D1-only feature is coming back!
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema4"
          type: array
        referenceId:
          description: The unique hash identifier of the DestinyActivityDefinition that was played. If I had this to do over, it'd be named activityHash. Too late now.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
      type: object
    Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod:
      properties:
        allTime:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          type: object
        allTimeTier1:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          type: object
        allTimeTier2:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          type: object
        allTimeTier3:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          type: object
        daily:
          items:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsPeriodGroup"
          type: array
        monthly:
          items:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsPeriodGroup"
          type: array
      type: object
    Destiny.HistoricalStats.DestinyHistoricalStatsPerCharacter:
      properties:
        characterId:
          format: int64
          type: integer
        deleted:
          type: boolean
        merged:
          $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod"
        results:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod"
          type: object
      type: object
    Destiny.HistoricalStats.DestinyHistoricalStatsPeriodGroup:
      properties:
        activityDetails:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsActivity"
          description: If the period group is for a specific activity, this property will be set.
          type: object
        period:
          description: Period for the group. If the stat periodType is day, then this will have a specific day. If the type is monthly, then this value will be the first day of the applicable month. This value is not set when the periodType is 'all time'.
          format: date-time
          type: string
        values:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          description: Collection of stats for the period.
          type: object
      type: object
    Destiny.HistoricalStats.DestinyHistoricalStatsResults:
      additionalProperties:
        $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod"
      type: object
    Destiny.HistoricalStats.DestinyHistoricalStatsValue:
      properties:
        activityId:
          description: When a stat represents the best, most, longest, fastest or some other personal best, the actual activity ID where that personal best was established is available on this property.
          format: int64
          type: integer
        basic:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValuePair"
          description: Basic stat value.
          type: object
        pga:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValuePair"
          description: Per game average for the statistic, if applicable
          type: object
        statId:
          description: Unique ID for this stat
          type: string
        weighted:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValuePair"
          description: Weighted value of the stat if a weight greater than 1 has been assigned.
          type: object
      type: object
    Destiny.HistoricalStats.DestinyHistoricalStatsValuePair:
      properties:
        displayValue:
          description: Localized formated version of the value.
          type: string
        value:
          description: Raw value of the statistic
          format: double
          type: number
      type: object
    Destiny.HistoricalStats.DestinyHistoricalStatsWithMerged:
      properties:
        merged:
          $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod"
        results:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsByPeriod"
          type: object
      type: object
    Destiny.HistoricalStats.DestinyHistoricalWeaponStats:
      properties:
        referenceId:
          description: The hash ID of the item definition that describes the weapon.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        values:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          description: Collection of stats for the period.
          type: object
      type: object
    Destiny.HistoricalStats.DestinyHistoricalWeaponStatsData:
      properties:
        weapons:
          description: List of weapons and their perspective values.
          items:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalWeaponStats"
          type: array
      type: object
    Destiny.HistoricalStats.DestinyLeaderboard:
      properties:
        entries:
          items:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyLeaderboardEntry"
          type: array
        statId:
          type: string
      type: object
    Destiny.HistoricalStats.DestinyLeaderboardEntry:
      properties:
        characterId:
          description: ID of the player's best character for the reported stat.
          format: int64
          type: integer
        player:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyPlayer"
          description: Identity details of the player
          type: object
        rank:
          description: Where this player ranks on the leaderboard. A value of 1 is the top rank.
          format: int32
          type: integer
        value:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          description: Value of the stat for this player
          type: object
      type: object
    Destiny.HistoricalStats.DestinyLeaderboardResults:
      additionalProperties:
        additionalProperties:
          $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyLeaderboard"
        type: object
      properties:
        focusCharacterId:
          description: Indicate the character ID of the character that is the focal point of the provided leaderboards. May be null, in which case any character from the focus membership can appear in the provided leaderboards.
          format: int64
          type: integer
        focusMembershipId:
          description: Indicate the membership ID of the account that is the focal point of the provided leaderboards.
          format: int64
          type: integer
      type: object
    Destiny.HistoricalStats.DestinyPlayer:
      properties:
        bungieNetUserInfo:
          allOf:
            - $ref: "#/components/schemas/User.UserInfoCard"
          description: Details about the player as they are known on BungieNet. This will be undefined if the player has marked their credential private, or does not have a BungieNet account.
          type: object
        characterClass:
          description: Class of the character if applicable and available.
          type: string
        characterLevel:
          description: Level of the character if available. Zero if it is not available.
          format: int32
          type: integer
        clanName:
          description: Current clan name for the player. This value may be null or an empty string if the user does not have a clan.
          type: string
        clanTag:
          description: Current clan tag for the player. This value may be null or an empty string if the user does not have a clan.
          type: string
        classHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyClassDefinition"
        destinyUserInfo:
          allOf:
            - $ref: "#/components/schemas/User.UserInfoCard"
          description: Details about the player as they are known in game (platform display name, Destiny emblem)
          type: object
        emblemHash:
          description: If we know the emblem's hash, this can be used to look up the player's emblem at the time of a match when receiving PGCR data, or otherwise their currently equipped emblem (if we are able to obtain it).
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        genderHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyGenderDefinition"
        lightLevel:
          description: Light Level of the character if available. Zero if it is not available.
          format: int32
          type: integer
        raceHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyRaceDefinition"
      type: object
    Destiny.HistoricalStats.DestinyPostGameCarnageReportData:
      properties:
        activityDetails:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsActivity"
          description: Details about the activity.
          type: object
        activityWasStartedFromBeginning:
          description: True if the activity was started from the beginning, if that information is available and the activity was played post Witch Queen release.
          type: boolean
        entries:
          description: Collection of players and their data for this activity.
          items:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyPostGameCarnageReportEntry"
          type: array
        period:
          description: Date and time for the activity.
          format: date-time
          type: string
        startingPhaseIndex:
          description: If this activity has "phases", this is the phase at which the activity was started. This value is only valid for activities before the Beyond Light expansion shipped. Subsequent activities will not have a valid value here.
          format: int32
          type: integer
        teams:
          description: Collection of stats for the player in this activity.
          items:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyPostGameCarnageReportTeamEntry"
          type: array
      type: object
    Destiny.HistoricalStats.DestinyPostGameCarnageReportEntry:
      properties:
        characterId:
          description: ID of the player's character used in the activity.
          format: int64
          type: integer
        extended:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyPostGameCarnageReportExtendedData"
          description: Extended data extracted from the activity blob.
          type: object
        player:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyPlayer"
          description: Identity details of the player
          type: object
        score:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          description: Score of the player if available
          type: object
        standing:
          description: Standing of the player
          format: int32
          type: integer
        values:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          description: Collection of stats for the player in this activity.
          type: object
      type: object
    Destiny.HistoricalStats.DestinyPostGameCarnageReportExtendedData:
      properties:
        values:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          description: Collection of stats for the player in this activity.
          type: object
        weapons:
          description: List of weapons and their perspective values.
          items:
            $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalWeaponStats"
          type: array
      type: object
    Destiny.HistoricalStats.DestinyPostGameCarnageReportTeamEntry:
      properties:
        score:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          description: Score earned by the team
          type: object
        standing:
          allOf:
            - $ref: "#/components/schemas/Destiny.HistoricalStats.DestinyHistoricalStatsValue"
          description: Team's standing relative to other teams.
          type: object
        teamId:
          description: Integer ID for the team.
          format: int32
          type: integer
        teamName:
          description: Alpha or Bravo
          type: string
      type: object
    Destiny.ItemBindStatus:
      $ref: "#/components/schemas/schema83"
    Destiny.ItemLocation:
      $ref: "#/components/schemas/schema37"
    Destiny.ItemPerkVisibility:
      $ref: "#/components/schemas/schema74"
    Destiny.ItemState:
      $ref: "#/components/schemas/schema85"
    Destiny.Milestones.DestinyMilestone:
      description: Represents a runtime instance of a user's milestone status. Live Milestone data should be combined with DestinyMilestoneDefinition data to show the user a picture of what is available for them to do in the game, and their status in regards to said "things to do." Consider it a big, wonky to-do list, or Advisors 3.0 for those who remember the Destiny 1 API.
      properties:
        activities:
          description: "The currently active Activities in this milestone, when the Milestone is driven by Challenges.\r

            Not all Milestones have Challenges, but when they do this will indicate the Activities and Challenges under those Activities related to this Milestone."
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneChallengeActivity"
          type: array
        availableQuests:
          description: Indicates what quests are available for this Milestone. Usually this will be only a single Quest, but some quests have multiple available that you can choose from at any given time. All possible quests for a milestone can be found in the DestinyMilestoneDefinition, but they must be combined with this Live data to determine which one(s) are actually active right now. It is possible for Milestones to not have any quests.
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneQuest"
          type: array
        endDate:
          description: If known, this is the date when the event will next end or repeat. It will only be populated for events with fixed and repeating start and end dates.
          format: date-time
          type: string
        milestoneHash:
          description: The unique identifier for the Milestone. Use it to look up the DestinyMilestoneDefinition, so you can combine the other data in this contract with static definition data.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneDefinition"
        order:
          description: Used for ordering milestones in a display to match how we order them in BNet. May pull from static data, or possibly in the future from dynamic information.
          format: int32
          type: integer
        rewards:
          description: If the entity to which this component is attached has known active Rewards for the player, this will detail information about those rewards, keyed by the RewardEntry Hash. (See DestinyMilestoneDefinition for more information about Reward Entries) Note that these rewards are not for the Quests related to the Milestone. Think of these as "overview/checklist" rewards that may be provided for Milestones that may provide rewards for performing a variety of tasks that aren't under a specific Quest.
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneRewardCategory"
          type: array
        startDate:
          description: If known, this is the date when the event last began or refreshed. It will only be populated for events with fixed and repeating start and end dates.
          format: date-time
          type: string
        values:
          additionalProperties:
            format: float
            type: number
          description: Milestones may have arbitrary key/value pairs associated with them, for data that users will want to know about but that doesn't fit neatly into any of the common components such as Quests. A good example of this would be - if this existed in Destiny 1 - the number of wins you currently have on your Trials of Osiris ticket. Looking in the DestinyMilestoneDefinition, you can use the string identifier of this dictionary to look up more info about the value, including localized string content for displaying the value. The value in the dictionary is the floating point number. The definition will tell you how to format this number.
          type: object
        vendorHashes:
          description: "A milestone may have one or more active vendors that are \"related\" to it (that provide rewards, or that are the initiators of the Milestone). I already regret this, even as I'm typing it. [I told you I'd regret this] You see, sometimes a milestone may be directly correlated with a set of vendors that provide varying tiers of rewards. The player may not be able to interact with one or more of those vendors. This will return the hashes of the Vendors that the player *can* interact with, allowing you to show their current inventory as rewards or related items to the Milestone or its activities.\r

            Before we even use it, it's already deprecated! How much of a bummer is that? We need more data."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
        vendors:
          description: Replaces vendorHashes, which I knew was going to be trouble the day it walked in the door. This will return not only what Vendors are active and relevant to the activity (in an implied order that you can choose to ignore), but also other data - for example, if the Vendor is featuring a specific item relevant to this event that you should show with them.
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneVendor"
          type: array
      type: object
    Destiny.Milestones.DestinyMilestoneActivity:
      description: Sometimes, we know the specific activity that the Milestone wants you to play. This entity provides additional information about that Activity and all of its variants. (sometimes there's only one variant, but I think you get the point)
      properties:
        activityHash:
          description: "The hash of an arbitrarily chosen variant of this activity. We'll go ahead and call that the \"canonical\" activity, because if you're using this value you should only use it for properties that are common across the variants: things like the name of the activity, it's location, etc... Use this hash to look up the DestinyActivityDefinition of this activity for rendering data."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        activityModeHash:
          description: "The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it's not clear what mode the PVP map is being played under. If it's a playlist, this will be less specific: but hopefully useful in some way."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityModeDefinition"
        activityModeType:
          description: The enumeration equivalent of the most specific Activity Mode under which this activity is played.
          enum:
            - "0"
            - "2"
            - "3"
            - "4"
            - "5"
            - "6"
            - "7"
            - "9"
            - "10"
            - "11"
            - "12"
            - "13"
            - "15"
            - "16"
            - "17"
            - "18"
            - "19"
            - "20"
            - "21"
            - "22"
            - "24"
            - "25"
            - "26"
            - "27"
            - "28"
            - "29"
            - "30"
            - "31"
            - "32"
            - "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"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: Story
              numericValue: "2"
            - identifier: Strike
              numericValue: "3"
            - identifier: Raid
              numericValue: "4"
            - identifier: AllPvP
              numericValue: "5"
            - identifier: Patrol
              numericValue: "6"
            - identifier: AllPvE
              numericValue: "7"
            - identifier: Reserved9
              numericValue: "9"
            - identifier: Control
              numericValue: "10"
            - identifier: Reserved11
              numericValue: "11"
            - description: Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
              identifier: Clash
              numericValue: "12"
            - identifier: Reserved13
              numericValue: "13"
            - identifier: CrimsonDoubles
              numericValue: "15"
            - identifier: Nightfall
              numericValue: "16"
            - identifier: HeroicNightfall
              numericValue: "17"
            - identifier: AllStrikes
              numericValue: "18"
            - identifier: IronBanner
              numericValue: "19"
            - identifier: Reserved20
              numericValue: "20"
            - identifier: Reserved21
              numericValue: "21"
            - identifier: Reserved22
              numericValue: "22"
            - identifier: Reserved24
              numericValue: "24"
            - identifier: AllMayhem
              numericValue: "25"
            - identifier: Reserved26
              numericValue: "26"
            - identifier: Reserved27
              numericValue: "27"
            - identifier: Reserved28
              numericValue: "28"
            - identifier: Reserved29
              numericValue: "29"
            - identifier: Reserved30
              numericValue: "30"
            - identifier: Supremacy
              numericValue: "31"
            - identifier: PrivateMatchesAll
              numericValue: "32"
            - identifier: Survival
              numericValue: "37"
            - identifier: Countdown
              numericValue: "38"
            - identifier: TrialsOfTheNine
              numericValue: "39"
            - identifier: Social
              numericValue: "40"
            - identifier: TrialsCountdown
              numericValue: "41"
            - identifier: TrialsSurvival
              numericValue: "42"
            - identifier: IronBannerControl
              numericValue: "43"
            - identifier: IronBannerClash
              numericValue: "44"
            - identifier: IronBannerSupremacy
              numericValue: "45"
            - identifier: ScoredNightfall
              numericValue: "46"
            - identifier: ScoredHeroicNightfall
              numericValue: "47"
            - identifier: Rumble
              numericValue: "48"
            - identifier: AllDoubles
              numericValue: "49"
            - identifier: Doubles
              numericValue: "50"
            - identifier: PrivateMatchesClash
              numericValue: "51"
            - identifier: PrivateMatchesControl
              numericValue: "52"
            - identifier: PrivateMatchesSupremacy
              numericValue: "53"
            - identifier: PrivateMatchesCountdown
              numericValue: "54"
            - identifier: PrivateMatchesSurvival
              numericValue: "55"
            - identifier: PrivateMatchesMayhem
              numericValue: "56"
            - identifier: PrivateMatchesRumble
              numericValue: "57"
            - identifier: HeroicAdventure
              numericValue: "58"
            - identifier: Showdown
              numericValue: "59"
            - identifier: Lockdown
              numericValue: "60"
            - identifier: Scorched
              numericValue: "61"
            - identifier: ScorchedTeam
              numericValue: "62"
            - identifier: Gambit
              numericValue: "63"
            - identifier: AllPvECompetitive
              numericValue: "64"
            - identifier: Breakthrough
              numericValue: "65"
            - identifier: BlackArmoryRun
              numericValue: "66"
            - identifier: Salvage
              numericValue: "67"
            - identifier: IronBannerSalvage
              numericValue: "68"
            - identifier: PvPCompetitive
              numericValue: "69"
            - identifier: PvPQuickplay
              numericValue: "70"
            - identifier: ClashQuickplay
              numericValue: "71"
            - identifier: ClashCompetitive
              numericValue: "72"
            - identifier: ControlQuickplay
              numericValue: "73"
            - identifier: ControlCompetitive
              numericValue: "74"
            - identifier: GambitPrime
              numericValue: "75"
            - identifier: Reckoning
              numericValue: "76"
            - identifier: Menagerie
              numericValue: "77"
            - identifier: VexOffensive
              numericValue: "78"
            - identifier: NightmareHunt
              numericValue: "79"
            - identifier: Elimination
              numericValue: "80"
            - identifier: Momentum
              numericValue: "81"
            - identifier: Dungeon
              numericValue: "82"
            - identifier: Sundial
              numericValue: "83"
            - identifier: TrialsOfOsiris
              numericValue: "84"
            - identifier: Dares
              numericValue: "85"
            - identifier: Offensive
              numericValue: "86"
            - identifier: LostSector
              numericValue: "87"
            - identifier: Rift
              numericValue: "88"
            - identifier: ZoneControl
              numericValue: "89"
            - identifier: IronBannerRift
              numericValue: "90"
            - identifier: IronBannerZoneControl
              numericValue: "91"
        modifierHashes:
          description: "If the activity has modifiers, this will be the list of modifiers that all variants have in common. Perform lookups against DestinyActivityModifierDefinition which defines the modifier being applied to get at the modifier data. Note that, in the DestiyActivityDefinition, you will see many more modifiers than this being referred to: those are all *possible* modifiers for the activity, not the active ones. Use only the active ones to match what's really live."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition"
        variants:
          description: If you want more than just name/location/etc... you're going to have to dig into and show the variants of the conceptual activity. These will differ in seemingly arbitrary ways, like difficulty level and modifiers applied. Show it in whatever way tickles your fancy.
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneActivityVariant"
          type: array
      type: object
    Destiny.Milestones.DestinyMilestoneActivityCompletionStatus:
      description: Represents this player's personal completion status for the Activity under a Milestone, if the activity has trackable completion and progress information. (most activities won't, or the concept won't apply. For instance, it makes sense to talk about a tier of a raid as being Completed or having progress, but it doesn't make sense to talk about a Crucible Playlist in those terms.
      properties:
        completed:
          description: If the activity has been "completed", that information will be returned here.
          type: boolean
        phases:
          description: 'If the Activity has discrete "phases" that we can track, that info will be here. Otherwise, this value will be NULL. Note that this is a list and not a dictionary: the order implies the ascending order of phases or progression in this activity.'
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneActivityPhase"
          type: array
      type: object
    Destiny.Milestones.DestinyMilestoneActivityPhase:
      description: Represents whatever information we can return about an explicit phase in an activity. In the future, I hope we'll have more than just "guh, you done gone and did something," but for the forseeable future that's all we've got. I'm making it more than just a list of booleans out of that overly-optimistic hope.
      properties:
        complete:
          description: Indicates if the phase has been completed.
          type: boolean
        phaseHash:
          description: In DestinyActivityDefinition, if the activity has phases, there will be a set of phases defined in the "insertionPoints" property. This is the hash that maps to that phase.
          format: uint32
          type: integer
      type: object
    Destiny.Milestones.DestinyMilestoneActivityVariant:
      description: Represents custom data that we know about an individual variant of an activity.
      properties:
        activityHash:
          description: The hash for the specific variant of the activity related to this milestone. You can pull more detailed static info from the DestinyActivityDefinition, such as difficulty level.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        activityModeHash:
          description: "The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it's not clear what mode the PVP map is being played under. If it's a playlist, this will be less specific: but hopefully useful in some way."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityModeDefinition"
        activityModeType:
          description: The enumeration equivalent of the most specific Activity Mode under which this activity is played.
          enum:
            - "0"
            - "2"
            - "3"
            - "4"
            - "5"
            - "6"
            - "7"
            - "9"
            - "10"
            - "11"
            - "12"
            - "13"
            - "15"
            - "16"
            - "17"
            - "18"
            - "19"
            - "20"
            - "21"
            - "22"
            - "24"
            - "25"
            - "26"
            - "27"
            - "28"
            - "29"
            - "30"
            - "31"
            - "32"
            - "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"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: Story
              numericValue: "2"
            - identifier: Strike
              numericValue: "3"
            - identifier: Raid
              numericValue: "4"
            - identifier: AllPvP
              numericValue: "5"
            - identifier: Patrol
              numericValue: "6"
            - identifier: AllPvE
              numericValue: "7"
            - identifier: Reserved9
              numericValue: "9"
            - identifier: Control
              numericValue: "10"
            - identifier: Reserved11
              numericValue: "11"
            - description: Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
              identifier: Clash
              numericValue: "12"
            - identifier: Reserved13
              numericValue: "13"
            - identifier: CrimsonDoubles
              numericValue: "15"
            - identifier: Nightfall
              numericValue: "16"
            - identifier: HeroicNightfall
              numericValue: "17"
            - identifier: AllStrikes
              numericValue: "18"
            - identifier: IronBanner
              numericValue: "19"
            - identifier: Reserved20
              numericValue: "20"
            - identifier: Reserved21
              numericValue: "21"
            - identifier: Reserved22
              numericValue: "22"
            - identifier: Reserved24
              numericValue: "24"
            - identifier: AllMayhem
              numericValue: "25"
            - identifier: Reserved26
              numericValue: "26"
            - identifier: Reserved27
              numericValue: "27"
            - identifier: Reserved28
              numericValue: "28"
            - identifier: Reserved29
              numericValue: "29"
            - identifier: Reserved30
              numericValue: "30"
            - identifier: Supremacy
              numericValue: "31"
            - identifier: PrivateMatchesAll
              numericValue: "32"
            - identifier: Survival
              numericValue: "37"
            - identifier: Countdown
              numericValue: "38"
            - identifier: TrialsOfTheNine
              numericValue: "39"
            - identifier: Social
              numericValue: "40"
            - identifier: TrialsCountdown
              numericValue: "41"
            - identifier: TrialsSurvival
              numericValue: "42"
            - identifier: IronBannerControl
              numericValue: "43"
            - identifier: IronBannerClash
              numericValue: "44"
            - identifier: IronBannerSupremacy
              numericValue: "45"
            - identifier: ScoredNightfall
              numericValue: "46"
            - identifier: ScoredHeroicNightfall
              numericValue: "47"
            - identifier: Rumble
              numericValue: "48"
            - identifier: AllDoubles
              numericValue: "49"
            - identifier: Doubles
              numericValue: "50"
            - identifier: PrivateMatchesClash
              numericValue: "51"
            - identifier: PrivateMatchesControl
              numericValue: "52"
            - identifier: PrivateMatchesSupremacy
              numericValue: "53"
            - identifier: PrivateMatchesCountdown
              numericValue: "54"
            - identifier: PrivateMatchesSurvival
              numericValue: "55"
            - identifier: PrivateMatchesMayhem
              numericValue: "56"
            - identifier: PrivateMatchesRumble
              numericValue: "57"
            - identifier: HeroicAdventure
              numericValue: "58"
            - identifier: Showdown
              numericValue: "59"
            - identifier: Lockdown
              numericValue: "60"
            - identifier: Scorched
              numericValue: "61"
            - identifier: ScorchedTeam
              numericValue: "62"
            - identifier: Gambit
              numericValue: "63"
            - identifier: AllPvECompetitive
              numericValue: "64"
            - identifier: Breakthrough
              numericValue: "65"
            - identifier: BlackArmoryRun
              numericValue: "66"
            - identifier: Salvage
              numericValue: "67"
            - identifier: IronBannerSalvage
              numericValue: "68"
            - identifier: PvPCompetitive
              numericValue: "69"
            - identifier: PvPQuickplay
              numericValue: "70"
            - identifier: ClashQuickplay
              numericValue: "71"
            - identifier: ClashCompetitive
              numericValue: "72"
            - identifier: ControlQuickplay
              numericValue: "73"
            - identifier: ControlCompetitive
              numericValue: "74"
            - identifier: GambitPrime
              numericValue: "75"
            - identifier: Reckoning
              numericValue: "76"
            - identifier: Menagerie
              numericValue: "77"
            - identifier: VexOffensive
              numericValue: "78"
            - identifier: NightmareHunt
              numericValue: "79"
            - identifier: Elimination
              numericValue: "80"
            - identifier: Momentum
              numericValue: "81"
            - identifier: Dungeon
              numericValue: "82"
            - identifier: Sundial
              numericValue: "83"
            - identifier: TrialsOfOsiris
              numericValue: "84"
            - identifier: Dares
              numericValue: "85"
            - identifier: Offensive
              numericValue: "86"
            - identifier: LostSector
              numericValue: "87"
            - identifier: Rift
              numericValue: "88"
            - identifier: ZoneControl
              numericValue: "89"
            - identifier: IronBannerRift
              numericValue: "90"
            - identifier: IronBannerZoneControl
              numericValue: "91"
        completionStatus:
          allOf:
            - $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneActivityCompletionStatus"
          description: "An OPTIONAL component: if it makes sense to talk about this activity variant in terms of whether or not it has been completed or what progress you have made in it, this will be returned. Otherwise, this will be NULL."
          type: object
      type: object
    Destiny.Milestones.DestinyMilestoneChallengeActivity:
      properties:
        activityHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        booleanActivityOptions:
          additionalProperties:
            type: boolean
          description: "The set of activity options for this activity, keyed by an identifier that's unique for this activity (not guaranteed to be unique between or across all activities, though should be unique for every *variant* of a given *conceptual* activity: for instance, the original D2 Raid has many variant DestinyActivityDefinitions. While other activities could potentially have the same option hashes, for any given D2 base Raid variant the hash will be unique).\r

            As a concrete example of this data, the hashes you get for Raids will correspond to the currently active \"Challenge Mode\".\r

            We don't have any human readable information for these, but saavy 3rd party app users could manually associate the key (a hash identifier for the \"option\" that is enabled/disabled) and the value (whether it's enabled or disabled presently)\r

            On our side, we don't necessarily even know what these are used for (the game designers know, but we don't), and we have no human readable data for them. In order to use them, you will have to do some experimentation."
          type: object
        challenges:
          items:
            $ref: "#/components/schemas/Destiny.Challenges.DestinyChallengeStatus"
          type: array
        loadoutRequirementIndex:
          description: If returned, this is the index into the DestinyActivityDefinition's "loadouts" property, indicating the currently active loadout requirements.
          format: int32
          type: integer
        modifierHashes:
          description: "If the activity has modifiers, this will be the list of modifiers that all variants have in common. Perform lookups against DestinyActivityModifierDefinition which defines the modifier being applied to get at the modifier data.\r

            Note that, in the DestiyActivityDefinition, you will see many more modifiers than this being referred to: those are all *possible* modifiers for the activity, not the active ones. Use only the active ones to match what's really live."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition"
        phases:
          description: 'If the Activity has discrete "phases" that we can track, that info will be here. Otherwise, this value will be NULL. Note that this is a list and not a dictionary: the order implies the ascending order of phases or progression in this activity.'
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneActivityPhase"
          type: array
      type: object
    Destiny.Milestones.DestinyMilestoneContent:
      description: Represents localized, extended content related to Milestones. This is intentionally returned by a separate endpoint and not with Character-level Milestone data because we do not put localized data into standard Destiny responses, both for brevity of response and for caching purposes. If you really need this data, hit the Milestone Content endpoint.
      properties:
        about:
          description: The "About this Milestone" text from the Firehose.
          type: string
        itemCategories:
          description: If DPS has defined items related to this Milestone, they can categorize those items in the Firehose. That data will then be returned as item categories here.
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneContentItemCategory"
          type: array
        status:
          description: The Current Status of the Milestone, as driven by the Firehose.
          type: string
        tips:
          description: A list of tips, provided by the Firehose.
          items:
            type: string
          type: array
      type: object
    Destiny.Milestones.DestinyMilestoneContentItemCategory:
      description: Part of our dynamic, localized Milestone content is arbitrary categories of items. These are built in our content management system, and thus aren't the same as programmatically generated rewards.
      properties:
        itemHashes:
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        title:
          type: string
      type: object
    Destiny.Milestones.DestinyMilestoneQuest:
      description: If a Milestone has one or more Quests, this will contain the live information for the character's status with one of those quests.
      properties:
        activity:
          allOf:
            - $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneActivity"
          description: "*IF* the Milestone has an active Activity that can give you greater details about what you need to do, it will be returned here. Remember to associate this with the DestinyMilestoneDefinition's activities to get details about the activity, including what specific quest it is related to if you have multiple quests to choose from."
          type: object
        challenges:
          description: The activities referred to by this quest can have many associated challenges. They are all contained here, with activityHashes so that you can associate them with the specific activity variants in which they can be found. In retrospect, I probably should have put these under the specific Activity Variants, but it's too late to change it now. Theoretically, a quest without Activities can still have Challenges, which is why this is on a higher level than activity/variants, but it probably should have been in both places. That may come as a later revision.
          items:
            $ref: "#/components/schemas/Destiny.Challenges.DestinyChallengeStatus"
          type: array
        questItemHash:
          description: Quests are defined as Items in content. As such, this is the hash identifier of the DestinyInventoryItemDefinition that represents this quest. It will have pointers to all of the steps in the quest, and display information for the quest (title, description, icon etc) Individual steps will be referred to in the Quest item's DestinyInventoryItemDefinition.setData property, and themselves are Items with their own renderable data.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        status:
          allOf:
            - $ref: "#/components/schemas/Destiny.Quests.DestinyQuestStatus"
          description: The current status of the quest for the character making the request.
          type: object
      type: object
    Destiny.Milestones.DestinyMilestoneRewardCategory:
      description: Represents a category of "summary" rewards that can be earned for the Milestone regardless of specific quest rewards that can be earned.
      properties:
        entries:
          description: The individual reward entries for this category, and their status.
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneRewardEntry"
          type: array
        rewardCategoryHash:
          description: Look up the relevant DestinyMilestoneDefinition, and then use rewardCategoryHash to look up the category info in DestinyMilestoneDefinition.rewards.
          format: uint32
          type: integer
      type: object
    Destiny.Milestones.DestinyMilestoneRewardEntry:
      description: The character-specific data for a milestone's reward entry. See DestinyMilestoneDefinition for more information about Reward Entries.
      properties:
        earned:
          description: If TRUE, the player has earned this reward.
          type: boolean
        redeemed:
          description: If TRUE, the player has redeemed/picked up/obtained this reward. Feel free to alias this to "gotTheShinyBauble" in your own codebase.
          type: boolean
        rewardEntryHash:
          description: The identifier for the reward entry in question. It is important to look up the related DestinyMilestoneRewardEntryDefinition to get the static details about the reward, which you can do by looking up the milestone's DestinyMilestoneDefinition and examining the DestinyMilestoneDefinition.rewards[rewardCategoryHash].rewardEntries[rewardEntryHash] data.
          format: uint32
          type: integer
      type: object
    Destiny.Milestones.DestinyMilestoneVendor:
      description: If a Milestone has one or more Vendors that are relevant to it, this will contain information about that vendor that you can choose to show.
      properties:
        previewItemHash:
          description: If this vendor is featuring a specific item for this event, this will be the hash identifier of that item. I'm taking bets now on how long we go before this needs to be a list or some other, more complex representation instead and I deprecate this too. I'm going to go with 5 months. Calling it now, 2017-09-14 at 9:46pm PST.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        vendorHash:
          description: The hash identifier of the Vendor related to this Milestone. You can show useful things from this, such as thier Faction icon or whatever you might care about.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
      type: object
    Destiny.Milestones.DestinyPublicMilestone:
      description: Information about milestones, presented in a character state-agnostic manner. Combine this data with DestinyMilestoneDefinition to get a full picture of the milestone, which is basically a checklist of things to do in the game. Think of this as GetPublicAdvisors 3.0, for those who used the Destiny 1 API.
      properties:
        activities:
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyPublicMilestoneChallengeActivity"
          type: array
        availableQuests:
          description: A milestone not need have even a single quest, but if there are active quests they will be returned here.
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyPublicMilestoneQuest"
          type: array
        endDate:
          description: If known, this is the date when the Milestone will expire/recycle/end.
          format: date-time
          type: string
        milestoneHash:
          description: The hash identifier for the milestone. Use it to look up the DestinyMilestoneDefinition for static data about the Milestone.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneDefinition"
        order:
          description: Used for ordering milestones in a display to match how we order them in BNet. May pull from static data, or possibly in the future from dynamic information.
          format: int32
          type: integer
        startDate:
          description: If known, this is the date when the Milestone started/became active.
          format: date-time
          type: string
        vendorHashes:
          description: "Sometimes milestones - or activities active in milestones - will have relevant vendors. These are the vendors that are currently relevant.\r

            Deprecated, already, for the sake of the new \"vendors\" property that has more data. What was I thinking."
          items:
            format: uint32
            type: integer
          type: array
        vendors:
          description: This is why we can't have nice things. This is the ordered list of vendors to be shown that relate to this milestone, potentially along with other interesting data.
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyPublicMilestoneVendor"
          type: array
      type: object
    Destiny.Milestones.DestinyPublicMilestoneActivity:
      description: A milestone may have one or more conceptual Activities associated with it, and each of those conceptual activities could have a variety of variants, modes, tiers, what-have-you. Our attempts to determine what qualifies as a conceptual activity are, unfortunately, janky. So if you see missing modes or modes that don't seem appropriate to you, let us know and I'll buy you a beer if we ever meet up in person.
      properties:
        activityHash:
          description: The hash identifier of the activity that's been chosen to be considered the canonical "conceptual" activity definition. This may have many variants, defined herein.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        activityModeHash:
          description: "The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it's not clear what mode the PVP map is being played under. If it's a playlist, this will be less specific: but hopefully useful in some way."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityModeDefinition"
        activityModeType:
          description: The enumeration equivalent of the most specific Activity Mode under which this activity is played.
          enum:
            - "0"
            - "2"
            - "3"
            - "4"
            - "5"
            - "6"
            - "7"
            - "9"
            - "10"
            - "11"
            - "12"
            - "13"
            - "15"
            - "16"
            - "17"
            - "18"
            - "19"
            - "20"
            - "21"
            - "22"
            - "24"
            - "25"
            - "26"
            - "27"
            - "28"
            - "29"
            - "30"
            - "31"
            - "32"
            - "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"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: Story
              numericValue: "2"
            - identifier: Strike
              numericValue: "3"
            - identifier: Raid
              numericValue: "4"
            - identifier: AllPvP
              numericValue: "5"
            - identifier: Patrol
              numericValue: "6"
            - identifier: AllPvE
              numericValue: "7"
            - identifier: Reserved9
              numericValue: "9"
            - identifier: Control
              numericValue: "10"
            - identifier: Reserved11
              numericValue: "11"
            - description: Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
              identifier: Clash
              numericValue: "12"
            - identifier: Reserved13
              numericValue: "13"
            - identifier: CrimsonDoubles
              numericValue: "15"
            - identifier: Nightfall
              numericValue: "16"
            - identifier: HeroicNightfall
              numericValue: "17"
            - identifier: AllStrikes
              numericValue: "18"
            - identifier: IronBanner
              numericValue: "19"
            - identifier: Reserved20
              numericValue: "20"
            - identifier: Reserved21
              numericValue: "21"
            - identifier: Reserved22
              numericValue: "22"
            - identifier: Reserved24
              numericValue: "24"
            - identifier: AllMayhem
              numericValue: "25"
            - identifier: Reserved26
              numericValue: "26"
            - identifier: Reserved27
              numericValue: "27"
            - identifier: Reserved28
              numericValue: "28"
            - identifier: Reserved29
              numericValue: "29"
            - identifier: Reserved30
              numericValue: "30"
            - identifier: Supremacy
              numericValue: "31"
            - identifier: PrivateMatchesAll
              numericValue: "32"
            - identifier: Survival
              numericValue: "37"
            - identifier: Countdown
              numericValue: "38"
            - identifier: TrialsOfTheNine
              numericValue: "39"
            - identifier: Social
              numericValue: "40"
            - identifier: TrialsCountdown
              numericValue: "41"
            - identifier: TrialsSurvival
              numericValue: "42"
            - identifier: IronBannerControl
              numericValue: "43"
            - identifier: IronBannerClash
              numericValue: "44"
            - identifier: IronBannerSupremacy
              numericValue: "45"
            - identifier: ScoredNightfall
              numericValue: "46"
            - identifier: ScoredHeroicNightfall
              numericValue: "47"
            - identifier: Rumble
              numericValue: "48"
            - identifier: AllDoubles
              numericValue: "49"
            - identifier: Doubles
              numericValue: "50"
            - identifier: PrivateMatchesClash
              numericValue: "51"
            - identifier: PrivateMatchesControl
              numericValue: "52"
            - identifier: PrivateMatchesSupremacy
              numericValue: "53"
            - identifier: PrivateMatchesCountdown
              numericValue: "54"
            - identifier: PrivateMatchesSurvival
              numericValue: "55"
            - identifier: PrivateMatchesMayhem
              numericValue: "56"
            - identifier: PrivateMatchesRumble
              numericValue: "57"
            - identifier: HeroicAdventure
              numericValue: "58"
            - identifier: Showdown
              numericValue: "59"
            - identifier: Lockdown
              numericValue: "60"
            - identifier: Scorched
              numericValue: "61"
            - identifier: ScorchedTeam
              numericValue: "62"
            - identifier: Gambit
              numericValue: "63"
            - identifier: AllPvECompetitive
              numericValue: "64"
            - identifier: Breakthrough
              numericValue: "65"
            - identifier: BlackArmoryRun
              numericValue: "66"
            - identifier: Salvage
              numericValue: "67"
            - identifier: IronBannerSalvage
              numericValue: "68"
            - identifier: PvPCompetitive
              numericValue: "69"
            - identifier: PvPQuickplay
              numericValue: "70"
            - identifier: ClashQuickplay
              numericValue: "71"
            - identifier: ClashCompetitive
              numericValue: "72"
            - identifier: ControlQuickplay
              numericValue: "73"
            - identifier: ControlCompetitive
              numericValue: "74"
            - identifier: GambitPrime
              numericValue: "75"
            - identifier: Reckoning
              numericValue: "76"
            - identifier: Menagerie
              numericValue: "77"
            - identifier: VexOffensive
              numericValue: "78"
            - identifier: NightmareHunt
              numericValue: "79"
            - identifier: Elimination
              numericValue: "80"
            - identifier: Momentum
              numericValue: "81"
            - identifier: Dungeon
              numericValue: "82"
            - identifier: Sundial
              numericValue: "83"
            - identifier: TrialsOfOsiris
              numericValue: "84"
            - identifier: Dares
              numericValue: "85"
            - identifier: Offensive
              numericValue: "86"
            - identifier: LostSector
              numericValue: "87"
            - identifier: Rift
              numericValue: "88"
            - identifier: ZoneControl
              numericValue: "89"
            - identifier: IronBannerRift
              numericValue: "90"
            - identifier: IronBannerZoneControl
              numericValue: "91"
        modifierHashes:
          description: "The activity may have 0-to-many modifiers: if it does, this will contain the hashes to the DestinyActivityModifierDefinition that defines the modifier being applied."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition"
        variants:
          description: Every relevant variation of this conceptual activity, including the conceptual activity itself, have variants defined here.
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyPublicMilestoneActivityVariant"
          type: array
      type: object
    Destiny.Milestones.DestinyPublicMilestoneActivityVariant:
      description: Represents a variant of an activity that's relevant to a milestone.
      properties:
        activityHash:
          description: The hash identifier of this activity variant. Examine the activity's definition in the Manifest database to determine what makes it a distinct variant. Usually it will be difficulty level or whether or not it is a guided game variant of the activity, but theoretically it could be distinguished in any arbitrary way.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        activityModeHash:
          description: "The hash identifier of the most specific Activity Mode under which this activity is played. This is useful for situations where the activity in question is - for instance - a PVP map, but it's not clear what mode the PVP map is being played under. If it's a playlist, this will be less specific: but hopefully useful in some way."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityModeDefinition"
        activityModeType:
          description: The enumeration equivalent of the most specific Activity Mode under which this activity is played.
          enum:
            - "0"
            - "2"
            - "3"
            - "4"
            - "5"
            - "6"
            - "7"
            - "9"
            - "10"
            - "11"
            - "12"
            - "13"
            - "15"
            - "16"
            - "17"
            - "18"
            - "19"
            - "20"
            - "21"
            - "22"
            - "24"
            - "25"
            - "26"
            - "27"
            - "28"
            - "29"
            - "30"
            - "31"
            - "32"
            - "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"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: Story
              numericValue: "2"
            - identifier: Strike
              numericValue: "3"
            - identifier: Raid
              numericValue: "4"
            - identifier: AllPvP
              numericValue: "5"
            - identifier: Patrol
              numericValue: "6"
            - identifier: AllPvE
              numericValue: "7"
            - identifier: Reserved9
              numericValue: "9"
            - identifier: Control
              numericValue: "10"
            - identifier: Reserved11
              numericValue: "11"
            - description: Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
              identifier: Clash
              numericValue: "12"
            - identifier: Reserved13
              numericValue: "13"
            - identifier: CrimsonDoubles
              numericValue: "15"
            - identifier: Nightfall
              numericValue: "16"
            - identifier: HeroicNightfall
              numericValue: "17"
            - identifier: AllStrikes
              numericValue: "18"
            - identifier: IronBanner
              numericValue: "19"
            - identifier: Reserved20
              numericValue: "20"
            - identifier: Reserved21
              numericValue: "21"
            - identifier: Reserved22
              numericValue: "22"
            - identifier: Reserved24
              numericValue: "24"
            - identifier: AllMayhem
              numericValue: "25"
            - identifier: Reserved26
              numericValue: "26"
            - identifier: Reserved27
              numericValue: "27"
            - identifier: Reserved28
              numericValue: "28"
            - identifier: Reserved29
              numericValue: "29"
            - identifier: Reserved30
              numericValue: "30"
            - identifier: Supremacy
              numericValue: "31"
            - identifier: PrivateMatchesAll
              numericValue: "32"
            - identifier: Survival
              numericValue: "37"
            - identifier: Countdown
              numericValue: "38"
            - identifier: TrialsOfTheNine
              numericValue: "39"
            - identifier: Social
              numericValue: "40"
            - identifier: TrialsCountdown
              numericValue: "41"
            - identifier: TrialsSurvival
              numericValue: "42"
            - identifier: IronBannerControl
              numericValue: "43"
            - identifier: IronBannerClash
              numericValue: "44"
            - identifier: IronBannerSupremacy
              numericValue: "45"
            - identifier: ScoredNightfall
              numericValue: "46"
            - identifier: ScoredHeroicNightfall
              numericValue: "47"
            - identifier: Rumble
              numericValue: "48"
            - identifier: AllDoubles
              numericValue: "49"
            - identifier: Doubles
              numericValue: "50"
            - identifier: PrivateMatchesClash
              numericValue: "51"
            - identifier: PrivateMatchesControl
              numericValue: "52"
            - identifier: PrivateMatchesSupremacy
              numericValue: "53"
            - identifier: PrivateMatchesCountdown
              numericValue: "54"
            - identifier: PrivateMatchesSurvival
              numericValue: "55"
            - identifier: PrivateMatchesMayhem
              numericValue: "56"
            - identifier: PrivateMatchesRumble
              numericValue: "57"
            - identifier: HeroicAdventure
              numericValue: "58"
            - identifier: Showdown
              numericValue: "59"
            - identifier: Lockdown
              numericValue: "60"
            - identifier: Scorched
              numericValue: "61"
            - identifier: ScorchedTeam
              numericValue: "62"
            - identifier: Gambit
              numericValue: "63"
            - identifier: AllPvECompetitive
              numericValue: "64"
            - identifier: Breakthrough
              numericValue: "65"
            - identifier: BlackArmoryRun
              numericValue: "66"
            - identifier: Salvage
              numericValue: "67"
            - identifier: IronBannerSalvage
              numericValue: "68"
            - identifier: PvPCompetitive
              numericValue: "69"
            - identifier: PvPQuickplay
              numericValue: "70"
            - identifier: ClashQuickplay
              numericValue: "71"
            - identifier: ClashCompetitive
              numericValue: "72"
            - identifier: ControlQuickplay
              numericValue: "73"
            - identifier: ControlCompetitive
              numericValue: "74"
            - identifier: GambitPrime
              numericValue: "75"
            - identifier: Reckoning
              numericValue: "76"
            - identifier: Menagerie
              numericValue: "77"
            - identifier: VexOffensive
              numericValue: "78"
            - identifier: NightmareHunt
              numericValue: "79"
            - identifier: Elimination
              numericValue: "80"
            - identifier: Momentum
              numericValue: "81"
            - identifier: Dungeon
              numericValue: "82"
            - identifier: Sundial
              numericValue: "83"
            - identifier: TrialsOfOsiris
              numericValue: "84"
            - identifier: Dares
              numericValue: "85"
            - identifier: Offensive
              numericValue: "86"
            - identifier: LostSector
              numericValue: "87"
            - identifier: Rift
              numericValue: "88"
            - identifier: ZoneControl
              numericValue: "89"
            - identifier: IronBannerRift
              numericValue: "90"
            - identifier: IronBannerZoneControl
              numericValue: "91"
      type: object
    Destiny.Milestones.DestinyPublicMilestoneChallenge:
      description: A Milestone can have many Challenges. Challenges are just extra Objectives that provide a fun way to mix-up play and provide extra rewards.
      properties:
        activityHash:
          description: IF the Objective is related to a specific Activity, this will be that activity's hash. Use it to look up the DestinyActivityDefinition for additional data to show.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        objectiveHash:
          description: The objective for the Challenge, which should have human-readable data about what needs to be done to accomplish the objective. Use this hash to look up the DestinyObjectiveDefinition.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
      type: object
    Destiny.Milestones.DestinyPublicMilestoneChallengeActivity:
      properties:
        activityHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        booleanActivityOptions:
          additionalProperties:
            type: boolean
          description: "The set of activity options for this activity, keyed by an identifier that's unique for this activity (not guaranteed to be unique between or across all activities, though should be unique for every *variant* of a given *conceptual* activity: for instance, the original D2 Raid has many variant DestinyActivityDefinitions. While other activities could potentially have the same option hashes, for any given D2 base Raid variant the hash will be unique).\r

            As a concrete example of this data, the hashes you get for Raids will correspond to the currently active \"Challenge Mode\".\r

            We have no human readable information for this data, so it's up to you if you want to associate it with such info to show it."
          type: object
        challengeObjectiveHashes:
          items:
            format: uint32
            type: integer
          type: array
        loadoutRequirementIndex:
          description: If returned, this is the index into the DestinyActivityDefinition's "loadouts" property, indicating the currently active loadout requirements.
          format: int32
          type: integer
        modifierHashes:
          description: "If the activity has modifiers, this will be the list of modifiers that all variants have in common. Perform lookups against DestinyActivityModifierDefinition which defines the modifier being applied to get at the modifier data.\r

            Note that, in the DestiyActivityDefinition, you will see many more modifiers than this being referred to: those are all *possible* modifiers for the activity, not the active ones. Use only the active ones to match what's really live."
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.ActivityModifiers.DestinyActivityModifierDefinition"
        phaseHashes:
          description: "The ordered list of phases for this activity, if any. Note that we have no human readable info for phases, nor any entities to relate them to: relating these hashes to something human readable is up to you unfortunately."
          items:
            format: uint32
            type: integer
          type: array
      type: object
    Destiny.Milestones.DestinyPublicMilestoneQuest:
      properties:
        activity:
          allOf:
            - $ref: "#/components/schemas/Destiny.Milestones.DestinyPublicMilestoneActivity"
          description: A milestone need not have an active activity, but if there is one it will be returned here, along with any variant and additional information.
          type: object
        challenges:
          description: "For the given quest there could be 0-to-Many challenges: mini quests that you can perform in the course of doing this quest, that may grant you rewards and benefits."
          items:
            $ref: "#/components/schemas/Destiny.Milestones.DestinyPublicMilestoneChallenge"
          type: array
        questItemHash:
          description: Quests are defined as Items in content. As such, this is the hash identifier of the DestinyInventoryItemDefinition that represents this quest. It will have pointers to all of the steps in the quest, and display information for the quest (title, description, icon etc) Individual steps will be referred to in the Quest item's DestinyInventoryItemDefinition.setData property, and themselves are Items with their own renderable data.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Milestones.DestinyMilestoneDefinition"
      type: object
    Destiny.Milestones.DestinyPublicMilestoneVendor:
      properties:
        previewItemHash:
          description: If this vendor is featuring a specific item for this event, this will be the hash identifier of that item. I'm taking bets now on how long we go before this needs to be a list or some other, more complex representation instead and I deprecate this too. I'm going to go with 5 months. Calling it now, 2017-09-14 at 9:46pm PST.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        vendorHash:
          description: The hash identifier of the Vendor related to this Milestone. You can show useful things from this, such as thier Faction icon or whatever you might care about.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyVendorDefinition"
      type: object
    Destiny.Misc.DestinyColor:
      description: Represents a color whose RGBA values are all represented as values between 0 and 255.
      properties:
        alpha:
          format: byte
          type: string
        blue:
          format: byte
          type: string
        green:
          format: byte
          type: string
        red:
          format: byte
          type: string
      type: object
    Destiny.Perks.DestinyPerkReference:
      description: "The list of perks to display in an item tooltip - and whether or not they have been activated.\r

        Perks apply a variety of effects to a character, and are generally either intrinsic to the item or provided in activated talent nodes or sockets."
      properties:
        iconPath:
          description: The icon for the perk.
          type: string
        isActive:
          description: "Whether this perk is currently active. (We may return perks that you have not actually activated yet: these represent perks that you should show in the item's tooltip, but that the user has not yet activated.)"
          type: boolean
        perkHash:
          description: The hash identifier for the perk, which can be used to look up DestinySandboxPerkDefinition if it exists. Be warned, perks frequently do not have user-viewable information. You should examine whether you actually found a name/description in the perk's definition before you show it to the user.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinySandboxPerkDefinition"
        visible:
          description: Some perks provide benefits, but aren't visible in the UI. This value will let you know if this is perk should be shown in your UI.
          type: boolean
      type: object
    Destiny.PlugAvailabilityMode:
      $ref: "#/components/schemas/schema71"
    Destiny.PlugUiStyles:
      $ref: "#/components/schemas/schema70"
    Destiny.Progression.DestinyFactionProgression:
      description: Mostly for historical purposes, we segregate Faction progressions from other progressions. This is just a DestinyProgression with a shortcut for finding the DestinyFactionDefinition of the faction related to the progression.
      properties:
        currentProgress:
          description: This is the total amount of progress obtained overall for this progression (for instance, the total amount of Character Level experience earned)
          format: int32
          type: integer
        currentResetCount:
          description: The number of resets of this progression you've executed this season, if applicable to this progression.
          format: int32
          type: integer
        dailyLimit:
          description: If this progression has a daily limit, this is that limit.
          format: int32
          type: integer
        dailyProgress:
          description: The amount of progress earned today for this progression.
          format: int32
          type: integer
        factionHash:
          description: The hash identifier of the Faction related to this progression. Use it to look up the DestinyFactionDefinition for more rendering info.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyFactionDefinition"
        factionVendorIndex:
          description: The index of the Faction vendor that is currently available. Will be set to -1 if no vendors are available.
          format: int32
          type: integer
        level:
          description: This is the level of the progression (for instance, the Character Level).
          format: int32
          type: integer
        levelCap:
          description: This is the maximum possible level you can achieve for this progression (for example, the maximum character level obtainable)
          format: int32
          type: integer
        nextLevelAt:
          description: The total amount of progression (i.e. "Experience") needed in order to reach the next level.
          format: int32
          type: integer
        progressToNextLevel:
          description: The amount of progression (i.e. "Experience") needed to reach the next level of this Progression. Jeez, progression is such an overloaded word.
          format: int32
          type: integer
        progressionHash:
          description: The hash identifier of the Progression in question. Use it to look up the DestinyProgressionDefinition in static data.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyProgressionDefinition"
        rewardItemStates:
          description: Information about historical rewards for this progression, if there is any data for it.
          items:
            description: Represents the different states a progression reward item can be in.
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema22"
          type: array
        seasonResets:
          description: Information about historical resets of this progression, if there is any data for it.
          items:
            $ref: "#/components/schemas/Destiny.DestinyProgressionResetEntry"
          type: array
        stepIndex:
          description: Progressions define their levels in "steps". Since the last step may be repeatable, the user may be at a higher level than the actual Step achieved in the progression. Not necessarily useful, but potentially interesting for those cruising the API. Relate this to the "steps" property of the DestinyProgression to see which step the user is on, if you care about that. (Note that this is Content Version dependent since it refers to indexes.)
          format: int32
          type: integer
        weeklyLimit:
          description: If this progression has a weekly limit, this is that limit.
          format: int32
          type: integer
        weeklyProgress:
          description: The amount of progress earned toward this progression in the current week.
          format: int32
          type: integer
      type: object
    Destiny.Quests.DestinyObjectiveProgress:
      description: Returns data about a character's status with a given Objective. Combine with DestinyObjectiveDefinition static data for display purposes.
      properties:
        activityHash:
          description: If the Objective has an Activity associated with it, this is the unique identifier of the Activity being referred to. Use to look up the DestinyActivityDefinition in static data. This will give localized data about *what* you should be playing for the objective to be achieved.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyActivityDefinition"
        complete:
          description: Whether or not the Objective is completed.
          type: boolean
        completionValue:
          description: "As of Forsaken, objectives' completion value is determined dynamically at runtime.\r

            This value represents the threshold of progress you need to surpass in order for this objective to be considered \"complete\".\r

            If you were using objective data, switch from using the DestinyObjectiveDefinition's \"completionValue\" to this value."
          format: int32
          type: integer
        destinationHash:
          description: If the Objective has a Destination associated with it, this is the unique identifier of the Destination being referred to. Use to look up the DestinyDestinationDefinition in static data. This will give localized data about *where* in the universe the objective should be achieved.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyDestinationDefinition"
        objectiveHash:
          description: The unique identifier of the Objective being referred to. Use to look up the DestinyObjectiveDefinition in static data.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyObjectiveDefinition"
        progress:
          description: If progress has been made, and the progress can be measured numerically, this will be the value of that progress. You can compare it to the DestinyObjectiveDefinition.completionValue property for current vs. upper bounds, and use DestinyObjectiveDefinition.inProgressValueStyle or completedValueStyle to determine how this should be rendered. Note that progress, in Destiny 2, need not be a literal numeric progression. It could be one of a number of possible values, even a Timestamp. Always examine DestinyObjectiveDefinition.inProgressValueStyle or completedValueStyle before rendering progress.
          format: int32
          type: integer
        visible:
          description: If this is true, the objective is visible in-game. Otherwise, it's not yet visible to the player. Up to you if you want to honor this property.
          type: boolean
      type: object
    Destiny.Quests.DestinyQuestStatus:
      description: "Data regarding the progress of a Quest for a specific character. Quests are composed of multiple steps, each with potentially multiple objectives: this QuestStatus will return Objective data for the *currently active* step in this quest."
      properties:
        completed:
          description: Whether or not the whole quest has been completed, regardless of whether or not you have redeemed the rewards for the quest.
          type: boolean
        itemInstanceId:
          description: The current Quest Step will be an instanced item in the player's inventory. If you care about that, this is the instance ID of that item.
          format: int64
          type: integer
        questHash:
          description: "The hash identifier for the Quest Item. (Note: Quests are defined as Items, and thus you would use this to look up the quest's DestinyInventoryItemDefinition). For information on all steps in the quest, you can then examine its DestinyInventoryItemDefinition.setData property for Quest Steps (which are *also* items). You can use the Item Definition to display human readable data about the overall quest."
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        redeemed:
          description: Whether or not you have redeemed rewards for this quest.
          type: boolean
        started:
          description: Whether or not you have started this quest.
          type: boolean
        stepHash:
          description: The hash identifier of the current Quest Step, which is also a DestinyInventoryItemDefinition. You can use this to get human readable data about the current step and what to do in that step.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        stepObjectives:
          description: A step can have multiple objectives. This will give you the progress for each objective in the current step, in the order in which they are rendered in-game.
          items:
            $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
          type: array
        tracked:
          description: Whether or not the quest is tracked
          type: boolean
        vendorHash:
          description: If the quest has a related Vendor that you should talk to in order to initiate the quest/earn rewards/continue the quest, this will be the hash identifier of that Vendor. Look it up its DestinyVendorDefinition.
          format: uint32
          type: integer
      type: object
    Destiny.Reporting.Requests.DestinyReportOffensePgcrRequest:
      description: "If you want to report a player causing trouble in a game, this request will let you report that player and the specific PGCR in which the trouble was caused, along with why.\r

        Please don't do this just because you dislike the person! I mean, I know people will do it anyways, but can you like take a good walk, or put a curse on them or something? Do me a solid and reconsider.\r

        Note that this request object doesn't have the actual PGCR ID nor your Account/Character ID in it. We will infer that information from your authentication information and the PGCR ID that you pass into the URL of the reporting endpoint itself."
      properties:
        offendingCharacterId:
          description: Within the PGCR provided when calling the Reporting endpoint, this should be the character ID of the user that you thought was violating terms of use. They must exist in the PGCR provided.
          format: int64
          type: integer
        reasonCategoryHashes:
          description: So you've decided to report someone instead of cursing them and their descendants. Well, okay then. This is the category or categorie(s) of infractions for which you are reporting the user. These are hash identifiers that map to DestinyReportReasonCategoryDefinition entries.
          items:
            format: uint32
            type: integer
          type: array
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.Reporting.DestinyReportReasonCategoryDefinition"
        reasonHashes:
          description: If applicable, provide a more specific reason(s) within the general category of problems provided by the reasonHash. This is also an identifier for a reason. All reasonHashes provided must be children of at least one the reasonCategoryHashes provided.
          items:
            format: uint32
            type: integer
          type: array
      type: object
    Destiny.Requests.Actions.DestinyActionRequest:
      properties:
        membershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
      type: object
    Destiny.Requests.Actions.DestinyCharacterActionRequest:
      properties:
        characterId:
          format: int64
          type: integer
        membershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
      type: object
    Destiny.Requests.Actions.DestinyInsertPlugsActionRequest:
      properties:
        actionToken:
          description: Action token provided by the AwaGetActionToken API call.
          type: string
        characterId:
          format: int64
          type: integer
        itemInstanceId:
          description: The instance ID of the item having a plug inserted. Only instanced items can have sockets.
          format: int64
          type: integer
        membershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        plug:
          allOf:
            - $ref: "#/components/schemas/Destiny.Requests.Actions.DestinyInsertPlugsRequestEntry"
          description: The plugs being inserted.
          type: object
      type: object
    Destiny.Requests.Actions.DestinyInsertPlugsFreeActionRequest:
      properties:
        characterId:
          format: int64
          type: integer
        itemId:
          description: The instance ID of the item for this action request.
          format: int64
          type: integer
        membershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        plug:
          allOf:
            - $ref: "#/components/schemas/Destiny.Requests.Actions.DestinyInsertPlugsRequestEntry"
          description: The plugs being inserted.
          type: object
      type: object
    Destiny.Requests.Actions.DestinyInsertPlugsRequestEntry:
      description: "Represents all of the data related to a single plug to be inserted.\r

        Note that, while you *can* point to a socket that represents infusion, you will receive an error if you attempt to do so. Come on guys, let's play nice."
      properties:
        plugItemHash:
          description: "Plugs are never instanced (except in infusion). So with the hash alone, we should be able to: 1) Infer whether the player actually needs to have the item, or if it's a reusable plug 2) Perform any operation needed to use the Plug, including removing the plug item and running reward sheets."
          format: uint32
          type: integer
        socketArrayType:
          description: This property, combined with the socketIndex, tells us which socket we are referring to (since operations can be performed on both Intrinsic and "default" sockets, and they occupy different arrays in the Inventory Item Definition). I know, I know. Don't give me that look.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema102"
        socketIndex:
          description: "The index into the socket array, which identifies the specific socket being operated on. We also need to know the socketArrayType in order to uniquely identify the socket.\r

            Don't point to or try to insert a plug into an infusion socket. It won't work."
          format: int32
          type: integer
      type: object
    Destiny.Requests.Actions.DestinyItemActionRequest:
      properties:
        characterId:
          format: int64
          type: integer
        itemId:
          description: The instance ID of the item for this action request.
          format: int64
          type: integer
        membershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
      type: object
    Destiny.Requests.Actions.DestinyItemSetActionRequest:
      properties:
        characterId:
          format: int64
          type: integer
        itemIds:
          items:
            format: int64
            type: integer
          type: array
        membershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
      type: object
    Destiny.Requests.Actions.DestinyItemStateRequest:
      properties:
        characterId:
          format: int64
          type: integer
        itemId:
          description: The instance ID of the item for this action request.
          format: int64
          type: integer
        membershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        state:
          type: boolean
      type: object
    Destiny.Requests.Actions.DestinyLoadoutActionRequest:
      properties:
        characterId:
          format: int64
          type: integer
        loadoutIndex:
          description: The index of the loadout for this action request.
          format: int32
          type: integer
        membershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
      type: object
    Destiny.Requests.Actions.DestinyLoadoutUpdateActionRequest:
      properties:
        characterId:
          format: int64
          type: integer
        colorHash:
          format: uint32
          type: integer
        iconHash:
          format: uint32
          type: integer
        loadoutIndex:
          description: The index of the loadout for this action request.
          format: int32
          type: integer
        membershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        nameHash:
          format: uint32
          type: integer
      type: object
    Destiny.Requests.Actions.DestinyPostmasterTransferRequest:
      properties:
        characterId:
          format: int64
          type: integer
        itemId:
          description: The instance ID of the item for this action request.
          format: int64
          type: integer
        itemReferenceHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        membershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        stackSize:
          format: int32
          type: integer
      type: object
    Destiny.Requests.Actions.DestinySocketArrayType:
      $ref: "#/components/schemas/schema102"
    Destiny.Requests.DestinyItemTransferRequest:
      properties:
        characterId:
          format: int64
          type: integer
        itemId:
          description: The instance ID of the item for this action request.
          format: int64
          type: integer
        itemReferenceHash:
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        membershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        stackSize:
          format: int32
          type: integer
        transferToVault:
          type: boolean
      type: object
    Destiny.Responses.DestinyCharacterResponse:
      description: The response contract for GetDestinyCharacter, with components that can be returned for character and item-level data.
      properties:
        activities:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyCharacterActivitiesComponent"
          description: "Activity data - info about current activities available to the player.\r

            COMPONENT TYPE: CharacterActivities"
          type: object
          x-destiny-component-type-dependency: CharacterActivities
        character:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyCharacterComponent"
          description: "Base information about the character in question.\r

            COMPONENT TYPE: Characters"
          type: object
          x-destiny-component-type-dependency: Characters
        collectibles:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyCollectiblesComponent"
          description: "COMPONENT TYPE: Collectibles"
          type: object
          x-destiny-component-type-dependency: Collectibles
        currencyLookups:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyCurrenciesComponent"
          description: "A \"lookup\" convenience component that can be used to quickly check if the character has access to items that can be used for purchasing.\r

            COMPONENT TYPE: CurrencyLookups"
          type: object
          x-destiny-component-type-dependency: CurrencyLookups
        equipment:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyInventoryComponent"
          description: "Equipped items on the character.\r

            COMPONENT TYPE: CharacterEquipment"
          type: object
          x-destiny-component-type-dependency: CharacterEquipment
        inventory:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyInventoryComponent"
          description: "The character-level non-equipped inventory items.\r

            COMPONENT TYPE: CharacterInventories"
          type: object
          x-destiny-component-type-dependency: CharacterInventories
        itemComponents:
          allOf:
            - $ref: "#/components/schemas/DestinyItemComponentSetOfint64"
          description: "The set of components belonging to the player's instanced items.\r

            COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]"
          type: object
        kiosks:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyKiosksComponent"
          description: "Items available from Kiosks that are available to this specific character. \r

            COMPONENT TYPE: Kiosks"
          type: object
          x-destiny-component-type-dependency: Kiosks
        loadouts:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyLoadoutsComponent"
          description: "The loadouts available to the character.\r

            COMPONENT TYPE: CharacterLoadouts"
          type: object
          x-destiny-component-type-dependency: CharacterLoadouts
        plugSets:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyPlugSetsComponent"
          description: "When sockets refer to reusable Plug Sets (see DestinyPlugSetDefinition for more info), this is the set of plugs and their states that are scoped to this character.\r

            This comes back with ItemSockets, as it is needed for a complete picture of the sockets on requested items.\r

            COMPONENT TYPE: ItemSockets"
          type: object
          x-destiny-component-type-dependency: ItemSockets
        presentationNodes:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyPresentationNodesComponent"
          description: "COMPONENT TYPE: PresentationNodes"
          type: object
          x-destiny-component-type-dependency: PresentationNodes
        progressions:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyCharacterProgressionComponent"
          description: "Character progression data, including Milestones.\r

            COMPONENT TYPE: CharacterProgressions"
          type: object
          x-destiny-component-type-dependency: CharacterProgressions
        records:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyCharacterRecordsComponent"
          description: "COMPONENT TYPE: Records"
          type: object
          x-destiny-component-type-dependency: Records
        renderData:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyCharacterRenderComponent"
          description: "Character rendering data - a minimal set of information about equipment and dyes used for rendering.\r

            COMPONENT TYPE: CharacterRenderData"
          type: object
          x-destiny-component-type-dependency: CharacterRenderData
        uninstancedItemComponents:
          allOf:
            - $ref: "#/components/schemas/DestinyBaseItemComponentSetOfuint32"
          description: "The set of components belonging to the player's UNinstanced items. Because apparently now those too can have information relevant to the character's state.\r

            COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]"
          type: object
      type: object
    Destiny.Responses.DestinyCollectibleNodeDetailResponse:
      description: Returns the detailed information about a Collectible Presentation Node and any Collectibles that are direct descendants.
      properties:
        collectibleItemComponents:
          allOf:
            - $ref: "#/components/schemas/DestinyItemComponentSetOfuint32"
          description: "Item components, keyed by the item hash of the items pointed at collectibles found under the requested Presentation Node.\r

            NOTE: I had a lot of hemming and hawing about whether these should be keyed by collectible hash or item hash... but ultimately having it be keyed by item hash meant that UI that already uses DestinyItemComponentSet data wouldn't have to have a special override to do the collectible -> item lookup once you delve into an item's details, and it also meant that you didn't have to remember that the Hash being used as the key for plugSets was different from the Hash being used for the other Dictionaries. As a result, using the Item Hash felt like the least crappy solution.\r

            We may all come to regret this decision. We will see.\r

            COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]"
          type: object
        collectibles:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyCollectiblesComponent"
          description: "COMPONENT TYPE: Collectibles"
          type: object
          x-destiny-component-type-dependency: Collectibles
      type: object
    Destiny.Responses.DestinyErrorProfile:
      description: "If a Destiny Profile can't be returned, but we're pretty certain it's a valid Destiny account, this will contain as much info as we can get about the profile for your use.\r

        Assume that the most you'll get is the Error Code, the Membership Type and the Membership ID."
      properties:
        errorCode:
          description: The error that we encountered. You should be able to look up localized text to show to the user for these failures.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema1"
        infoCard:
          allOf:
            - $ref: "#/components/schemas/User.UserInfoCard"
          description: Basic info about the account that failed. Don't expect anything other than membership ID, Membership Type, and displayName to be populated.
          type: object
      type: object
    Destiny.Responses.DestinyItemChangeResponse:
      properties:
        addedInventoryItems:
          description: Items that appeared in the inventory possibly as a result of an action.
          items:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemComponent"
          type: array
        item:
          $ref: "#/components/schemas/Destiny.Responses.DestinyItemResponse"
        removedInventoryItems:
          description: Items that disappeared from the inventory possibly as a result of an action.
          items:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemComponent"
          type: array
      type: object
    Destiny.Responses.DestinyItemResponse:
      description: "The response object for retrieving an individual instanced item. None of these components are relevant for an item that doesn't have an \"itemInstanceId\": for those, get your information from the DestinyInventoryDefinition."
      properties:
        characterId:
          description: If the item is on a character, this will return the ID of the character that is holding the item.
          format: int64
          type: integer
        instance:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyItemInstanceComponent"
          description: "Basic instance data for the item.\r

            COMPONENT TYPE: ItemInstances"
          type: object
          x-destiny-component-type-dependency: ItemInstances
        item:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyItemComponent"
          description: "Common data for the item relevant to its non-instanced properties.\r

            COMPONENT TYPE: ItemCommonData"
          type: object
          x-destiny-component-type-dependency: ItemCommonData
        objectives:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyItemObjectivesComponent"
          description: "Information specifically about the item's objectives.\r

            COMPONENT TYPE: ItemObjectives"
          type: object
          x-destiny-component-type-dependency: ItemObjectives
        perks:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyItemPerksComponent"
          description: "Information specifically about the perks currently active on the item.\r

            COMPONENT TYPE: ItemPerks"
          type: object
          x-destiny-component-type-dependency: ItemPerks
        plugObjectives:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyItemPlugObjectivesComponent"
          description: "Information about objectives on Plugs for a given item. See the component's documentation for more info.\r

            COMPONENT TYPE: ItemPlugObjectives"
          type: object
          x-destiny-component-type-dependency: ItemPlugObjectives
        renderData:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyItemRenderComponent"
          description: "Information about how to render the item in 3D.\r

            COMPONENT TYPE: ItemRenderData"
          type: object
          x-destiny-component-type-dependency: ItemRenderData
        reusablePlugs:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyItemReusablePlugsComponent"
          description: "Information about the Reusable Plugs for sockets on an item. These are plugs that you can insert into the given socket regardless of if you actually own an instance of that plug: they are logic-driven plugs rather than inventory-driven.\r

            \ These may need to be combined with Plug Set component data to get a full picture of available plugs on a given socket.\r

            \ COMPONENT TYPE: ItemReusablePlugs"
          type: object
          x-destiny-component-type-dependency: ItemReusablePlugs
        sockets:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyItemSocketsComponent"
          description: "Information about the sockets of the item: which are currently active, what potential sockets you could have and the stats/abilities/perks you can gain from them.\r

            COMPONENT TYPE: ItemSockets"
          type: object
          x-destiny-component-type-dependency: ItemSockets
        stats:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyItemStatsComponent"
          description: "Information about the computed stats of the item: power, defense, etc...\r

            COMPONENT TYPE: ItemStats"
          type: object
          x-destiny-component-type-dependency: ItemStats
        talentGrid:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyItemTalentGridComponent"
          description: "Information about the talent grid attached to the item. Talent nodes can provide a variety of benefits and abilities, and in Destiny 2 are used almost exclusively for the character's \"Builds\".\r

            COMPONENT TYPE: ItemTalentGrids"
          type: object
          x-destiny-component-type-dependency: ItemTalentGrids
      type: object
    Destiny.Responses.DestinyLinkedProfilesResponse:
      description: "I know what you seek. You seek linked accounts. Found them, you have.\r

        This contract returns a minimal amount of data about Destiny Accounts that are linked through your Bungie.Net account. We will not return accounts in this response whose"
      properties:
        bnetMembership:
          allOf:
            - $ref: "#/components/schemas/User.UserInfoCard"
          description: "If the requested membership had a linked Bungie.Net membership ID, this is the basic information about that BNet account.\r

            I know, Tetron; I know this is mixing UserServices concerns with DestinyServices concerns. But it's so damn convenient! https://www.youtube.com/watch?v=X5R-bB-gKVI"
          type: object
        profiles:
          description: Any Destiny account for whom we could successfully pull characters will be returned here, as the Platform-level summary of user data. (no character data, no Destiny account data other than the Membership ID and Type so you can make further queries)
          items:
            $ref: "#/components/schemas/Destiny.Responses.DestinyProfileUserInfoCard"
          type: array
        profilesWithErrors:
          description: This is brief summary info for profiles that we believe have valid Destiny info, but who failed to return data for some other reason and thus we know that subsequent calls for their info will also fail.
          items:
            $ref: "#/components/schemas/Destiny.Responses.DestinyErrorProfile"
          type: array
      type: object
    Destiny.Responses.DestinyProfileResponse:
      description: The response for GetDestinyProfile, with components for character and item-level data.
      properties:
        characterActivities:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyCharacterActivitiesComponent"
          description: "Character activity data - the activities available to this character and its status, keyed by the Character's Id.\r

            COMPONENT TYPE: CharacterActivities"
          type: object
          x-destiny-component-type-dependency: CharacterActivities
        characterCollectibles:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyCollectiblesComponent"
          description: "COMPONENT TYPE: Collectibles"
          type: object
          x-destiny-component-type-dependency: Collectibles
        characterCraftables:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyCraftablesComponent"
          description: "COMPONENT TYPE: Craftables"
          type: object
          x-destiny-component-type-dependency: Craftables
        characterCurrencyLookups:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyCurrenciesComponent"
          description: "A \"lookup\" convenience component that can be used to quickly check if the character has access to items that can be used for purchasing.\r

            COMPONENT TYPE: CurrencyLookups"
          type: object
          x-destiny-component-type-dependency: CurrencyLookups
        characterEquipment:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyInventoryComponent"
          description: "The character's equipped items, keyed by the Character's Id.\r

            COMPONENT TYPE: CharacterEquipment"
          type: object
          x-destiny-component-type-dependency: CharacterEquipment
        characterInventories:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyInventoryComponent"
          description: "The character-level non-equipped inventory items, keyed by the Character's Id.\r

            COMPONENT TYPE: CharacterInventories"
          type: object
          x-destiny-component-type-dependency: CharacterInventories
        characterKiosks:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyKiosksComponent"
          description: "Items available from Kiosks that are available to a specific character as opposed to the account as a whole. It must be combined with data from the profileKiosks property to get a full picture of the character's available items to check out of a kiosk.\r

            This component returns information about what Kiosk items are available to you on a *Character* level. Usually, kiosk items will be earned for the entire Profile (all characters) at once. To find those, look in the profileKiosks property.\r

            COMPONENT TYPE: Kiosks"
          type: object
          x-destiny-component-type-dependency: Kiosks
        characterLoadouts:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyLoadoutsComponent"
          description: "The character loadouts, keyed by the Character's Id.\r

            COMPONENT TYPE: CharacterLoadouts"
          type: object
          x-destiny-component-type-dependency: CharacterLoadouts
        characterPlugSets:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyPlugSetsComponent"
          description: "When sockets refer to reusable Plug Sets (see DestinyPlugSetDefinition for more info), this is the set of plugs and their states, per character, that are character-scoped.\r

            This comes back with ItemSockets, as it is needed for a complete picture of the sockets on requested items.\r

            COMPONENT TYPE: ItemSockets"
          type: object
          x-destiny-component-type-dependency: ItemSockets
        characterPresentationNodes:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyPresentationNodesComponent"
          description: "COMPONENT TYPE: PresentationNodes"
          type: object
          x-destiny-component-type-dependency: PresentationNodes
        characterProgressions:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyCharacterProgressionComponent"
          description: "Character-level progression data, keyed by the Character's Id.\r

            COMPONENT TYPE: CharacterProgressions"
          type: object
          x-destiny-component-type-dependency: CharacterProgressions
        characterRecords:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyCharacterRecordsComponent"
          description: "COMPONENT TYPE: Records"
          type: object
          x-destiny-component-type-dependency: Records
        characterRenderData:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyCharacterRenderComponent"
          description: "Character rendering data - a minimal set of info needed to render a character in 3D - keyed by the Character's Id.\r

            COMPONENT TYPE: CharacterRenderData"
          type: object
          x-destiny-component-type-dependency: CharacterRenderData
        characterStringVariables:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyStringVariablesComponent"
          description: "COMPONENT TYPE: StringVariables"
          type: object
          x-destiny-component-type-dependency: StringVariables
        characterUninstancedItemComponents:
          additionalProperties:
            $ref: "#/components/schemas/DestinyBaseItemComponentSetOfuint32"
          description: "Do you ever get the feeling that a system was designed *too* flexibly? That it can be used in so many different ways that you end up being unable to provide an easy to use abstraction for the mess that's happening under the surface?\r

            Let's talk about character-specific data that might be related to items without instances. These two statements are totally unrelated, I promise.\r

            At some point during D2, it was decided that items - such as Bounties - could be given to characters and *not* have instance data, but that *could* display and even use relevant state information on your account and character.\r

            Up to now, any item that had meaningful dependencies on character or account state had to be instanced, and thus \"itemComponents\" was all that you needed: it was keyed by item's instance IDs and provided the stateful information you needed inside.\r

            Unfortunately, we don't live in such a magical world anymore. This is information held on a per-character basis about non-instanced items that the characters have in their inventory - or that reference character-specific state information even if it's in Account-level inventory - and the values related to that item's state in relation to the given character.\r

            To give a concrete example, look at a Moments of Triumph bounty. They exist in a character's inventory, and show/care about a character's progression toward completing the bounty. But the bounty itself is a non-instanced item, like a mod or a currency. This returns that data for the characters who have the bounty in their inventory.\r

            I'm not crying, you're crying Okay we're both crying but it's going to be okay I promise Actually I shouldn't promise that, I don't know if it's going to be okay"
          type: object
        characters:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyCharacterComponent"
          description: "Basic information about each character, keyed by the CharacterId.\r

            COMPONENT TYPE: Characters"
          type: object
          x-destiny-component-type-dependency: Characters
        itemComponents:
          allOf:
            - $ref: "#/components/schemas/DestinyItemComponentSetOfint64"
          description: "Information about instanced items across all returned characters, keyed by the item's instance ID.\r

            COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]"
          type: object
        metrics:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyMetricsComponent"
          description: "COMPONENT TYPE: Metrics"
          type: object
          x-destiny-component-type-dependency: Metrics
        platformSilver:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyPlatformSilverComponent"
          description: "Silver quantities for any platform on which this Profile plays destiny.\r

            \ COMPONENT TYPE: PlatformSilver"
          type: object
          x-destiny-component-type-dependency: PlatformSilver
        profile:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyProfileComponent"
          description: "The basic information about the Destiny Profile (formerly \"Account\").\r

            COMPONENT TYPE: Profiles"
          type: object
          x-destiny-component-type-dependency: Profiles
        profileCollectibles:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyProfileCollectiblesComponent"
          description: "COMPONENT TYPE: Collectibles"
          type: object
          x-destiny-component-type-dependency: Collectibles
        profileCommendations:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinySocialCommendationsComponent"
          description: "COMPONENT TYPE: SocialCommendations"
          type: object
          x-destiny-component-type-dependency: SocialCommendations
        profileCurrencies:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyInventoryComponent"
          description: "The profile-level currencies owned by the Destiny Profile.\r

            COMPONENT TYPE: ProfileCurrencies"
          type: object
          x-destiny-component-type-dependency: ProfileCurrencies
        profileInventory:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyInventoryComponent"
          description: "The profile-level inventory of the Destiny Profile.\r

            COMPONENT TYPE: ProfileInventories"
          type: object
          x-destiny-component-type-dependency: ProfileInventories
        profileKiosks:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyKiosksComponent"
          description: "Items available from Kiosks that are available Profile-wide (i.e. across all characters)\r

            This component returns information about what Kiosk items are available to you on a *Profile* level. It is theoretically possible for Kiosks to have items gated by specific Character as well. If you ever have those, you will find them on the characterKiosks property.\r

            COMPONENT TYPE: Kiosks"
          type: object
          x-destiny-component-type-dependency: Kiosks
        profilePlugSets:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyPlugSetsComponent"
          description: "When sockets refer to reusable Plug Sets (see DestinyPlugSetDefinition for more info), this is the set of plugs and their states that are profile-scoped.\r

            This comes back with ItemSockets, as it is needed for a complete picture of the sockets on requested items.\r

            COMPONENT TYPE: ItemSockets"
          type: object
          x-destiny-component-type-dependency: ItemSockets
        profilePresentationNodes:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyPresentationNodesComponent"
          description: "COMPONENT TYPE: PresentationNodes"
          type: object
          x-destiny-component-type-dependency: PresentationNodes
        profileProgression:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyProfileProgressionComponent"
          description: "When we have progression information - such as Checklists - that may apply profile-wide, it will be returned here rather than in the per-character progression data.\r

            COMPONENT TYPE: ProfileProgression"
          type: object
          x-destiny-component-type-dependency: ProfileProgression
        profileRecords:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyProfileRecordsComponent"
          description: "COMPONENT TYPE: Records"
          type: object
          x-destiny-component-type-dependency: Records
        profileStringVariables:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyStringVariablesComponent"
          description: "COMPONENT TYPE: StringVariables"
          type: object
          x-destiny-component-type-dependency: StringVariables
        profileTransitoryData:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyProfileTransitoryComponent"
          description: "COMPONENT TYPE: Transitory"
          type: object
          x-destiny-component-type-dependency: Transitory
        responseMintedTimestamp:
          description: Records the timestamp of when most components were last generated from the world server source. Unless the component type is specified in the documentation for secondaryComponentsMintedTimestamp, this value is sufficient to do data freshness.
          format: date-time
          type: string
        secondaryComponentsMintedTimestamp:
          description: "Some secondary components are not tracked in the primary response timestamp and have their timestamp tracked here. If your component is any of the following, this field is where you will find your timestamp value:\r

            \ PresentationNodes, Records, Collectibles, Metrics, StringVariables, Craftables, Transitory\r

            \ All other component types may use the primary timestamp property."
          format: date-time
          type: string
        vendorReceipts:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyVendorReceiptsComponent"
          description: "Recent, refundable purchases you have made from vendors. When will you use it? Couldn't say...\r

            COMPONENT TYPE: VendorReceipts"
          type: object
          x-destiny-component-type-dependency: VendorReceipts
      type: object
    Destiny.Responses.DestinyProfileUserInfoCard:
      properties:
        applicableMembershipTypes:
          description: "The list of Membership Types indicating the platforms on which this Membership can be used.\r

            \ Not in Cross Save = its original membership type. Cross Save Primary = Any membership types it is overridding, and its original membership type Cross Save Overridden = Empty list"
          items:
            description: The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema7"
          type: array
        bungieGlobalDisplayName:
          description: The bungie global display name, if set.
          type: string
        bungieGlobalDisplayNameCode:
          description: The bungie global display name code, if set.
          format: int16
          type: integer
        crossSaveOverride:
          description: If there is a cross save override in effect, this value will tell you the type that is overridding this one.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        dateLastPlayed:
          format: date-time
          type: string
        displayName:
          description: Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
          type: string
        iconPath:
          description: URL the Icon if available.
          type: string
        isCrossSavePrimary:
          description: If true, this account is hooked up as the "Primary" cross save account for one or more platforms.
          type: boolean
        isOverridden:
          description: "If this profile is being overridden/obscured by Cross Save, this will be set to true. We will still return the profile for display purposes where users need to know the info: it is up to any given area of the app/site to determine if this profile should still be shown."
          type: boolean
        isPublic:
          description: If True, this is a public user membership.
          type: boolean
        membershipId:
          description: Membership ID as they user is known in the Accounts service
          format: int64
          type: integer
        membershipType:
          description: Type of the membership. Not necessarily the native type.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        platformSilver:
          allOf:
            - $ref: "#/components/schemas/Destiny.Components.Inventory.DestinyPlatformSilverComponent"
          description: "This is the silver available on this Profile across any platforms on which they have purchased silver.\r

            \ This is only available if you are requesting yourself."
          type: object
        supplementalDisplayName:
          description: "A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc."
          type: string
        unpairedGameVersions:
          description: "If this profile is not in a cross save pairing, this will return the game versions that we believe this profile has access to.\r

            \ For the time being, we will not return this information for any membership that is in a cross save pairing. The gist is that, once the pairing occurs, we do not currently have a consistent way to get that information for the profile's original Platform, and thus gameVersions would be too inconsistent (based on the last platform they happened to play on) for the info to be useful.\r

            \ If we ever can get this data, this field will be deprecated and replaced with data on the DestinyLinkedProfileResponse itself, with game versions per linked Platform. But since we can't get that, we have this as a stop-gap measure for getting the data in the only situation that we currently need it."
          enum:
            - "0"
            - "1"
            - "2"
            - "4"
            - "8"
            - "16"
            - "32"
            - "64"
            - "128"
            - "256"
            - "512"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: Destiny2
              numericValue: "1"
            - identifier: DLC1
              numericValue: "2"
            - identifier: DLC2
              numericValue: "4"
            - identifier: Forsaken
              numericValue: "8"
            - identifier: YearTwoAnnualPass
              numericValue: "16"
            - identifier: Shadowkeep
              numericValue: "32"
            - identifier: BeyondLight
              numericValue: "64"
            - identifier: Anniversary30th
              numericValue: "128"
            - identifier: TheWitchQueen
              numericValue: "256"
            - identifier: Lightfall
              numericValue: "512"
      type: object
    Destiny.Responses.DestinyPublicVendorsResponse:
      description: "A response containing all valid components for the public Vendors endpoint.\r

        \ It is a decisively smaller subset of data compared to what we can get when we know the specific user making the request.\r

        \ If you want any of the other data - item details, whether or not you can buy it, etc... you'll have to call in the context of a character. I know, sad but true."
      properties:
        categories:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyVendorCategoriesComponent"
          description: "Categories that the vendor has available, and references to the sales therein. These are keyed by the Vendor Hash, so you will get one Categories Component per vendor returned.\r

            COMPONENT TYPE: VendorCategories"
          type: object
          x-destiny-component-type-dependency: VendorCategories
        sales:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndPublicDestinyVendorSaleItemSetComponent"
          description: "Sales, keyed by the vendorItemIndex of the item being sold. These are keyed by the Vendor Hash, so you will get one Sale Item Set Component per vendor returned.\r

            Note that within the Sale Item Set component, the sales are themselves keyed by the vendorSaleIndex, so you can relate it to the corrent sale item definition within the Vendor's definition.\r

            COMPONENT TYPE: VendorSales"
          type: object
          x-destiny-component-type-dependency: VendorSales
        stringVariables:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyStringVariablesComponent"
          description: "A set of string variable values by hash for a public vendors context.\r

            COMPONENT TYPE: StringVariables"
          type: object
          x-destiny-component-type-dependency: StringVariables
        vendorGroups:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyVendorGroupComponent"
          description: "For Vendors being returned, this will give you the information you need to group them and order them in the same way that the Bungie Companion app performs grouping. It will automatically be returned if you request the Vendors component.\r

            COMPONENT TYPE: Vendors"
          type: object
          x-destiny-component-type-dependency: Vendors
        vendors:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyPublicVendorComponent"
          description: "The base properties of the vendor. These are keyed by the Vendor Hash, so you will get one Vendor Component per vendor returned.\r

            COMPONENT TYPE: Vendors"
          type: object
          x-destiny-component-type-dependency: Vendors
      type: object
    Destiny.Responses.DestinyVendorResponse:
      description: A response containing all of the components for a vendor.
      properties:
        categories:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyVendorCategoriesComponent"
          description: "Categories that the vendor has available, and references to the sales therein.\r

            COMPONENT TYPE: VendorCategories"
          type: object
          x-destiny-component-type-dependency: VendorCategories
        currencyLookups:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyCurrenciesComponent"
          description: "A \"lookup\" convenience component that can be used to quickly check if the character has access to items that can be used for purchasing.\r

            COMPONENT TYPE: CurrencyLookups"
          type: object
          x-destiny-component-type-dependency: CurrencyLookups
        itemComponents:
          allOf:
            - $ref: "#/components/schemas/DestinyItemComponentSetOfint32"
          description: "Item components, keyed by the vendorItemIndex of the active sale items.\r

            COMPONENT TYPE: [See inside the DestinyItemComponentSet contract for component types.]"
          type: object
        sales:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfint32AndDestinyVendorSaleItemComponent"
          description: "Sales, keyed by the vendorItemIndex of the item being sold.\r

            COMPONENT TYPE: VendorSales"
          type: object
          x-destiny-component-type-dependency: VendorSales
        stringVariables:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyStringVariablesComponent"
          description: "A map of string variable values by hash for this character context.\r

            COMPONENT TYPE: StringVariables"
          type: object
          x-destiny-component-type-dependency: StringVariables
        vendor:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyVendorComponent"
          description: "The base properties of the vendor.\r

            COMPONENT TYPE: Vendors"
          type: object
          x-destiny-component-type-dependency: Vendors
      type: object
    Destiny.Responses.DestinyVendorsResponse:
      description: A response containing all of the components for all requested vendors.
      properties:
        categories:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyVendorCategoriesComponent"
          description: "Categories that the vendor has available, and references to the sales therein. These are keyed by the Vendor Hash, so you will get one Categories Component per vendor returned.\r

            COMPONENT TYPE: VendorCategories"
          type: object
          x-destiny-component-type-dependency: VendorCategories
        currencyLookups:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyCurrenciesComponent"
          description: "A \"lookup\" convenience component that can be used to quickly check if the character has access to items that can be used for purchasing.\r

            COMPONENT TYPE: CurrencyLookups"
          type: object
          x-destiny-component-type-dependency: CurrencyLookups
        itemComponents:
          additionalProperties:
            $ref: "#/components/schemas/DestinyItemComponentSetOfint32"
          description: "The set of item detail components, one set of item components per Vendor. These are keyed by the Vendor Hash, so you will get one Item Component Set per vendor returned.\r

            The components contained inside are themselves keyed by the vendorSaleIndex, and will have whatever item-level components you requested (Sockets, Stats, Instance data etc...) per item being sold by the vendor."
          type: object
        sales:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndPersonalDestinyVendorSaleItemSetComponent"
          description: "Sales, keyed by the vendorItemIndex of the item being sold. These are keyed by the Vendor Hash, so you will get one Sale Item Set Component per vendor returned.\r

            Note that within the Sale Item Set component, the sales are themselves keyed by the vendorSaleIndex, so you can relate it to the corrent sale item definition within the Vendor's definition.\r

            COMPONENT TYPE: VendorSales"
          type: object
          x-destiny-component-type-dependency: VendorSales
        stringVariables:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyStringVariablesComponent"
          description: "A map of string variable values by hash for this character context.\r

            COMPONENT TYPE: StringVariables"
          type: object
          x-destiny-component-type-dependency: StringVariables
        vendorGroups:
          allOf:
            - $ref: "#/components/schemas/SingleComponentResponseOfDestinyVendorGroupComponent"
          description: "For Vendors being returned, this will give you the information you need to group them and order them in the same way that the Bungie Companion app performs grouping. It will automatically be returned if you request the Vendors component.\r

            COMPONENT TYPE: Vendors"
          type: object
          x-destiny-component-type-dependency: Vendors
        vendors:
          allOf:
            - $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyVendorComponent"
          description: "The base properties of the vendor. These are keyed by the Vendor Hash, so you will get one Vendor Component per vendor returned.\r

            COMPONENT TYPE: Vendors"
          type: object
          x-destiny-component-type-dependency: Vendors
      type: object
    Destiny.Responses.InventoryChangedResponse:
      description: A response containing all of the components for all requested vendors.
      properties:
        addedInventoryItems:
          description: Items that appeared in the inventory possibly as a result of an action.
          items:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemComponent"
          type: array
        removedInventoryItems:
          description: Items that disappeared from the inventory possibly as a result of an action.
          items:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemComponent"
          type: array
      type: object
    Destiny.Responses.PersonalDestinyVendorSaleItemSetComponent:
      properties:
        saleItems:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Vendors.DestinyVendorSaleItemComponent"
          type: object
      type: object
      x-destiny-component-type-dependency: VendorSales
    Destiny.Responses.PublicDestinyVendorSaleItemSetComponent:
      properties:
        saleItems:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Vendors.DestinyPublicVendorSaleItemComponent"
          type: object
      type: object
      x-destiny-component-type-dependency: VendorSales
    Destiny.SocketPlugSources:
      $ref: "#/components/schemas/schema73"
    Destiny.SocketTypeActionType:
      $ref: "#/components/schemas/schema32"
    Destiny.Sockets.DestinyItemPlug:
      properties:
        canInsert:
          description: If true, this plug has met all of its insertion requirements. Big if true.
          type: boolean
        enableFailIndexes:
          description: "If a plug is not enabled, this will be populated with indexes into the plug item definition's plug.enabledRules property, so that you can show the reasons why it is not enabled.\r

            This list will be empty if the plug is enabled."
          items:
            format: int32
            type: integer
          type: array
        enabled:
          description: If true, this plug will provide its benefits while inserted.
          type: boolean
        insertFailIndexes:
          description: "If the plug cannot be inserted for some reason, this will have the indexes into the plug item definition's plug.insertionRules property, so you can show the reasons why it can't be inserted.\r

            This list will be empty if the plug can be inserted."
          items:
            format: int32
            type: integer
          type: array
        plugItemHash:
          description: The hash identifier of the DestinyInventoryItemDefinition that represents this plug.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
        plugObjectives:
          description: "Sometimes, Plugs may have objectives: these are often used for flavor and display purposes, but they can be used for any arbitrary purpose (both fortunately and unfortunately). Recently (with Season 2) they were expanded in use to be used as the \"gating\" for whether the plug can be inserted at all. For instance, a Plug might be tracking the number of PVP kills you have made. It will use the parent item's data about that tracking status to determine what to show, and will generally show it using the DestinyObjectiveDefinition's progressDescription property. Refer to the plug's itemHash and objective property for more information if you would like to display even more data."
          items:
            $ref: "#/components/schemas/Destiny.Quests.DestinyObjectiveProgress"
          type: array
      type: object
    Destiny.Sockets.DestinyItemPlugBase:
      properties:
        canInsert:
          description: If true, this plug has met all of its insertion requirements. Big if true.
          type: boolean
        enableFailIndexes:
          description: "If a plug is not enabled, this will be populated with indexes into the plug item definition's plug.enabledRules property, so that you can show the reasons why it is not enabled.\r

            This list will be empty if the plug is enabled."
          items:
            format: int32
            type: integer
          type: array
        enabled:
          description: If true, this plug will provide its benefits while inserted.
          type: boolean
        insertFailIndexes:
          description: "If the plug cannot be inserted for some reason, this will have the indexes into the plug item definition's plug.insertionRules property, so you can show the reasons why it can't be inserted.\r

            This list will be empty if the plug can be inserted."
          items:
            format: int32
            type: integer
          type: array
        plugItemHash:
          description: The hash identifier of the DestinyInventoryItemDefinition that represents this plug.
          format: uint32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
    Destiny.SpecialItemType:
      $ref: "#/components/schemas/schema25"
    Destiny.TierType:
      $ref: "#/components/schemas/schema34"
    Destiny.TransferStatuses:
      $ref: "#/components/schemas/schema84"
    Destiny.VendorDisplayCategorySortOrder:
      $ref: "#/components/schemas/schema44"
    Destiny.VendorInteractionType:
      $ref: "#/components/schemas/schema45"
    Destiny.VendorItemStatus:
      $ref: "#/components/schemas/schema100"
    Destiny.Vendors.DestinyVendorReceipt:
      description: If a character purchased an item that is refundable, a Vendor Receipt will be created on the user's Destiny Profile. These expire after a configurable period of time, but until then can be used to get refunds on items. BNet does not provide the ability to refund a purchase *yet*, but you know.
      properties:
        currencyPaid:
          description: The amount paid for the item, in terms of items that were consumed in the purchase and their quantity.
          items:
            $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          type: array
        expiresOn:
          description: The date at which this receipt is rendered invalid.
          format: date-time
          type: string
        itemReceived:
          allOf:
            - $ref: "#/components/schemas/Destiny.DestinyItemQuantity"
          description: The item that was received, and its quantity.
          type: object
        licenseUnlockHash:
          description: The unlock flag used to determine whether you still have the purchased item.
          format: uint32
          type: integer
        purchasedByCharacterId:
          description: The ID of the character who made the purchase.
          format: int64
          type: integer
        refundPolicy:
          description: Whether you can get a refund, and what happens in order for the refund to be received. See the DestinyVendorItemRefundPolicy enum for details.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema49"
        sequenceNumber:
          description: The identifier of this receipt.
          format: int32
          type: integer
        timeToExpiration:
          description: The seconds since epoch at which this receipt is rendered invalid.
          format: int64
          type: integer
      type: object
    DestinyBaseItemComponentSetOfint32:
      properties:
        objectives:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint32AndDestinyItemObjectivesComponent"
        perks:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint32AndDestinyItemPerksComponent"
      type: object
    DestinyBaseItemComponentSetOfint64:
      properties:
        objectives:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyItemObjectivesComponent"
        perks:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyItemPerksComponent"
      type: object
    DestinyBaseItemComponentSetOfuint32:
      properties:
        objectives:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemObjectivesComponent"
        perks:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemPerksComponent"
      type: object
    DestinyItemComponentSetOfint32:
      properties:
        instances:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint32AndDestinyItemInstanceComponent"
        objectives:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint32AndDestinyItemObjectivesComponent"
        perks:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint32AndDestinyItemPerksComponent"
        plugObjectives:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint32AndDestinyItemPlugObjectivesComponent"
        plugStates:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent"
        renderData:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint32AndDestinyItemRenderComponent"
        reusablePlugs:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint32AndDestinyItemReusablePlugsComponent"
        sockets:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint32AndDestinyItemSocketsComponent"
        stats:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint32AndDestinyItemStatsComponent"
        talentGrids:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint32AndDestinyItemTalentGridComponent"
      type: object
    DestinyItemComponentSetOfint64:
      properties:
        instances:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyItemInstanceComponent"
        objectives:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyItemObjectivesComponent"
        perks:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyItemPerksComponent"
        plugObjectives:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyItemPlugObjectivesComponent"
        plugStates:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent"
        renderData:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyItemRenderComponent"
        reusablePlugs:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyItemReusablePlugsComponent"
        sockets:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyItemSocketsComponent"
        stats:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyItemStatsComponent"
        talentGrids:
          $ref: "#/components/schemas/DictionaryComponentResponseOfint64AndDestinyItemTalentGridComponent"
      type: object
    DestinyItemComponentSetOfuint32:
      properties:
        instances:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemInstanceComponent"
        objectives:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemObjectivesComponent"
        perks:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemPerksComponent"
        plugObjectives:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemPlugObjectivesComponent"
        plugStates:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent"
        renderData:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemRenderComponent"
        reusablePlugs:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemReusablePlugsComponent"
        sockets:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemSocketsComponent"
        stats:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemStatsComponent"
        talentGrids:
          $ref: "#/components/schemas/DictionaryComponentResponseOfuint32AndDestinyItemTalentGridComponent"
      type: object
    DestinyVendorSaleItemSetComponentOfDestinyPublicVendorSaleItemComponent:
      properties:
        saleItems:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Vendors.DestinyPublicVendorSaleItemComponent"
          type: object
      type: object
      x-destiny-component-type-dependency: VendorSales
    DestinyVendorSaleItemSetComponentOfDestinyVendorSaleItemComponent:
      properties:
        saleItems:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Vendors.DestinyVendorSaleItemComponent"
          type: object
      type: object
      x-destiny-component-type-dependency: VendorSales
    DictionaryComponentResponseOfint32AndDestinyItemInstanceComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemInstanceComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint32AndDestinyItemObjectivesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemObjectivesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint32AndDestinyItemPerksComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemPerksComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint32AndDestinyItemPlugObjectivesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Items.DestinyItemPlugObjectivesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint32AndDestinyItemRenderComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemRenderComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint32AndDestinyItemReusablePlugsComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Items.DestinyItemReusablePlugsComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint32AndDestinyItemSocketsComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemSocketsComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint32AndDestinyItemStatsComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemStatsComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint32AndDestinyItemTalentGridComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemTalentGridComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint32AndDestinyVendorSaleItemComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Vendors.DestinyVendorSaleItemComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyCharacterActivitiesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Characters.DestinyCharacterActivitiesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyCharacterComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Characters.DestinyCharacterComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyCharacterProgressionComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Characters.DestinyCharacterProgressionComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyCharacterRecordsComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Records.DestinyCharacterRecordsComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyCharacterRenderComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Characters.DestinyCharacterRenderComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyCollectiblesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Collectibles.DestinyCollectiblesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyCraftablesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Craftables.DestinyCraftablesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyCurrenciesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Inventory.DestinyCurrenciesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyInventoryComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Inventory.DestinyInventoryComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyItemInstanceComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemInstanceComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyItemObjectivesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemObjectivesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyItemPerksComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemPerksComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyItemPlugObjectivesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Items.DestinyItemPlugObjectivesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyItemRenderComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemRenderComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyItemReusablePlugsComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Items.DestinyItemReusablePlugsComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyItemSocketsComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemSocketsComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyItemStatsComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemStatsComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyItemTalentGridComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemTalentGridComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyKiosksComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Kiosks.DestinyKiosksComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyLoadoutsComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Loadouts.DestinyLoadoutsComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyPlugSetsComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.PlugSets.DestinyPlugSetsComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyPresentationNodesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Presentation.DestinyPresentationNodesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfint64AndDestinyStringVariablesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.StringVariables.DestinyStringVariablesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyItemInstanceComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemInstanceComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyItemObjectivesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemObjectivesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyItemPerksComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemPerksComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyItemPlugComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Items.DestinyItemPlugComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyItemPlugObjectivesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Items.DestinyItemPlugObjectivesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyItemRenderComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemRenderComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyItemReusablePlugsComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Items.DestinyItemReusablePlugsComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyItemSocketsComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemSocketsComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyItemStatsComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemStatsComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyItemTalentGridComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemTalentGridComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyPublicVendorComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Components.Vendors.DestinyPublicVendorComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyVendorCategoriesComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Vendors.DestinyVendorCategoriesComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndDestinyVendorComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Entities.Vendors.DestinyVendorComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndPersonalDestinyVendorSaleItemSetComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Responses.PersonalDestinyVendorSaleItemSetComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    DictionaryComponentResponseOfuint32AndPublicDestinyVendorSaleItemSetComponent:
      properties:
        data:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.Responses.PublicDestinyVendorSaleItemSetComponent"
          type: object
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    Entities.EntityActionResult:
      properties:
        entityId:
          format: int64
          type: integer
        result:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema1"
      type: object
    Exceptions.PlatformErrorCodes:
      $ref: "#/components/schemas/schema1"
    Fireteam.FireteamDateRange:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: uint8
      type: integer
      x-enum-values:
        - identifier: All
          numericValue: "0"
        - identifier: Now
          numericValue: "1"
        - identifier: TwentyFourHours
          numericValue: "2"
        - identifier: FortyEightHours
          numericValue: "3"
        - identifier: ThisWeek
          numericValue: "4"
    Fireteam.FireteamMember:
      properties:
        bungieNetUserInfo:
          $ref: "#/components/schemas/User.UserInfoCard"
        characterId:
          format: int64
          type: integer
        dateJoined:
          format: date-time
          type: string
        destinyUserInfo:
          $ref: "#/components/schemas/Fireteam.FireteamUserInfoCard"
        hasMicrophone:
          type: boolean
        lastPlatformInviteAttemptDate:
          format: date-time
          type: string
        lastPlatformInviteAttemptResult:
          format: uint8
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema111"
      type: object
    Fireteam.FireteamPlatform:
      $ref: "#/components/schemas/schema110"
    Fireteam.FireteamPlatformInviteResult:
      $ref: "#/components/schemas/schema111"
    Fireteam.FireteamPublicSearchOption:
      enum:
        - "0"
        - "1"
        - "2"
      format: uint8
      type: integer
      x-enum-values:
        - identifier: PublicAndPrivate
          numericValue: "0"
        - identifier: PublicOnly
          numericValue: "1"
        - identifier: PrivateOnly
          numericValue: "2"
    Fireteam.FireteamResponse:
      properties:
        Alternates:
          items:
            $ref: "#/components/schemas/Fireteam.FireteamMember"
          type: array
        Members:
          items:
            $ref: "#/components/schemas/Fireteam.FireteamMember"
          type: array
        Summary:
          $ref: "#/components/schemas/Fireteam.FireteamSummary"
      type: object
    Fireteam.FireteamSlotSearch:
      enum:
        - "0"
        - "1"
        - "2"
      format: uint8
      type: integer
      x-enum-values:
        - identifier: NoSlotRestriction
          numericValue: "0"
        - identifier: HasOpenPlayerSlots
          numericValue: "1"
        - identifier: HasOpenPlayerOrAltSlots
          numericValue: "2"
    Fireteam.FireteamSummary:
      properties:
        activityType:
          format: int32
          type: integer
        alternateSlotCount:
          format: int32
          type: integer
        availableAlternateSlotCount:
          format: int32
          type: integer
        availablePlayerSlotCount:
          format: int32
          type: integer
        dateCreated:
          format: date-time
          type: string
        dateModified:
          format: date-time
          type: string
        datePlayerModified:
          format: date-time
          type: string
        fireteamId:
          format: int64
          type: integer
        groupId:
          format: int64
          type: integer
        isImmediate:
          type: boolean
        isPublic:
          type: boolean
        isValid:
          type: boolean
        locale:
          type: string
        ownerCurrentGuardianRankSnapshot:
          format: int32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition"
        ownerHighestLifetimeGuardianRankSnapshot:
          format: int32
          type: integer
          x-mapped-definition:
            $ref: "#/components/schemas/Destiny.Definitions.GuardianRanks.DestinyGuardianRankDefinition"
        ownerMembershipId:
          format: int64
          type: integer
        ownerTotalCommendationScoreSnapshot:
          format: int32
          type: integer
        platform:
          format: uint8
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema110"
        playerSlotCount:
          format: int32
          type: integer
        scheduledTime:
          format: date-time
          type: string
        title:
          type: string
        titleBeforeModeration:
          type: string
      type: object
    Fireteam.FireteamUserInfoCard:
      properties:
        FireteamDisplayName:
          type: string
        FireteamMembershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        applicableMembershipTypes:
          description: "The list of Membership Types indicating the platforms on which this Membership can be used.\r

            \ Not in Cross Save = its original membership type. Cross Save Primary = Any membership types it is overridding, and its original membership type Cross Save Overridden = Empty list"
          items:
            description: The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema7"
          type: array
        bungieGlobalDisplayName:
          description: The bungie global display name, if set.
          type: string
        bungieGlobalDisplayNameCode:
          description: The bungie global display name code, if set.
          format: int16
          type: integer
        crossSaveOverride:
          description: If there is a cross save override in effect, this value will tell you the type that is overridding this one.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        displayName:
          description: Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
          type: string
        iconPath:
          description: URL the Icon if available.
          type: string
        isPublic:
          description: If True, this is a public user membership.
          type: boolean
        membershipId:
          description: Membership ID as they user is known in the Accounts service
          format: int64
          type: integer
        membershipType:
          description: Type of the membership. Not necessarily the native type.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        supplementalDisplayName:
          description: "A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc."
          type: string
      type: object
    Forum.CommunityContentSortMode:
      enum:
        - "0"
        - "1"
        - "2"
      format: uint8
      type: integer
      x-enum-values:
        - identifier: Trending
          numericValue: "0"
        - identifier: Latest
          numericValue: "1"
        - identifier: HighestRated
          numericValue: "2"
    Forum.ForumMediaType:
      $ref: "#/components/schemas/schema11"
    Forum.ForumPostPopularity:
      $ref: "#/components/schemas/schema12"
    Forum.ForumPostSortEnum:
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Default
          numericValue: "0"
        - identifier: OldestFirst
          numericValue: "1"
    Forum.ForumRecruitmentDetail:
      properties:
        Fireteam:
          items:
            $ref: "#/components/schemas/User.GeneralUser"
          type: array
        approved:
          type: boolean
        conversationId:
          format: int64
          type: integer
        intensity:
          format: uint8
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema77"
        kickedPlayerIds:
          items:
            format: int64
            type: integer
          type: array
        microphoneRequired:
          type: boolean
        playerSlotsRemaining:
          format: int32
          type: integer
        playerSlotsTotal:
          format: int32
          type: integer
        tone:
          format: uint8
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema78"
        topicId:
          format: int64
          type: integer
      type: object
    Forum.ForumRecruitmentIntensityLabel:
      $ref: "#/components/schemas/schema77"
    Forum.ForumRecruitmentToneLabel:
      $ref: "#/components/schemas/schema78"
    Forum.ForumTopicsCategoryFiltersEnum:
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
        - "128"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Links
          numericValue: "1"
        - identifier: Questions
          numericValue: "2"
        - identifier: AnsweredQuestions
          numericValue: "4"
        - identifier: Media
          numericValue: "8"
        - identifier: TextOnly
          numericValue: "16"
        - identifier: Announcement
          numericValue: "32"
        - identifier: BungieOfficial
          numericValue: "64"
        - identifier: Polls
          numericValue: "128"
    Forum.ForumTopicsQuickDateEnum:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: int32
      type: integer
      x-enum-values:
        - identifier: All
          numericValue: "0"
        - identifier: LastYear
          numericValue: "1"
        - identifier: LastMonth
          numericValue: "2"
        - identifier: LastWeek
          numericValue: "3"
        - identifier: LastDay
          numericValue: "4"
    Forum.ForumTopicsSortEnum:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
      format: uint8
      type: integer
      x-enum-values:
        - identifier: Default
          numericValue: "0"
        - identifier: LastReplied
          numericValue: "1"
        - identifier: MostReplied
          numericValue: "2"
        - identifier: Popularity
          numericValue: "3"
        - identifier: Controversiality
          numericValue: "4"
        - identifier: Liked
          numericValue: "5"
        - identifier: HighestRated
          numericValue: "6"
        - identifier: MostUpvoted
          numericValue: "7"
    Forum.PollResponse:
      properties:
        results:
          items:
            $ref: "#/components/schemas/Forum.PollResult"
          type: array
        topicId:
          format: int64
          type: integer
        totalVotes:
          format: int32
          type: integer
      type: object
    Forum.PollResult:
      properties:
        answerSlot:
          format: int32
          type: integer
        answerText:
          type: string
        lastVoteDate:
          format: date-time
          type: string
        requestingUserVoted:
          type: boolean
        votes:
          format: int32
          type: integer
      type: object
    Forum.PostResponse:
      properties:
        IsPinned:
          type: boolean
        ignoreStatus:
          $ref: "#/components/schemas/Ignores.IgnoreResponse"
        isActive:
          type: boolean
        isAnnouncement:
          type: boolean
        lastReplyTimestamp:
          format: date-time
          type: string
        latestReplyAuthorId:
          format: int64
          type: integer
        latestReplyPostId:
          format: int64
          type: integer
        locale:
          type: string
        popularity:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema12"
        thumbnail:
          type: string
        urlMediaType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema11"
        userHasMutedPost:
          type: boolean
        userHasRated:
          type: boolean
        userRating:
          format: int32
          type: integer
      type: object
    Forum.PostSearchResponse:
      properties:
        authors:
          items:
            $ref: "#/components/schemas/User.GeneralUser"
          type: array
        availablePages:
          format: int32
          type: integer
        groups:
          items:
            $ref: "#/components/schemas/GroupsV2.GroupResponse"
          type: array
        hasMore:
          type: boolean
        polls:
          items:
            $ref: "#/components/schemas/Forum.PollResponse"
          type: array
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        recruitmentDetails:
          items:
            $ref: "#/components/schemas/Forum.ForumRecruitmentDetail"
          type: array
        relatedPosts:
          items:
            $ref: "#/components/schemas/Forum.PostResponse"
          type: array
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/Forum.PostResponse"
          type: array
        searchedTags:
          items:
            $ref: "#/components/schemas/Tags.Models.Contracts.TagResponse"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    Forums.ForumFlagsEnum:
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
        - "128"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: BungieStaffPost
          numericValue: "1"
        - identifier: ForumNinjaPost
          numericValue: "2"
        - identifier: ForumMentorPost
          numericValue: "4"
        - identifier: TopicBungieStaffPosted
          numericValue: "8"
        - identifier: TopicBungieVolunteerPosted
          numericValue: "16"
        - identifier: QuestionAnsweredByBungie
          numericValue: "32"
        - identifier: QuestionAnsweredByNinja
          numericValue: "64"
        - identifier: CommunityContent
          numericValue: "128"
    Forums.ForumPostCategoryEnums:
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
        - "128"
        - "256"
        - "512"
        - "1024"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: TextOnly
          numericValue: "1"
        - identifier: Media
          numericValue: "2"
        - identifier: Link
          numericValue: "4"
        - identifier: Poll
          numericValue: "8"
        - identifier: Question
          numericValue: "16"
        - identifier: Answered
          numericValue: "32"
        - identifier: Announcement
          numericValue: "64"
        - identifier: ContentComment
          numericValue: "128"
        - identifier: BungieOfficial
          numericValue: "256"
        - identifier: NinjaOfficial
          numericValue: "512"
        - identifier: Recruitment
          numericValue: "1024"
    GlobalAlert:
      properties:
        AlertHtml:
          type: string
        AlertKey:
          type: string
        AlertLevel:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema117"
        AlertLink:
          type: string
        AlertTimestamp:
          format: date-time
          type: string
        AlertType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema118"
        StreamInfo:
          $ref: "#/components/schemas/StreamInfo"
      type: object
    GlobalAlertLevel:
      $ref: "#/components/schemas/schema117"
    GlobalAlertType:
      $ref: "#/components/schemas/schema118"
    GroupsV2.Capabilities:
      $ref: "#/components/schemas/schema19"
    GroupsV2.ChatSecuritySetting:
      $ref: "#/components/schemas/schema15"
    GroupsV2.ClanBanner:
      properties:
        decalBackgroundColorId:
          format: uint32
          type: integer
        decalColorId:
          format: uint32
          type: integer
        decalId:
          format: uint32
          type: integer
        gonfalonColorId:
          format: uint32
          type: integer
        gonfalonDetailColorId:
          format: uint32
          type: integer
        gonfalonDetailId:
          format: uint32
          type: integer
        gonfalonId:
          format: uint32
          type: integer
      type: object
    GroupsV2.GetGroupsForMemberResponse:
      properties:
        areAllMembershipsInactive:
          additionalProperties:
            type: boolean
          description: "A convenience property that indicates if every membership this user has that is a part of this group are part of an account that is considered inactive - for example, overridden accounts in Cross Save.\r

            \ The key is the Group ID for the group being checked, and the value is true if the users' memberships for that group are all inactive."
          type: object
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/GroupsV2.GroupMembership"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    GroupsV2.GroupAllianceStatus:
      $ref: "#/components/schemas/schema13"
    GroupsV2.GroupApplicationListRequest:
      properties:
        memberships:
          items:
            $ref: "#/components/schemas/User.UserMembership"
          type: array
        message:
          type: string
      type: object
    GroupsV2.GroupApplicationRequest:
      properties:
        message:
          type: string
      type: object
    GroupsV2.GroupApplicationResolveState:
      $ref: "#/components/schemas/schema82"
    GroupsV2.GroupApplicationResponse:
      properties:
        resolution:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema82"
      type: object
    GroupsV2.GroupBan:
      properties:
        bungieNetUserInfo:
          $ref: "#/components/schemas/User.UserInfoCard"
        comment:
          type: string
        createdBy:
          $ref: "#/components/schemas/User.UserInfoCard"
        dateBanned:
          format: date-time
          type: string
        dateExpires:
          format: date-time
          type: string
        destinyUserInfo:
          $ref: "#/components/schemas/GroupsV2.GroupUserInfoCard"
        groupId:
          format: int64
          type: integer
        lastModifiedBy:
          $ref: "#/components/schemas/User.UserInfoCard"
      type: object
    GroupsV2.GroupBanRequest:
      properties:
        comment:
          type: string
        length:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema81"
      type: object
    GroupsV2.GroupDateRange:
      $ref: "#/components/schemas/schema79"
    GroupsV2.GroupEditAction:
      properties:
        about:
          type: string
        allowChat:
          type: boolean
        avatarImageIndex:
          format: int32
          type: integer
        callsign:
          type: string
        chatSecurity:
          enum:
            - "0"
            - "1"
          format: int32
          type: integer
          x-enum-values:
            - identifier: Group
              numericValue: "0"
            - identifier: Admins
              numericValue: "1"
        defaultPublicity:
          enum:
            - "0"
            - "1"
            - "2"
          format: int32
          type: integer
          x-enum-values:
            - identifier: Public
              numericValue: "0"
            - identifier: Alliance
              numericValue: "1"
            - identifier: Private
              numericValue: "2"
        enableInvitationMessagingForAdmins:
          type: boolean
        homepage:
          enum:
            - "0"
            - "1"
            - "2"
          format: int32
          type: integer
          x-enum-values:
            - identifier: Wall
              numericValue: "0"
            - identifier: Forum
              numericValue: "1"
            - identifier: AllianceForum
              numericValue: "2"
        isPublic:
          type: boolean
        isPublicTopicAdminOnly:
          type: boolean
        locale:
          type: string
        membershipOption:
          enum:
            - "0"
            - "1"
            - "2"
          format: int32
          type: integer
          x-enum-values:
            - identifier: Reviewed
              numericValue: "0"
            - identifier: Open
              numericValue: "1"
            - identifier: Closed
              numericValue: "2"
        motto:
          type: string
        name:
          type: string
        tags:
          type: string
        theme:
          type: string
      type: object
    GroupsV2.GroupFeatures:
      properties:
        capabilities:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema19"
        hostGuidedGamePermissionOverride:
          description: "Minimum Member Level allowed to host guided games\r

            Always Allowed: Founder, Acting Founder, Admin\r

            Allowed Overrides: None, Member, Beginner\r

            Default is Member for clans, None for groups, although this means nothing for groups."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema20"
        invitePermissionOverride:
          description: "Minimum Member Level allowed to invite new members to group\r

            Always Allowed: Founder, Acting Founder\r

            True means admins have this power, false means they don't\r

            Default is false for clans, true for groups."
          type: boolean
        joinLevel:
          description: "Level to join a member at when accepting an invite, application, or joining an open clan\r

            Default is Beginner."
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema21"
        maximumMembers:
          format: int32
          type: integer
        maximumMembershipsOfGroupType:
          description: Maximum number of groups of this type a typical membership may join. For example, a user may join about 50 General groups with their Bungie.net account. They may join one clan per Destiny membership.
          format: int32
          type: integer
        membershipTypes:
          items:
            description: The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema7"
          type: array
        updateBannerPermissionOverride:
          description: "Minimum Member Level allowed to update banner\r

            Always Allowed: Founder, Acting Founder\r

            True means admins have this power, false means they don't\r

            Default is false for clans, true for groups."
          type: boolean
        updateCulturePermissionOverride:
          description: "Minimum Member Level allowed to update group culture\r

            Always Allowed: Founder, Acting Founder\r

            True means admins have this power, false means they don't\r

            Default is false for clans, true for groups."
          type: boolean
      type: object
    GroupsV2.GroupHomepage:
      $ref: "#/components/schemas/schema16"
    GroupsV2.GroupMember:
      properties:
        bungieNetUserInfo:
          $ref: "#/components/schemas/User.UserInfoCard"
        destinyUserInfo:
          $ref: "#/components/schemas/GroupsV2.GroupUserInfoCard"
        groupId:
          format: int64
          type: integer
        isOnline:
          type: boolean
        joinDate:
          format: date-time
          type: string
        lastOnlineStatusChange:
          format: int64
          type: integer
        memberType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema21"
      type: object
    GroupsV2.GroupMemberApplication:
      properties:
        bungieNetUserInfo:
          $ref: "#/components/schemas/User.UserInfoCard"
        creationDate:
          format: date-time
          type: string
        destinyUserInfo:
          $ref: "#/components/schemas/GroupsV2.GroupUserInfoCard"
        groupId:
          format: int64
          type: integer
        requestMessage:
          type: string
        resolveDate:
          format: date-time
          type: string
        resolveMessage:
          type: string
        resolveState:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema82"
        resolvedByMembershipId:
          format: int64
          type: integer
      type: object
    GroupsV2.GroupMemberCountFilter:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: All
          numericValue: "0"
        - identifier: OneToTen
          numericValue: "1"
        - identifier: ElevenToOneHundred
          numericValue: "2"
        - identifier: GreaterThanOneHundred
          numericValue: "3"
    GroupsV2.GroupMemberLeaveResult:
      properties:
        group:
          $ref: "#/components/schemas/GroupsV2.GroupV2"
        groupDeleted:
          type: boolean
      type: object
    GroupsV2.GroupMembership:
      properties:
        group:
          $ref: "#/components/schemas/GroupsV2.GroupV2"
        member:
          $ref: "#/components/schemas/GroupsV2.GroupMember"
      type: object
    GroupsV2.GroupMembershipBase:
      properties:
        group:
          $ref: "#/components/schemas/GroupsV2.GroupV2"
      type: object
    GroupsV2.GroupMembershipSearchResponse:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/GroupsV2.GroupMembership"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    GroupsV2.GroupNameSearchRequest:
      properties:
        groupName:
          type: string
        groupType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema14"
      type: object
    GroupsV2.GroupOptionalConversation:
      properties:
        chatEnabled:
          type: boolean
        chatName:
          type: string
        chatSecurity:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema15"
        conversationId:
          format: int64
          type: integer
        groupId:
          format: int64
          type: integer
      type: object
    GroupsV2.GroupOptionalConversationAddRequest:
      properties:
        chatName:
          type: string
        chatSecurity:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema15"
      type: object
    GroupsV2.GroupOptionalConversationEditRequest:
      properties:
        chatEnabled:
          type: boolean
        chatName:
          type: string
        chatSecurity:
          enum:
            - "0"
            - "1"
          format: int32
          type: integer
          x-enum-values:
            - identifier: Group
              numericValue: "0"
            - identifier: Admins
              numericValue: "1"
      type: object
    GroupsV2.GroupOptionsEditAction:
      properties:
        HostGuidedGamePermissionOverride:
          description: "Minimum Member Level allowed to host guided games\r

            Always Allowed: Founder, Acting Founder, Admin\r

            Allowed Overrides: None, Member, Beginner\r

            Default is Member for clans, None for groups, although this means nothing for groups."
          enum:
            - "0"
            - "1"
            - "2"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: Beginner
              numericValue: "1"
            - identifier: Member
              numericValue: "2"
        InvitePermissionOverride:
          description: "Minimum Member Level allowed to invite new members to group\r

            Always Allowed: Founder, Acting Founder\r

            True means admins have this power, false means they don't\r

            Default is false for clans, true for groups."
          type: boolean
        JoinLevel:
          description: "Level to join a member at when accepting an invite, application, or joining an open clan\r

            Default is Beginner."
          enum:
            - "0"
            - "1"
            - "2"
            - "3"
            - "4"
            - "5"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: Beginner
              numericValue: "1"
            - identifier: Member
              numericValue: "2"
            - identifier: Admin
              numericValue: "3"
            - identifier: ActingFounder
              numericValue: "4"
            - identifier: Founder
              numericValue: "5"
        UpdateBannerPermissionOverride:
          description: "Minimum Member Level allowed to update banner\r

            Always Allowed: Founder, Acting Founder\r

            True means admins have this power, false means they don't\r

            Default is false for clans, true for groups."
          type: boolean
        UpdateCulturePermissionOverride:
          description: "Minimum Member Level allowed to update group culture\r

            Always Allowed: Founder, Acting Founder\r

            True means admins have this power, false means they don't\r

            Default is false for clans, true for groups."
          type: boolean
      type: object
    GroupsV2.GroupPostPublicity:
      $ref: "#/components/schemas/schema18"
    GroupsV2.GroupPotentialMember:
      properties:
        bungieNetUserInfo:
          $ref: "#/components/schemas/User.UserInfoCard"
        destinyUserInfo:
          $ref: "#/components/schemas/GroupsV2.GroupUserInfoCard"
        groupId:
          format: int64
          type: integer
        joinDate:
          format: date-time
          type: string
        potentialStatus:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema76"
      type: object
    GroupsV2.GroupPotentialMemberStatus:
      $ref: "#/components/schemas/schema76"
    GroupsV2.GroupPotentialMembership:
      properties:
        group:
          $ref: "#/components/schemas/GroupsV2.GroupV2"
        member:
          $ref: "#/components/schemas/GroupsV2.GroupPotentialMember"
      type: object
    GroupsV2.GroupPotentialMembershipSearchResponse:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/GroupsV2.GroupPotentialMembership"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    GroupsV2.GroupQuery:
      description: "NOTE: GroupQuery, as of Destiny 2, has essentially two totally different and incompatible \"modes\".\r

        If you are querying for a group, you can pass any of the properties below.\r

        If you are querying for a Clan, you MUST NOT pass any of the following properties (they must be null or undefined in your request, not just empty string/default values):\r

        - groupMemberCountFilter - localeFilter - tagText\r

        If you pass these, you will get a useless InvalidParameters error."
      properties:
        creationDate:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema79"
        currentPage:
          format: int32
          type: integer
        groupMemberCountFilter:
          enum:
            - "0"
            - "1"
            - "2"
            - "3"
          format: int32
          type: integer
          x-enum-values:
            - identifier: All
              numericValue: "0"
            - identifier: OneToTen
              numericValue: "1"
            - identifier: ElevenToOneHundred
              numericValue: "2"
            - identifier: GreaterThanOneHundred
              numericValue: "3"
        groupType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema14"
        itemsPerPage:
          format: int32
          type: integer
        localeFilter:
          type: string
        name:
          type: string
        requestContinuationToken:
          type: string
        sortBy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema80"
        tagText:
          type: string
      type: object
    GroupsV2.GroupResponse:
      properties:
        allianceStatus:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema13"
        alliedIds:
          items:
            format: int64
            type: integer
          type: array
        currentUserMemberMap:
          additionalProperties:
            $ref: "#/components/schemas/GroupsV2.GroupMember"
          description: This property will be populated if the authenticated user is a member of the group. Note that because of account linking, a user can sometimes be part of a clan more than once. As such, this returns the highest member type available.
          type: object
        currentUserMembershipsInactiveForDestiny:
          description: A convenience property that indicates if every membership you (the current user) have that is a part of this group are part of an account that is considered inactive - for example, overridden accounts in Cross Save.
          type: boolean
        currentUserPotentialMemberMap:
          additionalProperties:
            $ref: "#/components/schemas/GroupsV2.GroupPotentialMember"
          description: This property will be populated if the authenticated user is an applicant or has an outstanding invitation to join. Note that because of account linking, a user can sometimes be part of a clan more than once.
          type: object
        detail:
          $ref: "#/components/schemas/GroupsV2.GroupV2"
        founder:
          $ref: "#/components/schemas/GroupsV2.GroupMember"
        groupJoinInviteCount:
          format: int32
          type: integer
        parentGroup:
          $ref: "#/components/schemas/GroupsV2.GroupV2"
      type: object
    GroupsV2.GroupSearchResponse:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/GroupsV2.GroupV2Card"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    GroupsV2.GroupSortBy:
      $ref: "#/components/schemas/schema80"
    GroupsV2.GroupType:
      $ref: "#/components/schemas/schema14"
    GroupsV2.GroupUserBase:
      properties:
        bungieNetUserInfo:
          $ref: "#/components/schemas/User.UserInfoCard"
        destinyUserInfo:
          $ref: "#/components/schemas/GroupsV2.GroupUserInfoCard"
        groupId:
          format: int64
          type: integer
        joinDate:
          format: date-time
          type: string
      type: object
    GroupsV2.GroupUserInfoCard:
      properties:
        LastSeenDisplayName:
          description: This will be the display name the clan server last saw the user as. If the account is an active cross save override, this will be the display name to use. Otherwise, this will match the displayName property.
          type: string
        LastSeenDisplayNameType:
          description: The platform of the LastSeenDisplayName
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        applicableMembershipTypes:
          description: "The list of Membership Types indicating the platforms on which this Membership can be used.\r

            \ Not in Cross Save = its original membership type. Cross Save Primary = Any membership types it is overridding, and its original membership type Cross Save Overridden = Empty list"
          items:
            description: The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema7"
          type: array
        bungieGlobalDisplayName:
          description: The bungie global display name, if set.
          type: string
        bungieGlobalDisplayNameCode:
          description: The bungie global display name code, if set.
          format: int16
          type: integer
        crossSaveOverride:
          description: If there is a cross save override in effect, this value will tell you the type that is overridding this one.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        displayName:
          description: Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
          type: string
        iconPath:
          description: URL the Icon if available.
          type: string
        isPublic:
          description: If True, this is a public user membership.
          type: boolean
        membershipId:
          description: Membership ID as they user is known in the Accounts service
          format: int64
          type: integer
        membershipType:
          description: Type of the membership. Not necessarily the native type.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        supplementalDisplayName:
          description: "A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc."
          type: string
      type: object
    GroupsV2.GroupV2:
      properties:
        about:
          type: string
        allowChat:
          type: boolean
        avatarImageIndex:
          format: int32
          type: integer
        avatarPath:
          type: string
        banExpireDate:
          format: date-time
          type: string
        bannerPath:
          type: string
        chatSecurity:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema15"
        clanInfo:
          $ref: "#/components/schemas/GroupsV2.GroupV2ClanInfoAndInvestment"
        conversationId:
          format: int64
          type: integer
        creationDate:
          format: date-time
          type: string
        defaultPublicity:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema18"
        enableInvitationMessagingForAdmins:
          type: boolean
        features:
          $ref: "#/components/schemas/GroupsV2.GroupFeatures"
        groupId:
          format: int64
          type: integer
        groupType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema14"
        homepage:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema16"
        isDefaultPostPublic:
          type: boolean
        isPublic:
          type: boolean
        isPublicTopicAdminOnly:
          type: boolean
        locale:
          type: string
        memberCount:
          format: int32
          type: integer
        membershipIdCreated:
          format: int64
          type: integer
        membershipOption:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema17"
        modificationDate:
          format: date-time
          type: string
        motto:
          type: string
        name:
          type: string
        tags:
          items:
            type: string
          type: array
        theme:
          type: string
      type: object
    GroupsV2.GroupV2Card:
      description: A small infocard of group information, usually used for when a list of groups are returned
      properties:
        about:
          type: string
        avatarPath:
          type: string
        capabilities:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema19"
        clanInfo:
          $ref: "#/components/schemas/GroupsV2.GroupV2ClanInfo"
        creationDate:
          format: date-time
          type: string
        groupId:
          format: int64
          type: integer
        groupType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema14"
        locale:
          type: string
        memberCount:
          format: int32
          type: integer
        membershipOption:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema17"
        motto:
          type: string
        name:
          type: string
        theme:
          type: string
      type: object
    GroupsV2.GroupV2ClanInfo:
      description: This contract contains clan-specific group information. It does not include any investment data.
      properties:
        clanBannerData:
          $ref: "#/components/schemas/GroupsV2.ClanBanner"
        clanCallsign:
          type: string
      type: object
    GroupsV2.GroupV2ClanInfoAndInvestment:
      description: The same as GroupV2ClanInfo, but includes any investment data.
      properties:
        clanBannerData:
          $ref: "#/components/schemas/GroupsV2.ClanBanner"
        clanCallsign:
          type: string
        d2ClanProgressions:
          additionalProperties:
            $ref: "#/components/schemas/Destiny.DestinyProgression"
          type: object
      type: object
    GroupsV2.GroupsForMemberFilter:
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: All
          numericValue: "0"
        - identifier: Founded
          numericValue: "1"
        - identifier: NonFounded
          numericValue: "2"
    GroupsV2.HostGuidedGamesPermissionLevel:
      $ref: "#/components/schemas/schema20"
    GroupsV2.MembershipOption:
      $ref: "#/components/schemas/schema17"
    GroupsV2.RuntimeGroupMemberType:
      $ref: "#/components/schemas/schema21"
    Ignores.IgnoreLength:
      $ref: "#/components/schemas/schema81"
    Ignores.IgnoreResponse:
      properties:
        ignoreFlags:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema8"
        isIgnored:
          type: boolean
      type: object
    Ignores.IgnoreStatus:
      $ref: "#/components/schemas/schema8"
    Interpolation.InterpolationPoint:
      properties:
        value:
          format: int32
          type: integer
        weight:
          format: int32
          type: integer
      type: object
    Interpolation.InterpolationPointFloat:
      properties:
        value:
          format: float
          type: number
        weight:
          format: float
          type: number
      type: object
    Links.HyperlinkReference:
      properties:
        title:
          type: string
        url:
          type: string
      type: object
    Queries.PagedQuery:
      properties:
        currentPage:
          format: int32
          type: integer
        itemsPerPage:
          format: int32
          type: integer
        requestContinuationToken:
          type: string
      type: object
    Queries.SearchResult:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SearchResultOfContentItemPublicContract:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/Content.ContentItemPublicContract"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SearchResultOfDestinyEntitySearchResultItem:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.DestinyEntitySearchResultItem"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SearchResultOfFireteamResponse:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/Fireteam.FireteamResponse"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SearchResultOfFireteamSummary:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/Fireteam.FireteamSummary"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SearchResultOfGroupBan:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/GroupsV2.GroupBan"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SearchResultOfGroupMember:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/GroupsV2.GroupMember"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SearchResultOfGroupMemberApplication:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/GroupsV2.GroupMemberApplication"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SearchResultOfGroupMembership:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/GroupsV2.GroupMembership"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SearchResultOfGroupPotentialMembership:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/GroupsV2.GroupPotentialMembership"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SearchResultOfGroupV2Card:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/GroupsV2.GroupV2Card"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SearchResultOfPostResponse:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/Forum.PostResponse"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SearchResultOfTrendingEntry:
      properties:
        hasMore:
          type: boolean
        query:
          $ref: "#/components/schemas/Queries.PagedQuery"
        replacementContinuationToken:
          type: string
        results:
          items:
            $ref: "#/components/schemas/Trending.TrendingEntry"
          type: array
        totalResults:
          format: int32
          type: integer
        useTotalResults:
          description: "If useTotalResults is true, then totalResults represents an accurate count.\r

            If False, it does not, and may be estimated/only the size of the current page.\r

            Either way, you should probably always only trust hasMore.\r

            This is a long-held historical throwback to when we used to do paging with known total results. Those queries toasted our database, and we were left to hastily alter our endpoints and create backward- compatible shims, of which useTotalResults is one."
          type: boolean
      type: object
    SingleComponentResponseOfDestinyCharacterActivitiesComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Characters.DestinyCharacterActivitiesComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyCharacterComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Characters.DestinyCharacterComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyCharacterProgressionComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Characters.DestinyCharacterProgressionComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyCharacterRecordsComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Records.DestinyCharacterRecordsComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyCharacterRenderComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Characters.DestinyCharacterRenderComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyCollectiblesComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Collectibles.DestinyCollectiblesComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyCurrenciesComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Inventory.DestinyCurrenciesComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyInventoryComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Inventory.DestinyInventoryComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyItemComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyItemInstanceComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemInstanceComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyItemObjectivesComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemObjectivesComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyItemPerksComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemPerksComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyItemPlugObjectivesComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Items.DestinyItemPlugObjectivesComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyItemRenderComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemRenderComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyItemReusablePlugsComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Items.DestinyItemReusablePlugsComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyItemSocketsComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemSocketsComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyItemStatsComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemStatsComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyItemTalentGridComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Items.DestinyItemTalentGridComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyKiosksComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Kiosks.DestinyKiosksComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyLoadoutsComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Loadouts.DestinyLoadoutsComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyMetricsComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Metrics.DestinyMetricsComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyPlatformSilverComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Inventory.DestinyPlatformSilverComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyPlugSetsComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.PlugSets.DestinyPlugSetsComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyPresentationNodesComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Presentation.DestinyPresentationNodesComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyProfileCollectiblesComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Collectibles.DestinyProfileCollectiblesComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyProfileComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Profiles.DestinyProfileComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyProfileProgressionComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Profiles.DestinyProfileProgressionComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyProfileRecordsComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Records.DestinyProfileRecordsComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyProfileTransitoryComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Profiles.DestinyProfileTransitoryComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinySocialCommendationsComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Social.DestinySocialCommendationsComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyStringVariablesComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.StringVariables.DestinyStringVariablesComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyVendorCategoriesComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Vendors.DestinyVendorCategoriesComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyVendorComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Vendors.DestinyVendorComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyVendorGroupComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Components.Vendors.DestinyVendorGroupComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    SingleComponentResponseOfDestinyVendorReceiptsComponent:
      properties:
        data:
          $ref: "#/components/schemas/Destiny.Entities.Profiles.DestinyVendorReceiptsComponent"
        disabled:
          description: If true, this component is disabled.
          type: boolean
        privacy:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema86"
      type: object
    Social.Friends.BungieFriend:
      properties:
        bungieGlobalDisplayName:
          type: string
        bungieGlobalDisplayNameCode:
          format: int16
          type: integer
        bungieNetUser:
          $ref: "#/components/schemas/User.GeneralUser"
        lastSeenAsBungieMembershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        lastSeenAsMembershipId:
          format: int64
          type: integer
        onlineStatus:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema112"
        onlineTitle:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema113"
        relationship:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema114"
      type: object
    Social.Friends.BungieFriendListResponse:
      properties:
        friends:
          items:
            $ref: "#/components/schemas/Social.Friends.BungieFriend"
          type: array
      type: object
    Social.Friends.BungieFriendRequestListResponse:
      properties:
        incomingRequests:
          items:
            $ref: "#/components/schemas/Social.Friends.BungieFriend"
          type: array
        outgoingRequests:
          items:
            $ref: "#/components/schemas/Social.Friends.BungieFriend"
          type: array
      type: object
    Social.Friends.FriendRelationshipState:
      $ref: "#/components/schemas/schema114"
    Social.Friends.PlatformFriend:
      properties:
        bungieGlobalDisplayName:
          type: string
        bungieGlobalDisplayNameCode:
          format: int16
          type: integer
        bungieNetMembershipId:
          format: int64
          type: integer
        destinyMembershipId:
          format: int64
          type: integer
        destinyMembershipType:
          enum:
            - "0"
            - "1"
            - "2"
            - "3"
            - "4"
            - "5"
            - "6"
            - "10"
            - "254"
            - "-1"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: TigerXbox
              numericValue: "1"
            - identifier: TigerPsn
              numericValue: "2"
            - identifier: TigerSteam
              numericValue: "3"
            - identifier: TigerBlizzard
              numericValue: "4"
            - identifier: TigerStadia
              numericValue: "5"
            - identifier: TigerEgs
              numericValue: "6"
            - identifier: TigerDemon
              numericValue: "10"
            - identifier: BungieNext
              numericValue: "254"
            - description: '"All" is only valid for searching capabilities: you need to pass the actual matching BungieMembershipType for any query where you pass a known membershipId.'
              identifier: All
              numericValue: "-1"
        friendPlatform:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema115"
        platformDisplayName:
          type: string
      type: object
    Social.Friends.PlatformFriendResponse:
      properties:
        currentPage:
          format: int32
          type: integer
        hasMore:
          type: boolean
        itemsPerPage:
          format: int32
          type: integer
        platformFriends:
          items:
            $ref: "#/components/schemas/Social.Friends.PlatformFriend"
          type: array
      type: object
    Social.Friends.PlatformFriendType:
      $ref: "#/components/schemas/schema115"
    Social.Friends.PresenceOnlineStateFlags:
      $ref: "#/components/schemas/schema113"
    Social.Friends.PresenceStatus:
      $ref: "#/components/schemas/schema112"
    StreamInfo:
      properties:
        ChannelName:
          type: string
      type: object
    Streaming.DropStateEnum:
      enum:
        - "0"
        - "1"
        - "2"
      format: uint8
      type: integer
      x-enum-values:
        - identifier: Claimed
          numericValue: "0"
        - identifier: Applied
          numericValue: "1"
        - identifier: Fulfilled
          numericValue: "2"
    Tags.Models.Contracts.TagResponse:
      properties:
        ignoreStatus:
          $ref: "#/components/schemas/Ignores.IgnoreResponse"
        tagText:
          type: string
      type: object
    Tokens.BungieRewardDisplay:
      properties:
        ObjectiveDisplayProperties:
          $ref: "#/components/schemas/Tokens.RewardDisplayProperties"
        RewardDisplayProperties:
          $ref: "#/components/schemas/Tokens.RewardDisplayProperties"
        UserRewardAvailabilityModel:
          $ref: "#/components/schemas/Tokens.UserRewardAvailabilityModel"
      type: object
    Tokens.CollectibleDefinitions:
      properties:
        CollectibleDefinition:
          $ref: "#/components/schemas/Destiny.Definitions.Collectibles.DestinyCollectibleDefinition"
        DestinyInventoryItemDefinition:
          $ref: "#/components/schemas/Destiny.Definitions.DestinyInventoryItemDefinition"
      type: object
    Tokens.PartnerOfferClaimRequest:
      properties:
        BungieNetMembershipId:
          format: int64
          type: integer
        PartnerOfferId:
          type: string
        TransactionId:
          type: string
      type: object
    Tokens.PartnerOfferHistoryResponse:
      properties:
        ApplyDate:
          format: date-time
          type: string
        IsConsumable:
          type: boolean
        LocalizedDescription:
          type: string
        LocalizedName:
          type: string
        MembershipId:
          format: int64
          type: integer
        MembershipType:
          enum:
            - "0"
            - "1"
            - "2"
            - "3"
            - "4"
            - "5"
            - "6"
            - "10"
            - "254"
            - "-1"
          format: int32
          type: integer
          x-enum-values:
            - identifier: None
              numericValue: "0"
            - identifier: TigerXbox
              numericValue: "1"
            - identifier: TigerPsn
              numericValue: "2"
            - identifier: TigerSteam
              numericValue: "3"
            - identifier: TigerBlizzard
              numericValue: "4"
            - identifier: TigerStadia
              numericValue: "5"
            - identifier: TigerEgs
              numericValue: "6"
            - identifier: TigerDemon
              numericValue: "10"
            - identifier: BungieNext
              numericValue: "254"
            - description: '"All" is only valid for searching capabilities: you need to pass the actual matching BungieMembershipType for any query where you pass a known membershipId.'
              identifier: All
              numericValue: "-1"
        PartnerOfferKey:
          type: string
        QuantityApplied:
          format: int32
          type: integer
      type: object
    Tokens.PartnerOfferSkuHistoryResponse:
      properties:
        AllOffersApplied:
          type: boolean
        ClaimDate:
          format: date-time
          type: string
        LocalizedDescription:
          type: string
        LocalizedName:
          type: string
        SkuIdentifier:
          type: string
        SkuOffers:
          items:
            $ref: "#/components/schemas/Tokens.PartnerOfferHistoryResponse"
          type: array
        TransactionId:
          type: string
      type: object
    Tokens.PartnerRewardHistoryResponse:
      properties:
        PartnerOffers:
          items:
            $ref: "#/components/schemas/Tokens.PartnerOfferSkuHistoryResponse"
          type: array
        TwitchDrops:
          items:
            $ref: "#/components/schemas/Tokens.TwitchDropHistoryResponse"
          type: array
      type: object
    Tokens.RewardAvailabilityModel:
      properties:
        CollectibleDefinitions:
          items:
            $ref: "#/components/schemas/Tokens.CollectibleDefinitions"
          type: array
        DecryptedToken:
          type: string
        GameEarnByDate:
          format: date-time
          type: string
        HasExistingCode:
          type: boolean
        HasOffer:
          type: boolean
        IsLoyaltyReward:
          type: boolean
        IsOffer:
          type: boolean
        OfferApplied:
          type: boolean
        RecordDefinitions:
          items:
            $ref: "#/components/schemas/Destiny.Definitions.Records.DestinyRecordDefinition"
          type: array
        RedemptionEndDate:
          format: date-time
          type: string
        ShopifyEndDate:
          format: date-time
          type: string
      type: object
    Tokens.RewardDisplayProperties:
      properties:
        Description:
          type: string
        ImagePath:
          type: string
        Name:
          type: string
      type: object
    Tokens.TwitchDropHistoryResponse:
      properties:
        ClaimState:
          enum:
            - "0"
            - "1"
            - "2"
          format: uint8
          type: integer
          x-enum-values:
            - identifier: Claimed
              numericValue: "0"
            - identifier: Applied
              numericValue: "1"
            - identifier: Fulfilled
              numericValue: "2"
        CreatedAt:
          format: date-time
          type: string
        Description:
          type: string
        Title:
          type: string
      type: object
    Tokens.UserRewardAvailabilityModel:
      properties:
        AvailabilityModel:
          $ref: "#/components/schemas/Tokens.RewardAvailabilityModel"
        IsAvailableForUser:
          type: boolean
        IsUnlockedForUser:
          type: boolean
      type: object
    Trending.TrendingCategories:
      properties:
        categories:
          items:
            $ref: "#/components/schemas/Trending.TrendingCategory"
          type: array
      type: object
    Trending.TrendingCategory:
      properties:
        categoryId:
          type: string
        categoryName:
          type: string
        entries:
          $ref: "#/components/schemas/SearchResultOfTrendingEntry"
      type: object
    Trending.TrendingDetail:
      properties:
        creation:
          $ref: "#/components/schemas/Trending.TrendingEntryCommunityCreation"
        destinyActivity:
          $ref: "#/components/schemas/Trending.TrendingEntryDestinyActivity"
        destinyItem:
          $ref: "#/components/schemas/Trending.TrendingEntryDestinyItem"
        destinyRitual:
          $ref: "#/components/schemas/Trending.TrendingEntryDestinyRitual"
        entityType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema109"
        identifier:
          type: string
        news:
          $ref: "#/components/schemas/Trending.TrendingEntryNews"
        support:
          $ref: "#/components/schemas/Trending.TrendingEntrySupportArticle"
      type: object
    Trending.TrendingEntry:
      description: The list entry view for trending items. Returns just enough to show the item on the trending page.
      properties:
        creationDate:
          description: If the entry has a date at which it was created, this is that date.
          format: date-time
          type: string
        displayName:
          description: The localized "display name/article title/'primary localized identifier'" of the entity.
          type: string
        endDate:
          format: date-time
          type: string
        entityType:
          description: An enum - unfortunately - dictating all of the possible kinds of trending items that you might get in your result set, in case you want to do custom rendering or call to get the details of the item.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema109"
        featureImage:
          description: If isFeatured, this image will be populated with whatever the featured image is. Note that this will likely be a very large image, so don't use it all the time.
          type: string
        identifier:
          description: We don't know whether the identifier will be a string, a uint, or a long... so we're going to cast it all to a string. But either way, we need any trending item created to have a single unique identifier for its type.
          type: string
        image:
          type: string
        isFeatured:
          type: boolean
        items:
          description: If the item is of entityType TrendingEntryType.Container, it may have items - also Trending Entries - contained within it. This is the ordered list of those to display under the Container's header.
          items:
            $ref: "#/components/schemas/Trending.TrendingEntry"
          type: array
        link:
          type: string
        mp4Video:
          description: If this is populated, the entry has a related MP4 video to show. I am 100% certain I am going to regret putting this directly on TrendingEntry, but it will work so yolo
          type: string
        startDate:
          format: date-time
          type: string
        tagline:
          description: If the entity has a localized tagline/subtitle/motto/whatever, that is found here.
          type: string
        webmVideo:
          description: If this is populated, the entry has a related WebM video to show. I am 100% certain I am going to regret putting this directly on TrendingEntry, but it will work so yolo
          type: string
        weight:
          description: The weighted score of this trending item.
          format: double
          type: number
      type: object
    Trending.TrendingEntryCommunityCreation:
      properties:
        author:
          type: string
        authorMembershipId:
          format: int64
          type: integer
        body:
          type: string
        media:
          type: string
        postId:
          format: int64
          type: integer
        title:
          type: string
        upvotes:
          format: int32
          type: integer
      type: object
    Trending.TrendingEntryDestinyActivity:
      properties:
        activityHash:
          format: uint32
          type: integer
        status:
          $ref: "#/components/schemas/Destiny.Activities.DestinyPublicActivityStatus"
      type: object
    Trending.TrendingEntryDestinyItem:
      properties:
        itemHash:
          format: uint32
          type: integer
      type: object
    Trending.TrendingEntryDestinyRitual:
      properties:
        dateEnd:
          format: date-time
          type: string
        dateStart:
          format: date-time
          type: string
        eventContent:
          allOf:
            - $ref: "#/components/schemas/Destiny.Milestones.DestinyMilestoneContent"
          description: A destiny event will not necessarily have milestone "custom content", but if it does the details will be here.
          type: object
        icon:
          type: string
        image:
          type: string
        milestoneDetails:
          allOf:
            - $ref: "#/components/schemas/Destiny.Milestones.DestinyPublicMilestone"
          description: A destiny event does not necessarily have a related Milestone, but if it does the details will be returned here.
          type: object
        subtitle:
          type: string
        title:
          type: string
      type: object
    Trending.TrendingEntryNews:
      properties:
        article:
          $ref: "#/components/schemas/Content.ContentItemPublicContract"
      type: object
    Trending.TrendingEntrySupportArticle:
      properties:
        article:
          $ref: "#/components/schemas/Content.ContentItemPublicContract"
      type: object
    Trending.TrendingEntryType:
      $ref: "#/components/schemas/schema109"
    User.CrossSaveUserMembership:
      description: Very basic info about a user as returned by the Account server, but including CrossSave information. Do NOT use as a request contract.
      properties:
        applicableMembershipTypes:
          description: "The list of Membership Types indicating the platforms on which this Membership can be used.\r

            \ Not in Cross Save = its original membership type. Cross Save Primary = Any membership types it is overridding, and its original membership type Cross Save Overridden = Empty list"
          items:
            description: The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema7"
          type: array
        bungieGlobalDisplayName:
          description: The bungie global display name, if set.
          type: string
        bungieGlobalDisplayNameCode:
          description: The bungie global display name code, if set.
          format: int16
          type: integer
        crossSaveOverride:
          description: If there is a cross save override in effect, this value will tell you the type that is overridding this one.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        displayName:
          description: Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
          type: string
        isPublic:
          description: If True, this is a public user membership.
          type: boolean
        membershipId:
          description: Membership ID as they user is known in the Accounts service
          format: int64
          type: integer
        membershipType:
          description: Type of the membership. Not necessarily the native type.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
      type: object
    User.EMailSettingLocalization:
      description: Localized text relevant to a given EMail setting in a given localization.
      properties:
        description:
          type: string
        title:
          type: string
      type: object
    User.EMailSettingSubscriptionLocalization:
      description: Localized text relevant to a given EMail setting in a given localization. Extra settings specifically for subscriptions.
      properties:
        description:
          type: string
        knownUserActionText:
          type: string
        registeredUserDescription:
          type: string
        title:
          type: string
        unknownUserActionText:
          type: string
        unknownUserDescription:
          type: string
        unregisteredUserDescription:
          type: string
      type: object
    User.EmailOptInDefinition:
      description: "Defines a single opt-in category: a wide-scoped permission to send emails for the subject related to the opt-in."
      properties:
        dependentSubscriptions:
          description: Information about the dependent subscriptions for this opt-in.
          items:
            $ref: "#/components/schemas/User.EmailSubscriptionDefinition"
          type: array
        name:
          description: The unique identifier for this opt-in category.
          type: string
        setByDefault:
          description: If true, this opt-in setting should be set by default in situations where accounts are created without explicit choices about what they're opting into.
          type: boolean
        value:
          description: The flag value for this opt-in category. For historical reasons, this is defined as a flags enum.
          format: int64
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema116"
      type: object
    User.EmailSettings:
      description: The set of all email subscription/opt-in settings and definitions.
      properties:
        optInDefinitions:
          additionalProperties:
            $ref: "#/components/schemas/User.EmailOptInDefinition"
          description: Keyed by the name identifier of the opt-in definition.
          type: object
        subscriptionDefinitions:
          additionalProperties:
            $ref: "#/components/schemas/User.EmailSubscriptionDefinition"
          description: Keyed by the name identifier of the Subscription definition.
          type: object
        views:
          additionalProperties:
            $ref: "#/components/schemas/User.EmailViewDefinition"
          description: Keyed by the name identifier of the View definition.
          type: object
      type: object
    User.EmailSubscriptionDefinition:
      description: "Defines a single subscription: permission to send emails for a specific, focused subject (generally timeboxed, such as for a specific release of a product or feature)."
      properties:
        localization:
          additionalProperties:
            $ref: "#/components/schemas/User.EMailSettingSubscriptionLocalization"
          description: A dictionary of localized text for the EMail Opt-in setting, keyed by the locale.
          type: object
        name:
          description: The unique identifier for this subscription.
          type: string
        value:
          description: The bitflag value for this subscription. Should be a unique power of two value.
          format: int64
          type: integer
      type: object
    User.EmailViewDefinition:
      description: Represents a data-driven view for Email settings. Web/Mobile UI can use this data to show new EMail settings consistently without further manual work.
      properties:
        name:
          description: The identifier for this view.
          type: string
        viewSettings:
          description: The ordered list of settings to show in this view.
          items:
            $ref: "#/components/schemas/User.EmailViewDefinitionSetting"
          type: array
      type: object
    User.EmailViewDefinitionSetting:
      properties:
        localization:
          additionalProperties:
            $ref: "#/components/schemas/User.EMailSettingLocalization"
          description: A dictionary of localized text for the EMail setting, keyed by the locale.
          type: object
        name:
          description: The identifier for this UI Setting, which can be used to relate it to custom strings or other data as desired.
          type: string
        optInAggregateValue:
          description: The OptInFlags value to set or clear if this setting is set or cleared in the UI. It is the aggregate of all underlying opt-in flags related to this setting.
          format: int64
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema116"
        setByDefault:
          description: If true, this setting should be set by default if the user hasn't chosen whether it's set or cleared yet.
          type: boolean
        subscriptions:
          description: The subscriptions to show as children of this setting, if any.
          items:
            $ref: "#/components/schemas/User.EmailSubscriptionDefinition"
          type: array
      type: object
    User.ExactSearchRequest:
      properties:
        displayName:
          type: string
        displayNameCode:
          format: int16
          type: integer
      type: object
    User.GeneralUser:
      properties:
        about:
          type: string
        blizzardDisplayName:
          type: string
        cachedBungieGlobalDisplayName:
          type: string
        cachedBungieGlobalDisplayNameCode:
          format: int16
          type: integer
        context:
          $ref: "#/components/schemas/User.UserToUserContext"
        displayName:
          type: string
        egsDisplayName:
          type: string
        fbDisplayName:
          type: string
        firstAccess:
          format: date-time
          type: string
        isDeleted:
          type: boolean
        lastBanReportId:
          format: int64
          type: integer
        lastUpdate:
          format: date-time
          type: string
        legacyPortalUID:
          format: int64
          type: integer
        locale:
          type: string
        localeInheritDefault:
          type: boolean
        membershipId:
          format: int64
          type: integer
        normalizedName:
          type: string
        profileBanExpire:
          format: date-time
          type: string
        profilePicture:
          format: int32
          type: integer
        profilePicturePath:
          type: string
        profilePictureWidePath:
          type: string
        profileTheme:
          format: int32
          type: integer
        profileThemeName:
          type: string
        psnDisplayName:
          type: string
        showActivity:
          type: boolean
        showGroupMessaging:
          type: boolean
        stadiaDisplayName:
          type: string
        statusDate:
          format: date-time
          type: string
        statusText:
          type: string
        steamDisplayName:
          type: string
        successMessageFlags:
          format: int64
          type: integer
        twitchDisplayName:
          type: string
        uniqueName:
          type: string
        userTitle:
          format: int32
          type: integer
        userTitleDisplay:
          type: string
        xboxDisplayName:
          type: string
      type: object
    User.HardLinkedUserMembership:
      properties:
        CrossSaveOverriddenMembershipId:
          format: int64
          type: integer
        CrossSaveOverriddenType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        membershipId:
          format: int64
          type: integer
        membershipType:
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
      type: object
    User.Models.GetCredentialTypesForAccountResponse:
      properties:
        credentialAsString:
          type: string
        credentialDisplayName:
          type: string
        credentialType:
          format: uint8
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema9"
        isPublic:
          type: boolean
      type: object
    User.OptInFlags:
      $ref: "#/components/schemas/schema116"
    User.UserInfoCard:
      description: This contract supplies basic information commonly used to display a minimal amount of information about a user. Take care to not add more properties here unless the property applies in all (or at least the majority) of the situations where UserInfoCard is used. Avoid adding game specific or platform specific details here. In cases where UserInfoCard is a subset of the data needed in a contract, use UserInfoCard as a property of other contracts.
      properties:
        applicableMembershipTypes:
          description: "The list of Membership Types indicating the platforms on which this Membership can be used.\r

            \ Not in Cross Save = its original membership type. Cross Save Primary = Any membership types it is overridding, and its original membership type Cross Save Overridden = Empty list"
          items:
            description: The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
            format: int32
            type: integer
            x-enum-reference:
              $ref: "#/components/schemas/schema7"
          type: array
        bungieGlobalDisplayName:
          description: The bungie global display name, if set.
          type: string
        bungieGlobalDisplayNameCode:
          description: The bungie global display name code, if set.
          format: int16
          type: integer
        crossSaveOverride:
          description: If there is a cross save override in effect, this value will tell you the type that is overridding this one.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        displayName:
          description: Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
          type: string
        iconPath:
          description: URL the Icon if available.
          type: string
        isPublic:
          description: If True, this is a public user membership.
          type: boolean
        membershipId:
          description: Membership ID as they user is known in the Accounts service
          format: int64
          type: integer
        membershipType:
          description: Type of the membership. Not necessarily the native type.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
        supplementalDisplayName:
          description: "A platform specific additional display name - ex: psn Real Name, bnet Unique Name, etc."
          type: string
      type: object
    User.UserMembership:
      description: Very basic info about a user as returned by the Account server.
      properties:
        bungieGlobalDisplayName:
          description: The bungie global display name, if set.
          type: string
        bungieGlobalDisplayNameCode:
          description: The bungie global display name code, if set.
          format: int16
          type: integer
        displayName:
          description: Display Name the player has chosen for themselves. The display name is optional when the data type is used as input to a platform API.
          type: string
        membershipId:
          description: Membership ID as they user is known in the Accounts service
          format: int64
          type: integer
        membershipType:
          description: Type of the membership. Not necessarily the native type.
          format: int32
          type: integer
          x-enum-reference:
            $ref: "#/components/schemas/schema7"
      type: object
    User.UserMembershipData:
      properties:
        bungieNetUser:
          $ref: "#/components/schemas/User.GeneralUser"
        destinyMemberships:
          description: this allows you to see destiny memberships that are visible and linked to this account (regardless of whether or not they have characters on the world server)
          items:
            $ref: "#/components/schemas/GroupsV2.GroupUserInfoCard"
          type: array
        primaryMembershipId:
          description: "If this property is populated, it will have the membership ID of the account considered to be \"primary\" in this user's cross save relationship.\r

            \ If null, this user has no cross save relationship, nor primary account."
          format: int64
          type: integer
      type: object
    User.UserSearchPrefixRequest:
      properties:
        displayNamePrefix:
          type: string
      type: object
    User.UserSearchResponse:
      properties:
        hasMore:
          type: boolean
        page:
          format: int32
          type: integer
        searchResults:
          items:
            $ref: "#/components/schemas/User.UserSearchResponseDetail"
          type: array
      type: object
    User.UserSearchResponseDetail:
      properties:
        bungieGlobalDisplayName:
          type: string
        bungieGlobalDisplayNameCode:
          format: int16
          type: integer
        bungieNetMembershipId:
          format: int64
          type: integer
        destinyMemberships:
          items:
            $ref: "#/components/schemas/User.UserInfoCard"
          type: array
      type: object
    User.UserToUserContext:
      properties:
        globalIgnoreEndDate:
          format: date-time
          type: string
        ignoreStatus:
          $ref: "#/components/schemas/Ignores.IgnoreResponse"
        isFollowing:
          type: boolean
      type: object
    schema1:
      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"
        - "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"
        - "115"
        - "116"
        - "117"
        - "118"
        - "119"
        - "120"
        - "121"
        - "122"
        - "123"
        - "124"
        - "125"
        - "126"
        - "127"
        - "128"
        - "129"
        - "130"
        - "131"
        - "132"
        - "133"
        - "134"
        - "135"
        - "136"
        - "137"
        - "138"
        - "139"
        - "140"
        - "141"
        - "142"
        - "143"
        - "144"
        - "145"
        - "146"
        - "147"
        - "148"
        - "149"
        - "150"
        - "151"
        - "152"
        - "153"
        - "154"
        - "155"
        - "156"
        - "157"
        - "158"
        - "159"
        - "160"
        - "161"
        - "162"
        - "163"
        - "164"
        - "165"
        - "166"
        - "167"
        - "168"
        - "169"
        - "170"
        - "171"
        - "172"
        - "173"
        - "174"
        - "175"
        - "176"
        - "177"
        - "178"
        - "179"
        - "180"
        - "181"
        - "200"
        - "201"
        - "202"
        - "203"
        - "204"
        - "205"
        - "206"
        - "207"
        - "208"
        - "209"
        - "210"
        - "211"
        - "212"
        - "213"
        - "214"
        - "215"
        - "216"
        - "217"
        - "218"
        - "219"
        - "220"
        - "221"
        - "222"
        - "223"
        - "224"
        - "225"
        - "226"
        - "227"
        - "228"
        - "229"
        - "230"
        - "231"
        - "232"
        - "233"
        - "234"
        - "235"
        - "236"
        - "237"
        - "238"
        - "239"
        - "240"
        - "241"
        - "242"
        - "243"
        - "244"
        - "300"
        - "301"
        - "302"
        - "303"
        - "304"
        - "305"
        - "306"
        - "307"
        - "308"
        - "309"
        - "310"
        - "311"
        - "312"
        - "313"
        - "400"
        - "500"
        - "501"
        - "502"
        - "503"
        - "504"
        - "505"
        - "506"
        - "507"
        - "508"
        - "509"
        - "510"
        - "511"
        - "512"
        - "513"
        - "514"
        - "515"
        - "516"
        - "517"
        - "518"
        - "519"
        - "520"
        - "521"
        - "522"
        - "523"
        - "524"
        - "525"
        - "526"
        - "527"
        - "528"
        - "529"
        - "530"
        - "531"
        - "532"
        - "533"
        - "534"
        - "535"
        - "536"
        - "537"
        - "538"
        - "539"
        - "540"
        - "541"
        - "542"
        - "543"
        - "544"
        - "555"
        - "556"
        - "557"
        - "558"
        - "559"
        - "560"
        - "561"
        - "562"
        - "563"
        - "564"
        - "565"
        - "566"
        - "567"
        - "568"
        - "569"
        - "570"
        - "571"
        - "572"
        - "573"
        - "574"
        - "575"
        - "576"
        - "577"
        - "578"
        - "579"
        - "580"
        - "581"
        - "582"
        - "583"
        - "584"
        - "585"
        - "586"
        - "587"
        - "588"
        - "589"
        - "590"
        - "591"
        - "592"
        - "593"
        - "594"
        - "595"
        - "596"
        - "601"
        - "602"
        - "603"
        - "604"
        - "605"
        - "606"
        - "607"
        - "608"
        - "609"
        - "610"
        - "611"
        - "612"
        - "613"
        - "614"
        - "615"
        - "616"
        - "617"
        - "618"
        - "619"
        - "620"
        - "621"
        - "622"
        - "623"
        - "624"
        - "625"
        - "626"
        - "627"
        - "628"
        - "629"
        - "630"
        - "631"
        - "632"
        - "633"
        - "634"
        - "635"
        - "636"
        - "637"
        - "638"
        - "639"
        - "641"
        - "642"
        - "643"
        - "644"
        - "646"
        - "647"
        - "648"
        - "649"
        - "650"
        - "651"
        - "652"
        - "653"
        - "654"
        - "655"
        - "656"
        - "657"
        - "658"
        - "659"
        - "660"
        - "661"
        - "662"
        - "663"
        - "664"
        - "665"
        - "666"
        - "667"
        - "668"
        - "669"
        - "670"
        - "671"
        - "672"
        - "673"
        - "674"
        - "675"
        - "676"
        - "677"
        - "678"
        - "679"
        - "680"
        - "681"
        - "682"
        - "683"
        - "684"
        - "685"
        - "686"
        - "687"
        - "688"
        - "689"
        - "690"
        - "691"
        - "692"
        - "693"
        - "694"
        - "695"
        - "696"
        - "697"
        - "698"
        - "699"
        - "701"
        - "702"
        - "703"
        - "704"
        - "705"
        - "706"
        - "707"
        - "750"
        - "751"
        - "752"
        - "753"
        - "754"
        - "755"
        - "801"
        - "802"
        - "803"
        - "804"
        - "805"
        - "806"
        - "807"
        - "900"
        - "901"
        - "902"
        - "903"
        - "904"
        - "905"
        - "906"
        - "907"
        - "908"
        - "909"
        - "1000"
        - "1001"
        - "1002"
        - "1003"
        - "1004"
        - "1005"
        - "1006"
        - "1007"
        - "1008"
        - "1009"
        - "1010"
        - "1100"
        - "1204"
        - "1205"
        - "1218"
        - "1223"
        - "1224"
        - "1225"
        - "1226"
        - "1227"
        - "1229"
        - "1230"
        - "1231"
        - "1232"
        - "1233"
        - "1234"
        - "1235"
        - "1236"
        - "1237"
        - "1238"
        - "1239"
        - "1240"
        - "1241"
        - "1242"
        - "1300"
        - "1301"
        - "1302"
        - "1303"
        - "1304"
        - "1305"
        - "1306"
        - "1307"
        - "1308"
        - "1309"
        - "1310"
        - "1311"
        - "1312"
        - "1313"
        - "1314"
        - "1315"
        - "1316"
        - "1317"
        - "1318"
        - "1400"
        - "1401"
        - "1402"
        - "1403"
        - "1404"
        - "1405"
        - "1500"
        - "1501"
        - "1502"
        - "1600"
        - "1601"
        - "1602"
        - "1603"
        - "1604"
        - "1605"
        - "1606"
        - "1607"
        - "1608"
        - "1609"
        - "1610"
        - "1611"
        - "1612"
        - "1613"
        - "1614"
        - "1615"
        - "1616"
        - "1617"
        - "1618"
        - "1619"
        - "1620"
        - "1621"
        - "1622"
        - "1623"
        - "1624"
        - "1625"
        - "1626"
        - "1627"
        - "1628"
        - "1629"
        - "1630"
        - "1631"
        - "1632"
        - "1633"
        - "1634"
        - "1635"
        - "1636"
        - "1637"
        - "1638"
        - "1639"
        - "1640"
        - "1641"
        - "1642"
        - "1643"
        - "1644"
        - "1645"
        - "1646"
        - "1647"
        - "1648"
        - "1649"
        - "1650"
        - "1651"
        - "1652"
        - "1653"
        - "1654"
        - "1655"
        - "1656"
        - "1657"
        - "1658"
        - "1659"
        - "1660"
        - "1661"
        - "1662"
        - "1663"
        - "1664"
        - "1665"
        - "1666"
        - "1667"
        - "1668"
        - "1669"
        - "1670"
        - "1671"
        - "1672"
        - "1673"
        - "1674"
        - "1675"
        - "1676"
        - "1677"
        - "1678"
        - "1679"
        - "1680"
        - "1681"
        - "1682"
        - "1683"
        - "1684"
        - "1685"
        - "1686"
        - "1687"
        - "1688"
        - "1800"
        - "1801"
        - "1802"
        - "1803"
        - "1804"
        - "1805"
        - "1806"
        - "1900"
        - "1901"
        - "1902"
        - "1903"
        - "1904"
        - "1905"
        - "1906"
        - "1907"
        - "1908"
        - "1910"
        - "1911"
        - "1912"
        - "1913"
        - "1914"
        - "2000"
        - "2001"
        - "2002"
        - "2003"
        - "2004"
        - "2005"
        - "2006"
        - "2007"
        - "2008"
        - "2009"
        - "2010"
        - "2011"
        - "2012"
        - "2013"
        - "2014"
        - "2015"
        - "2016"
        - "2017"
        - "2018"
        - "2019"
        - "2020"
        - "2021"
        - "2022"
        - "2023"
        - "2024"
        - "2025"
        - "2026"
        - "2027"
        - "2028"
        - "2029"
        - "2030"
        - "2031"
        - "2032"
        - "2033"
        - "2034"
        - "2035"
        - "2036"
        - "2037"
        - "2038"
        - "2039"
        - "2040"
        - "2041"
        - "2042"
        - "2043"
        - "2044"
        - "2045"
        - "2046"
        - "2047"
        - "2048"
        - "2049"
        - "2050"
        - "2051"
        - "2052"
        - "2053"
        - "2054"
        - "2055"
        - "2056"
        - "2057"
        - "2058"
        - "2059"
        - "2060"
        - "2061"
        - "2062"
        - "2063"
        - "2064"
        - "2065"
        - "2100"
        - "2101"
        - "2102"
        - "2103"
        - "2104"
        - "2105"
        - "2106"
        - "2107"
        - "2108"
        - "2109"
        - "2110"
        - "2111"
        - "2112"
        - "2113"
        - "2114"
        - "2115"
        - "2116"
        - "2117"
        - "2118"
        - "2119"
        - "2120"
        - "2121"
        - "2122"
        - "2123"
        - "2124"
        - "2125"
        - "2126"
        - "2200"
        - "2201"
        - "2202"
        - "2203"
        - "2204"
        - "2205"
        - "2206"
        - "2207"
        - "2300"
        - "2500"
        - "2501"
        - "2502"
        - "2503"
        - "2504"
        - "2505"
        - "2506"
        - "2507"
        - "2508"
        - "2509"
        - "2510"
        - "2600"
        - "2601"
        - "2700"
        - "2701"
        - "2702"
        - "2703"
        - "2800"
        - "2801"
        - "2802"
        - "2803"
        - "2804"
        - "2805"
        - "2806"
        - "2900"
        - "2901"
        - "2902"
        - "2903"
        - "3000"
        - "3001"
        - "3002"
        - "3003"
        - "3004"
        - "3005"
        - "3006"
        - "3007"
        - "3008"
        - "3009"
        - "3010"
        - "3011"
        - "3012"
        - "3013"
        - "3014"
        - "3015"
        - "3016"
        - "3017"
        - "3018"
        - "3019"
        - "3020"
        - "3021"
        - "3022"
        - "3023"
        - "3024"
        - "3025"
        - "3026"
        - "3027"
        - "3028"
        - "3029"
        - "3030"
        - "3031"
        - "3032"
        - "3033"
        - "3034"
        - "3035"
        - "3036"
        - "3037"
        - "3038"
        - "3200"
        - "3201"
        - "3202"
        - "3203"
        - "3204"
        - "3206"
        - "3207"
        - "3208"
        - "3209"
        - "3210"
        - "3211"
        - "3212"
        - "3213"
        - "3214"
        - "3215"
        - "3216"
        - "3217"
        - "3218"
        - "3219"
        - "3220"
        - "3221"
        - "3222"
        - "3300"
        - "3400"
        - "3401"
        - "3402"
        - "3403"
        - "3404"
        - "3405"
        - "3406"
        - "3407"
        - "3408"
        - "3409"
        - "3410"
        - "3411"
        - "3412"
        - "3413"
        - "3414"
        - "3500"
        - "3600"
        - "3702"
        - "3703"
        - "3705"
        - "3706"
        - "3707"
        - "3708"
        - "3709"
        - "3710"
        - "3800"
        - "3801"
        - "3802"
        - "3803"
        - "3804"
        - "3805"
        - "3806"
        - "3807"
        - "3900"
        - "3901"
        - "3902"
        - "3903"
        - "3904"
        - "3905"
        - "3906"
        - "3907"
        - "3908"
        - "3910"
        - "3911"
        - "4000"
        - "4001"
        - "4002"
        - "4003"
        - "4004"
        - "4005"
        - "4006"
        - "4007"
        - "4008"
        - "4009"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Success
          numericValue: "1"
        - identifier: TransportException
          numericValue: "2"
        - identifier: UnhandledException
          numericValue: "3"
        - identifier: NotImplemented
          numericValue: "4"
        - identifier: SystemDisabled
          numericValue: "5"
        - identifier: FailedToLoadAvailableLocalesConfiguration
          numericValue: "6"
        - identifier: ParameterParseFailure
          numericValue: "7"
        - identifier: ParameterInvalidRange
          numericValue: "8"
        - identifier: BadRequest
          numericValue: "9"
        - identifier: AuthenticationInvalid
          numericValue: "10"
        - identifier: DataNotFound
          numericValue: "11"
        - identifier: InsufficientPrivileges
          numericValue: "12"
        - identifier: Duplicate
          numericValue: "13"
        - identifier: UnknownSqlResult
          numericValue: "14"
        - identifier: ValidationError
          numericValue: "15"
        - identifier: ValidationMissingFieldError
          numericValue: "16"
        - identifier: ValidationInvalidInputError
          numericValue: "17"
        - identifier: InvalidParameters
          numericValue: "18"
        - identifier: ParameterNotFound
          numericValue: "19"
        - identifier: UnhandledHttpException
          numericValue: "20"
        - identifier: NotFound
          numericValue: "21"
        - identifier: WebAuthModuleAsyncFailed
          numericValue: "22"
        - identifier: InvalidReturnValue
          numericValue: "23"
        - identifier: UserBanned
          numericValue: "24"
        - identifier: InvalidPostBody
          numericValue: "25"
        - identifier: MissingPostBody
          numericValue: "26"
        - identifier: ExternalServiceTimeout
          numericValue: "27"
        - identifier: ValidationLengthError
          numericValue: "28"
        - identifier: ValidationRangeError
          numericValue: "29"
        - identifier: JsonDeserializationError
          numericValue: "30"
        - identifier: ThrottleLimitExceeded
          numericValue: "31"
        - identifier: ValidationTagError
          numericValue: "32"
        - identifier: ValidationProfanityError
          numericValue: "33"
        - identifier: ValidationUrlFormatError
          numericValue: "34"
        - identifier: ThrottleLimitExceededMinutes
          numericValue: "35"
        - identifier: ThrottleLimitExceededMomentarily
          numericValue: "36"
        - identifier: ThrottleLimitExceededSeconds
          numericValue: "37"
        - identifier: ExternalServiceUnknown
          numericValue: "38"
        - identifier: ValidationWordLengthError
          numericValue: "39"
        - identifier: ValidationInvisibleUnicode
          numericValue: "40"
        - identifier: ValidationBadNames
          numericValue: "41"
        - identifier: ExternalServiceFailed
          numericValue: "42"
        - identifier: ServiceRetired
          numericValue: "43"
        - identifier: UnknownSqlException
          numericValue: "44"
        - identifier: UnsupportedLocale
          numericValue: "45"
        - identifier: InvalidPageNumber
          numericValue: "46"
        - identifier: MaximumPageSizeExceeded
          numericValue: "47"
        - identifier: ServiceUnsupported
          numericValue: "48"
        - identifier: ValidationMaximumUnicodeCombiningCharacters
          numericValue: "49"
        - identifier: ValidationMaximumSequentialCarriageReturns
          numericValue: "50"
        - identifier: PerEndpointRequestThrottleExceeded
          numericValue: "51"
        - identifier: AuthContextCacheAssertion
          numericValue: "52"
        - identifier: ExPlatformStringValidationError
          numericValue: "53"
        - identifier: PerApplicationThrottleExceeded
          numericValue: "54"
        - identifier: PerApplicationAnonymousThrottleExceeded
          numericValue: "55"
        - identifier: PerApplicationAuthenticatedThrottleExceeded
          numericValue: "56"
        - identifier: PerUserThrottleExceeded
          numericValue: "57"
        - identifier: PayloadSignatureVerificationFailure
          numericValue: "58"
        - identifier: InvalidServiceAuthContext
          numericValue: "59"
        - identifier: ObsoleteCredentialType
          numericValue: "89"
        - identifier: UnableToUnPairMobileApp
          numericValue: "90"
        - identifier: UnableToPairMobileApp
          numericValue: "91"
        - identifier: CannotUseMobileAuthWithNonMobileProvider
          numericValue: "92"
        - identifier: MissingDeviceCookie
          numericValue: "93"
        - identifier: FacebookTokenExpired
          numericValue: "94"
        - identifier: AuthTicketRequired
          numericValue: "95"
        - identifier: CookieContextRequired
          numericValue: "96"
        - identifier: UnknownAuthenticationError
          numericValue: "97"
        - identifier: BungieNetAccountCreationRequired
          numericValue: "98"
        - identifier: WebAuthRequired
          numericValue: "99"
        - identifier: ContentUnknownSqlResult
          numericValue: "100"
        - identifier: ContentNeedUniquePath
          numericValue: "101"
        - identifier: ContentSqlException
          numericValue: "102"
        - identifier: ContentNotFound
          numericValue: "103"
        - identifier: ContentSuccessWithTagAddFail
          numericValue: "104"
        - identifier: ContentSearchMissingParameters
          numericValue: "105"
        - identifier: ContentInvalidId
          numericValue: "106"
        - identifier: ContentPhysicalFileDeletionError
          numericValue: "107"
        - identifier: ContentPhysicalFileCreationError
          numericValue: "108"
        - identifier: ContentPerforceSubmissionError
          numericValue: "109"
        - identifier: ContentPerforceInitializationError
          numericValue: "110"
        - identifier: ContentDeploymentPackageNotReadyError
          numericValue: "111"
        - identifier: ContentUploadFailed
          numericValue: "112"
        - identifier: ContentTooManyResults
          numericValue: "113"
        - identifier: ContentInvalidState
          numericValue: "115"
        - identifier: ContentNavigationParentNotFound
          numericValue: "116"
        - identifier: ContentNavigationParentUpdateError
          numericValue: "117"
        - identifier: DeploymentPackageNotEditable
          numericValue: "118"
        - identifier: ContentValidationError
          numericValue: "119"
        - identifier: ContentPropertiesValidationError
          numericValue: "120"
        - identifier: ContentTypeNotFound
          numericValue: "121"
        - identifier: DeploymentPackageNotFound
          numericValue: "122"
        - identifier: ContentSearchInvalidParameters
          numericValue: "123"
        - identifier: ContentItemPropertyAggregationError
          numericValue: "124"
        - identifier: DeploymentPackageFileNotFound
          numericValue: "125"
        - identifier: ContentPerforceFileHistoryNotFound
          numericValue: "126"
        - identifier: ContentAssetZipCreationFailure
          numericValue: "127"
        - identifier: ContentAssetZipCreationBusy
          numericValue: "128"
        - identifier: ContentProjectNotFound
          numericValue: "129"
        - identifier: ContentFolderNotFound
          numericValue: "130"
        - identifier: ContentPackagesInconsistent
          numericValue: "131"
        - identifier: ContentPackagesInvalidState
          numericValue: "132"
        - identifier: ContentPackagesInconsistentType
          numericValue: "133"
        - identifier: ContentCannotDeletePackage
          numericValue: "134"
        - identifier: ContentLockedForChanges
          numericValue: "135"
        - identifier: ContentFileUploadFailed
          numericValue: "136"
        - identifier: ContentNotReviewed
          numericValue: "137"
        - identifier: ContentPermissionDenied
          numericValue: "138"
        - identifier: ContentInvalidExternalUrl
          numericValue: "139"
        - identifier: ContentExternalFileCannotBeImportedLocally
          numericValue: "140"
        - identifier: ContentTagSaveFailure
          numericValue: "141"
        - identifier: ContentPerforceUnmatchedFileError
          numericValue: "142"
        - identifier: ContentPerforceChangelistResultNotFound
          numericValue: "143"
        - identifier: ContentPerforceChangelistFileItemsNotFound
          numericValue: "144"
        - identifier: ContentPerforceInvalidRevisionError
          numericValue: "145"
        - identifier: ContentUnloadedSaveResult
          numericValue: "146"
        - identifier: ContentPropertyInvalidNumber
          numericValue: "147"
        - identifier: ContentPropertyInvalidUrl
          numericValue: "148"
        - identifier: ContentPropertyInvalidDate
          numericValue: "149"
        - identifier: ContentPropertyInvalidSet
          numericValue: "150"
        - identifier: ContentPropertyCannotDeserialize
          numericValue: "151"
        - identifier: ContentRegexValidationFailOnProperty
          numericValue: "152"
        - identifier: ContentMaxLengthFailOnProperty
          numericValue: "153"
        - identifier: ContentPropertyUnexpectedDeserializationError
          numericValue: "154"
        - identifier: ContentPropertyRequired
          numericValue: "155"
        - identifier: ContentCannotCreateFile
          numericValue: "156"
        - identifier: ContentInvalidMigrationFile
          numericValue: "157"
        - identifier: ContentMigrationAlteringProcessedItem
          numericValue: "158"
        - identifier: ContentPropertyDefinitionNotFound
          numericValue: "159"
        - identifier: ContentReviewDataChanged
          numericValue: "160"
        - identifier: ContentRollbackRevisionNotInPackage
          numericValue: "161"
        - identifier: ContentItemNotBasedOnLatestRevision
          numericValue: "162"
        - identifier: ContentUnauthorized
          numericValue: "163"
        - identifier: ContentCannotCreateDeploymentPackage
          numericValue: "164"
        - identifier: ContentUserNotFound
          numericValue: "165"
        - identifier: ContentLocalePermissionDenied
          numericValue: "166"
        - identifier: ContentInvalidLinkToInternalEnvironment
          numericValue: "167"
        - identifier: ContentInvalidBlacklistedContent
          numericValue: "168"
        - identifier: ContentMacroMalformedNoContentId
          numericValue: "169"
        - identifier: ContentMacroMalformedNoTemplateType
          numericValue: "170"
        - identifier: ContentIllegalBNetMembershipId
          numericValue: "171"
        - identifier: ContentLocaleDidNotMatchExpected
          numericValue: "172"
        - identifier: ContentBabelCallFailed
          numericValue: "173"
        - identifier: ContentEnglishPostLiveForbidden
          numericValue: "174"
        - identifier: ContentLocaleEditPermissionDenied
          numericValue: "175"
        - identifier: ContentStackUnknownError
          numericValue: "176"
        - identifier: ContentStackNotFound
          numericValue: "177"
        - identifier: ContentStackRateLimited
          numericValue: "178"
        - identifier: ContentStackTimeout
          numericValue: "179"
        - identifier: ContentStackServiceError
          numericValue: "180"
        - identifier: ContentStackDeserializationFailure
          numericValue: "181"
        - identifier: UserNonUniqueName
          numericValue: "200"
        - identifier: UserManualLinkingStepRequired
          numericValue: "201"
        - identifier: UserCreateUnknownSqlResult
          numericValue: "202"
        - identifier: UserCreateUnknownSqlException
          numericValue: "203"
        - identifier: UserMalformedMembershipId
          numericValue: "204"
        - identifier: UserCannotFindRequestedUser
          numericValue: "205"
        - identifier: UserCannotLoadAccountCredentialLinkInfo
          numericValue: "206"
        - identifier: UserInvalidMobileAppType
          numericValue: "207"
        - identifier: UserMissingMobilePairingInfo
          numericValue: "208"
        - identifier: UserCannotGenerateMobileKeyWhileUsingMobileCredential
          numericValue: "209"
        - identifier: UserGenerateMobileKeyExistingSlotCollision
          numericValue: "210"
        - identifier: UserDisplayNameMissingOrInvalid
          numericValue: "211"
        - identifier: UserCannotLoadAccountProfileData
          numericValue: "212"
        - identifier: UserCannotSaveUserProfileData
          numericValue: "213"
        - identifier: UserEmailMissingOrInvalid
          numericValue: "214"
        - identifier: UserTermsOfUseRequired
          numericValue: "215"
        - identifier: UserCannotCreateNewAccountWhileLoggedIn
          numericValue: "216"
        - identifier: UserCannotResolveCentralAccount
          numericValue: "217"
        - identifier: UserInvalidAvatar
          numericValue: "218"
        - identifier: UserMissingCreatedUserResult
          numericValue: "219"
        - identifier: UserCannotChangeUniqueNameYet
          numericValue: "220"
        - identifier: UserCannotChangeDisplayNameYet
          numericValue: "221"
        - identifier: UserCannotChangeEmail
          numericValue: "222"
        - identifier: UserUniqueNameMustStartWithLetter
          numericValue: "223"
        - identifier: UserNoLinkedAccountsSupportFriendListings
          numericValue: "224"
        - identifier: UserAcknowledgmentTableFull
          numericValue: "225"
        - identifier: UserCreationDestinyMembershipRequired
          numericValue: "226"
        - identifier: UserFriendsTokenNeedsRefresh
          numericValue: "227"
        - identifier: UserEmailValidationUnknown
          numericValue: "228"
        - identifier: UserEmailValidationLimit
          numericValue: "229"
        - identifier: TransactionEmailSendFailure
          numericValue: "230"
        - identifier: MailHookPermissionFailure
          numericValue: "231"
        - identifier: MailServiceRateLimit
          numericValue: "232"
        - identifier: UserEmailMustBeVerified
          numericValue: "233"
        - identifier: UserMustAllowCustomerServiceEmails
          numericValue: "234"
        - identifier: NonTransactionalEmailSendFailure
          numericValue: "235"
        - identifier: UnknownErrorSettingGlobalDisplayName
          numericValue: "236"
        - identifier: DuplicateGlobalDisplayName
          numericValue: "237"
        - identifier: ErrorRunningNameValidationChecks
          numericValue: "238"
        - identifier: ErrorDatabaseGlobalName
          numericValue: "239"
        - identifier: ErrorNoAvailableNameChanges
          numericValue: "240"
        - identifier: ErrorNameAlreadySetToInput
          numericValue: "241"
        - identifier: UserDisplayNameLessThanMinLength
          numericValue: "242"
        - identifier: UserDisplayNameGreaterThanMaxLength
          numericValue: "243"
        - identifier: UserDisplayNameContainsUnacceptableOrInvalidContent
          numericValue: "244"
        - identifier: MessagingUnknownError
          numericValue: "300"
        - identifier: MessagingSelfError
          numericValue: "301"
        - identifier: MessagingSendThrottle
          numericValue: "302"
        - identifier: MessagingNoBody
          numericValue: "303"
        - identifier: MessagingTooManyUsers
          numericValue: "304"
        - identifier: MessagingCanNotLeaveConversation
          numericValue: "305"
        - identifier: MessagingUnableToSend
          numericValue: "306"
        - identifier: MessagingDeletedUserForbidden
          numericValue: "307"
        - identifier: MessagingCannotDeleteExternalConversation
          numericValue: "308"
        - identifier: MessagingGroupChatDisabled
          numericValue: "309"
        - identifier: MessagingMustIncludeSelfInPrivateMessage
          numericValue: "310"
        - identifier: MessagingSenderIsBanned
          numericValue: "311"
        - identifier: MessagingGroupOptionalChatExceededMaximum
          numericValue: "312"
        - identifier: PrivateMessagingRequiresDestinyMembership
          numericValue: "313"
        - identifier: AddSurveyAnswersUnknownSqlException
          numericValue: "400"
        - identifier: ForumBodyCannotBeEmpty
          numericValue: "500"
        - identifier: ForumSubjectCannotBeEmptyOnTopicPost
          numericValue: "501"
        - identifier: ForumCannotLocateParentPost
          numericValue: "502"
        - identifier: ForumThreadLockedForReplies
          numericValue: "503"
        - identifier: ForumUnknownSqlResultDuringCreatePost
          numericValue: "504"
        - identifier: ForumUnknownTagCreationError
          numericValue: "505"
        - identifier: ForumUnknownSqlResultDuringTagItem
          numericValue: "506"
        - identifier: ForumUnknownExceptionCreatePost
          numericValue: "507"
        - identifier: ForumQuestionMustBeTopicPost
          numericValue: "508"
        - identifier: ForumExceptionDuringTagSearch
          numericValue: "509"
        - identifier: ForumExceptionDuringTopicRetrieval
          numericValue: "510"
        - identifier: ForumAliasedTagError
          numericValue: "511"
        - identifier: ForumCannotLocateThread
          numericValue: "512"
        - identifier: ForumUnknownExceptionEditPost
          numericValue: "513"
        - identifier: ForumCannotLocatePost
          numericValue: "514"
        - identifier: ForumUnknownExceptionGetOrCreateTags
          numericValue: "515"
        - identifier: ForumEditPermissionDenied
          numericValue: "516"
        - identifier: ForumUnknownSqlResultDuringTagIdRetrieval
          numericValue: "517"
        - identifier: ForumCannotGetRating
          numericValue: "518"
        - identifier: ForumUnknownExceptionGetRating
          numericValue: "519"
        - identifier: ForumRatingsAccessError
          numericValue: "520"
        - identifier: ForumRelatedPostAccessError
          numericValue: "521"
        - identifier: ForumLatestReplyAccessError
          numericValue: "522"
        - identifier: ForumUserStatusAccessError
          numericValue: "523"
        - identifier: ForumAuthorAccessError
          numericValue: "524"
        - identifier: ForumGroupAccessError
          numericValue: "525"
        - identifier: ForumUrlExpectedButMissing
          numericValue: "526"
        - identifier: ForumRepliesCannotBeEmpty
          numericValue: "527"
        - identifier: ForumRepliesCannotBeInDifferentGroups
          numericValue: "528"
        - identifier: ForumSubTopicCannotBeCreatedAtThisThreadLevel
          numericValue: "529"
        - identifier: ForumCannotCreateContentTopic
          numericValue: "530"
        - identifier: ForumTopicDoesNotExist
          numericValue: "531"
        - identifier: ForumContentCommentsNotAllowed
          numericValue: "532"
        - identifier: ForumUnknownSqlResultDuringEditPost
          numericValue: "533"
        - identifier: ForumUnknownSqlResultDuringGetPost
          numericValue: "534"
        - identifier: ForumPostValidationBadUrl
          numericValue: "535"
        - identifier: ForumBodyTooLong
          numericValue: "536"
        - identifier: ForumSubjectTooLong
          numericValue: "537"
        - identifier: ForumAnnouncementNotAllowed
          numericValue: "538"
        - identifier: ForumCannotShareOwnPost
          numericValue: "539"
        - identifier: ForumEditNoOp
          numericValue: "540"
        - identifier: ForumUnknownDatabaseErrorDuringGetPost
          numericValue: "541"
        - identifier: ForumExceeedMaximumRowLimit
          numericValue: "542"
        - identifier: ForumCannotSharePrivatePost
          numericValue: "543"
        - identifier: ForumCannotCrossPostBetweenGroups
          numericValue: "544"
        - identifier: ForumIncompatibleCategories
          numericValue: "555"
        - identifier: ForumCannotUseTheseCategoriesOnNonTopicPost
          numericValue: "556"
        - identifier: ForumCanOnlyDeleteTopics
          numericValue: "557"
        - identifier: ForumDeleteSqlException
          numericValue: "558"
        - identifier: ForumDeleteSqlUnknownResult
          numericValue: "559"
        - identifier: ForumTooManyTags
          numericValue: "560"
        - identifier: ForumCanOnlyRateTopics
          numericValue: "561"
        - identifier: ForumBannedPostsCannotBeEdited
          numericValue: "562"
        - identifier: ForumThreadRootIsBanned
          numericValue: "563"
        - identifier: ForumCannotUseOfficialTagCategoryAsTag
          numericValue: "564"
        - identifier: ForumAnswerCannotBeMadeOnCreatePost
          numericValue: "565"
        - identifier: ForumAnswerCannotBeMadeOnEditPost
          numericValue: "566"
        - identifier: ForumAnswerPostIdIsNotADirectReplyOfQuestion
          numericValue: "567"
        - identifier: ForumAnswerTopicIdIsNotAQuestion
          numericValue: "568"
        - identifier: ForumUnknownExceptionDuringMarkAnswer
          numericValue: "569"
        - identifier: ForumUnknownSqlResultDuringMarkAnswer
          numericValue: "570"
        - identifier: ForumCannotRateYourOwnPosts
          numericValue: "571"
        - identifier: ForumPollsMustBeTheFirstPostInTopic
          numericValue: "572"
        - identifier: ForumInvalidPollInput
          numericValue: "573"
        - identifier: ForumGroupAdminEditNonMember
          numericValue: "574"
        - identifier: ForumCannotEditModeratorEditedPost
          numericValue: "575"
        - identifier: ForumRequiresDestinyMembership
          numericValue: "576"
        - identifier: ForumUnexpectedError
          numericValue: "577"
        - identifier: ForumAgeLock
          numericValue: "578"
        - identifier: ForumMaxPages
          numericValue: "579"
        - identifier: ForumMaxPagesOldestFirst
          numericValue: "580"
        - identifier: ForumCannotApplyForumIdWithoutTags
          numericValue: "581"
        - identifier: ForumCannotApplyForumIdToNonTopics
          numericValue: "582"
        - identifier: ForumCannotDownvoteCommunityCreations
          numericValue: "583"
        - identifier: ForumTopicsMustHaveOfficialCategory
          numericValue: "584"
        - identifier: ForumRecruitmentTopicMalformed
          numericValue: "585"
        - identifier: ForumRecruitmentTopicNotFound
          numericValue: "586"
        - identifier: ForumRecruitmentTopicNoSlotsRemaining
          numericValue: "587"
        - identifier: ForumRecruitmentTopicKickBan
          numericValue: "588"
        - identifier: ForumRecruitmentTopicRequirementsNotMet
          numericValue: "589"
        - identifier: ForumRecruitmentTopicNoPlayers
          numericValue: "590"
        - identifier: ForumRecruitmentApproveFailMessageBan
          numericValue: "591"
        - identifier: ForumRecruitmentGlobalBan
          numericValue: "592"
        - identifier: ForumUserBannedFromThisTopic
          numericValue: "593"
        - identifier: ForumRecruitmentFireteamMembersOnly
          numericValue: "594"
        - identifier: ForumRequiresDestiny2Progress
          numericValue: "595"
        - identifier: ForumRequiresDestiny2EntitlementPurchase
          numericValue: "596"
        - identifier: GroupMembershipApplicationAlreadyResolved
          numericValue: "601"
        - identifier: GroupMembershipAlreadyApplied
          numericValue: "602"
        - identifier: GroupMembershipInsufficientPrivileges
          numericValue: "603"
        - identifier: GroupIdNotReturnedFromCreation
          numericValue: "604"
        - identifier: GroupSearchInvalidParameters
          numericValue: "605"
        - identifier: GroupMembershipPendingApplicationNotFound
          numericValue: "606"
        - identifier: GroupInvalidId
          numericValue: "607"
        - identifier: GroupInvalidMembershipId
          numericValue: "608"
        - identifier: GroupInvalidMembershipType
          numericValue: "609"
        - identifier: GroupMissingTags
          numericValue: "610"
        - identifier: GroupMembershipNotFound
          numericValue: "611"
        - identifier: GroupInvalidRating
          numericValue: "612"
        - identifier: GroupUserFollowingAccessError
          numericValue: "613"
        - identifier: GroupUserMembershipAccessError
          numericValue: "614"
        - identifier: GroupCreatorAccessError
          numericValue: "615"
        - identifier: GroupAdminAccessError
          numericValue: "616"
        - identifier: GroupPrivatePostNotViewable
          numericValue: "617"
        - identifier: GroupMembershipNotLoggedIn
          numericValue: "618"
        - identifier: GroupNotDeleted
          numericValue: "619"
        - identifier: GroupUnknownErrorUndeletingGroup
          numericValue: "620"
        - identifier: GroupDeleted
          numericValue: "621"
        - identifier: GroupNotFound
          numericValue: "622"
        - identifier: GroupMemberBanned
          numericValue: "623"
        - identifier: GroupMembershipClosed
          numericValue: "624"
        - identifier: GroupPrivatePostOverrideError
          numericValue: "625"
        - identifier: GroupNameTaken
          numericValue: "626"
        - identifier: GroupDeletionGracePeriodExpired
          numericValue: "627"
        - identifier: GroupCannotCheckBanStatus
          numericValue: "628"
        - identifier: GroupMaximumMembershipCountReached
          numericValue: "629"
        - identifier: NoDestinyAccountForClanPlatform
          numericValue: "630"
        - identifier: AlreadyRequestingMembershipForClanPlatform
          numericValue: "631"
        - identifier: AlreadyClanMemberOnPlatform
          numericValue: "632"
        - identifier: GroupJoinedCannotSetClanName
          numericValue: "633"
        - identifier: GroupLeftCannotClearClanName
          numericValue: "634"
        - identifier: GroupRelationshipRequestPending
          numericValue: "635"
        - identifier: GroupRelationshipRequestBlocked
          numericValue: "636"
        - identifier: GroupRelationshipRequestNotFound
          numericValue: "637"
        - identifier: GroupRelationshipBlockNotFound
          numericValue: "638"
        - identifier: GroupRelationshipNotFound
          numericValue: "639"
        - identifier: GroupAlreadyAllied
          numericValue: "641"
        - identifier: GroupAlreadyMember
          numericValue: "642"
        - identifier: GroupRelationshipAlreadyExists
          numericValue: "643"
        - identifier: InvalidGroupTypesForRelationshipRequest
          numericValue: "644"
        - identifier: GroupAtMaximumAlliances
          numericValue: "646"
        - identifier: GroupCannotSetClanOnlySettings
          numericValue: "647"
        - identifier: ClanCannotSetTwoDefaultPostTypes
          numericValue: "648"
        - identifier: GroupMemberInvalidMemberType
          numericValue: "649"
        - identifier: GroupInvalidPlatformType
          numericValue: "650"
        - identifier: GroupMemberInvalidSort
          numericValue: "651"
        - identifier: GroupInvalidResolveState
          numericValue: "652"
        - identifier: ClanAlreadyEnabledForPlatform
          numericValue: "653"
        - identifier: ClanNotEnabledForPlatform
          numericValue: "654"
        - identifier: ClanEnabledButCouldNotJoinNoAccount
          numericValue: "655"
        - identifier: ClanEnabledButCouldNotJoinAlreadyMember
          numericValue: "656"
        - identifier: ClanCannotJoinNoCredential
          numericValue: "657"
        - identifier: NoClanMembershipForPlatform
          numericValue: "658"
        - identifier: GroupToGroupFollowLimitReached
          numericValue: "659"
        - identifier: ChildGroupAlreadyInAlliance
          numericValue: "660"
        - identifier: OwnerGroupAlreadyInAlliance
          numericValue: "661"
        - identifier: AllianceOwnerCannotJoinAlliance
          numericValue: "662"
        - identifier: GroupNotInAlliance
          numericValue: "663"
        - identifier: ChildGroupCannotInviteToAlliance
          numericValue: "664"
        - identifier: GroupToGroupAlreadyFollowed
          numericValue: "665"
        - identifier: GroupToGroupNotFollowing
          numericValue: "666"
        - identifier: ClanMaximumMembershipReached
          numericValue: "667"
        - identifier: ClanNameNotValid
          numericValue: "668"
        - identifier: ClanNameNotValidError
          numericValue: "669"
        - identifier: AllianceOwnerNotDefined
          numericValue: "670"
        - identifier: AllianceChildNotDefined
          numericValue: "671"
        - identifier: ClanCultureIllegalCharacters
          numericValue: "672"
        - identifier: ClanTagIllegalCharacters
          numericValue: "673"
        - identifier: ClanRequiresInvitation
          numericValue: "674"
        - identifier: ClanMembershipClosed
          numericValue: "675"
        - identifier: ClanInviteAlreadyMember
          numericValue: "676"
        - identifier: GroupInviteAlreadyMember
          numericValue: "677"
        - identifier: GroupJoinApprovalRequired
          numericValue: "678"
        - identifier: ClanTagRequired
          numericValue: "679"
        - identifier: GroupNameCannotStartOrEndWithWhiteSpace
          numericValue: "680"
        - identifier: ClanCallsignCannotStartOrEndWithWhiteSpace
          numericValue: "681"
        - identifier: ClanMigrationFailed
          numericValue: "682"
        - identifier: ClanNotEnabledAlreadyMemberOfAnotherClan
          numericValue: "683"
        - identifier: GroupModerationNotPermittedOnNonMembers
          numericValue: "684"
        - identifier: ClanCreationInWorldServerFailed
          numericValue: "685"
        - identifier: ClanNotFound
          numericValue: "686"
        - identifier: ClanMembershipLevelDoesNotPermitThatAction
          numericValue: "687"
        - identifier: ClanMemberNotFound
          numericValue: "688"
        - identifier: ClanMissingMembershipApprovers
          numericValue: "689"
        - identifier: ClanInWrongStateForRequestedAction
          numericValue: "690"
        - identifier: ClanNameAlreadyUsed
          numericValue: "691"
        - identifier: ClanTooFewMembers
          numericValue: "692"
        - identifier: ClanInfoCannotBeWhitespace
          numericValue: "693"
        - identifier: GroupCultureThrottle
          numericValue: "694"
        - identifier: ClanTargetDisallowsInvites
          numericValue: "695"
        - identifier: ClanInvalidOperation
          numericValue: "696"
        - identifier: ClanFounderCannotLeaveWithoutAbdication
          numericValue: "697"
        - identifier: ClanNameReserved
          numericValue: "698"
        - identifier: ClanApplicantInClanSoNowInvited
          numericValue: "699"
        - identifier: ActivitiesUnknownException
          numericValue: "701"
        - identifier: ActivitiesParameterNull
          numericValue: "702"
        - identifier: ActivityCountsDiabled
          numericValue: "703"
        - identifier: ActivitySearchInvalidParameters
          numericValue: "704"
        - identifier: ActivityPermissionDenied
          numericValue: "705"
        - identifier: ShareAlreadyShared
          numericValue: "706"
        - identifier: ActivityLoggingDisabled
          numericValue: "707"
        - identifier: ClanRequiresExistingDestinyAccount
          numericValue: "750"
        - identifier: ClanNameRestricted
          numericValue: "751"
        - identifier: ClanCreationBan
          numericValue: "752"
        - identifier: ClanCreationTenureRequirementsNotMet
          numericValue: "753"
        - identifier: ClanFieldContainsReservedTerms
          numericValue: "754"
        - identifier: ClanFieldContainsInappropriateContent
          numericValue: "755"
        - identifier: ItemAlreadyFollowed
          numericValue: "801"
        - identifier: ItemNotFollowed
          numericValue: "802"
        - identifier: CannotFollowSelf
          numericValue: "803"
        - identifier: GroupFollowLimitExceeded
          numericValue: "804"
        - identifier: TagFollowLimitExceeded
          numericValue: "805"
        - identifier: UserFollowLimitExceeded
          numericValue: "806"
        - identifier: FollowUnsupportedEntityType
          numericValue: "807"
        - identifier: NoValidTagsInList
          numericValue: "900"
        - identifier: BelowMinimumSuggestionLength
          numericValue: "901"
        - identifier: CannotGetSuggestionsOnMultipleTagsSimultaneously
          numericValue: "902"
        - identifier: NotAValidPartialTag
          numericValue: "903"
        - identifier: TagSuggestionsUnknownSqlResult
          numericValue: "904"
        - identifier: TagsUnableToLoadPopularTagsFromDatabase
          numericValue: "905"
        - identifier: TagInvalid
          numericValue: "906"
        - identifier: TagNotFound
          numericValue: "907"
        - identifier: SingleTagExpected
          numericValue: "908"
        - identifier: TagsExceededMaximumPerItem
          numericValue: "909"
        - identifier: IgnoreInvalidParameters
          numericValue: "1000"
        - identifier: IgnoreSqlException
          numericValue: "1001"
        - identifier: IgnoreErrorRetrievingGroupPermissions
          numericValue: "1002"
        - identifier: IgnoreErrorInsufficientPermission
          numericValue: "1003"
        - identifier: IgnoreErrorRetrievingItem
          numericValue: "1004"
        - identifier: IgnoreCannotIgnoreSelf
          numericValue: "1005"
        - identifier: IgnoreIllegalType
          numericValue: "1006"
        - identifier: IgnoreNotFound
          numericValue: "1007"
        - identifier: IgnoreUserGloballyIgnored
          numericValue: "1008"
        - identifier: IgnoreUserIgnored
          numericValue: "1009"
        - identifier: TargetUserIgnored
          numericValue: "1010"
        - identifier: NotificationSettingInvalid
          numericValue: "1100"
        - identifier: PsnApiExpiredAccessToken
          numericValue: "1204"
        - identifier: PSNExForbidden
          numericValue: "1205"
        - identifier: PSNExSystemDisabled
          numericValue: "1218"
        - identifier: PsnApiErrorCodeUnknown
          numericValue: "1223"
        - identifier: PsnApiErrorWebException
          numericValue: "1224"
        - identifier: PsnApiBadRequest
          numericValue: "1225"
        - identifier: PsnApiAccessTokenRequired
          numericValue: "1226"
        - identifier: PsnApiInvalidAccessToken
          numericValue: "1227"
        - identifier: PsnApiBannedUser
          numericValue: "1229"
        - identifier: PsnApiAccountUpgradeRequired
          numericValue: "1230"
        - identifier: PsnApiServiceTemporarilyUnavailable
          numericValue: "1231"
        - identifier: PsnApiServerBusy
          numericValue: "1232"
        - identifier: PsnApiUnderMaintenance
          numericValue: "1233"
        - identifier: PsnApiProfileUserNotFound
          numericValue: "1234"
        - identifier: PsnApiProfilePrivacyRestriction
          numericValue: "1235"
        - identifier: PsnApiProfileUnderMaintenance
          numericValue: "1236"
        - identifier: PsnApiAccountAttributeMissing
          numericValue: "1237"
        - identifier: PsnApiNoPermission
          numericValue: "1238"
        - identifier: PsnApiTargetUserBlocked
          numericValue: "1239"
        - identifier: PsnApiJwksMissing
          numericValue: "1240"
        - identifier: PsnApiJwtMalformedHeader
          numericValue: "1241"
        - identifier: PsnApiJwtMalformedPayload
          numericValue: "1242"
        - identifier: XblExSystemDisabled
          numericValue: "1300"
        - identifier: XblExUnknownError
          numericValue: "1301"
        - identifier: XblApiErrorWebException
          numericValue: "1302"
        - identifier: XblStsTokenInvalid
          numericValue: "1303"
        - identifier: XblStsMissingToken
          numericValue: "1304"
        - identifier: XblStsExpiredToken
          numericValue: "1305"
        - identifier: XblAccessToTheSandboxDenied
          numericValue: "1306"
        - identifier: XblMsaResponseMissing
          numericValue: "1307"
        - identifier: XblMsaAccessTokenExpired
          numericValue: "1308"
        - identifier: XblMsaInvalidRequest
          numericValue: "1309"
        - identifier: XblMsaFriendsRequireSignIn
          numericValue: "1310"
        - identifier: XblUserActionRequired
          numericValue: "1311"
        - identifier: XblParentalControls
          numericValue: "1312"
        - identifier: XblDeveloperAccount
          numericValue: "1313"
        - identifier: XblUserTokenExpired
          numericValue: "1314"
        - identifier: XblUserTokenInvalid
          numericValue: "1315"
        - identifier: XblOffline
          numericValue: "1316"
        - identifier: XblUnknownErrorCode
          numericValue: "1317"
        - identifier: XblMsaInvalidGrant
          numericValue: "1318"
        - identifier: ReportNotYetResolved
          numericValue: "1400"
        - identifier: ReportOverturnDoesNotChangeDecision
          numericValue: "1401"
        - identifier: ReportNotFound
          numericValue: "1402"
        - identifier: ReportAlreadyReported
          numericValue: "1403"
        - identifier: ReportInvalidResolution
          numericValue: "1404"
        - identifier: ReportNotAssignedToYou
          numericValue: "1405"
        - identifier: LegacyGameStatsSystemDisabled
          numericValue: "1500"
        - identifier: LegacyGameStatsUnknownError
          numericValue: "1501"
        - identifier: LegacyGameStatsMalformedSneakerNetCode
          numericValue: "1502"
        - identifier: DestinyAccountAcquisitionFailure
          numericValue: "1600"
        - identifier: DestinyAccountNotFound
          numericValue: "1601"
        - identifier: DestinyBuildStatsDatabaseError
          numericValue: "1602"
        - identifier: DestinyCharacterStatsDatabaseError
          numericValue: "1603"
        - identifier: DestinyPvPStatsDatabaseError
          numericValue: "1604"
        - identifier: DestinyPvEStatsDatabaseError
          numericValue: "1605"
        - identifier: DestinyGrimoireStatsDatabaseError
          numericValue: "1606"
        - identifier: DestinyStatsParameterMembershipTypeParseError
          numericValue: "1607"
        - identifier: DestinyStatsParameterMembershipIdParseError
          numericValue: "1608"
        - identifier: DestinyStatsParameterRangeParseError
          numericValue: "1609"
        - identifier: DestinyStringItemHashNotFound
          numericValue: "1610"
        - identifier: DestinyStringSetNotFound
          numericValue: "1611"
        - identifier: DestinyContentLookupNotFoundForKey
          numericValue: "1612"
        - identifier: DestinyContentItemNotFound
          numericValue: "1613"
        - identifier: DestinyContentSectionNotFound
          numericValue: "1614"
        - identifier: DestinyContentPropertyNotFound
          numericValue: "1615"
        - identifier: DestinyContentConfigNotFound
          numericValue: "1616"
        - identifier: DestinyContentPropertyBucketValueNotFound
          numericValue: "1617"
        - identifier: DestinyUnexpectedError
          numericValue: "1618"
        - identifier: DestinyInvalidAction
          numericValue: "1619"
        - identifier: DestinyCharacterNotFound
          numericValue: "1620"
        - identifier: DestinyInvalidFlag
          numericValue: "1621"
        - identifier: DestinyInvalidRequest
          numericValue: "1622"
        - identifier: DestinyItemNotFound
          numericValue: "1623"
        - identifier: DestinyInvalidCustomizationChoices
          numericValue: "1624"
        - identifier: DestinyVendorItemNotFound
          numericValue: "1625"
        - identifier: DestinyInternalError
          numericValue: "1626"
        - identifier: DestinyVendorNotFound
          numericValue: "1627"
        - identifier: DestinyRecentActivitiesDatabaseError
          numericValue: "1628"
        - identifier: DestinyItemBucketNotFound
          numericValue: "1629"
        - identifier: DestinyInvalidMembershipType
          numericValue: "1630"
        - identifier: DestinyVersionIncompatibility
          numericValue: "1631"
        - identifier: DestinyItemAlreadyInInventory
          numericValue: "1632"
        - identifier: DestinyBucketNotFound
          numericValue: "1633"
        - description: "Note: This is one of those holdovers from Destiny 1. We didn't change the enum because I am lazy, but in Destiny 2 this would read \"DestinyCharacterNotInSocialSpace\""
          identifier: DestinyCharacterNotInTower
          numericValue: "1634"
        - identifier: DestinyCharacterNotLoggedIn
          numericValue: "1635"
        - identifier: DestinyDefinitionsNotLoaded
          numericValue: "1636"
        - identifier: DestinyInventoryFull
          numericValue: "1637"
        - identifier: DestinyItemFailedLevelCheck
          numericValue: "1638"
        - identifier: DestinyItemFailedUnlockCheck
          numericValue: "1639"
        - identifier: DestinyItemUnequippable
          numericValue: "1640"
        - identifier: DestinyItemUniqueEquipRestricted
          numericValue: "1641"
        - identifier: DestinyNoRoomInDestination
          numericValue: "1642"
        - identifier: DestinyServiceFailure
          numericValue: "1643"
        - identifier: DestinyServiceRetired
          numericValue: "1644"
        - identifier: DestinyTransferFailed
          numericValue: "1645"
        - identifier: DestinyTransferNotFoundForSourceBucket
          numericValue: "1646"
        - identifier: DestinyUnexpectedResultInVendorTransferCheck
          numericValue: "1647"
        - identifier: DestinyUniquenessViolation
          numericValue: "1648"
        - identifier: DestinyErrorDeserializationFailure
          numericValue: "1649"
        - identifier: DestinyValidAccountTicketRequired
          numericValue: "1650"
        - identifier: DestinyShardRelayClientTimeout
          numericValue: "1651"
        - identifier: DestinyShardRelayProxyTimeout
          numericValue: "1652"
        - identifier: DestinyPGCRNotFound
          numericValue: "1653"
        - identifier: DestinyAccountMustBeOffline
          numericValue: "1654"
        - identifier: DestinyCanOnlyEquipInGame
          numericValue: "1655"
        - identifier: DestinyCannotPerformActionOnEquippedItem
          numericValue: "1656"
        - identifier: DestinyQuestAlreadyCompleted
          numericValue: "1657"
        - identifier: DestinyQuestAlreadyTracked
          numericValue: "1658"
        - identifier: DestinyTrackableQuestsFull
          numericValue: "1659"
        - identifier: DestinyItemNotTransferrable
          numericValue: "1660"
        - identifier: DestinyVendorPurchaseNotAllowed
          numericValue: "1661"
        - identifier: DestinyContentVersionMismatch
          numericValue: "1662"
        - identifier: DestinyItemActionForbidden
          numericValue: "1663"
        - identifier: DestinyRefundInvalid
          numericValue: "1664"
        - identifier: DestinyPrivacyRestriction
          numericValue: "1665"
        - identifier: DestinyActionInsufficientPrivileges
          numericValue: "1666"
        - identifier: DestinyInvalidClaimException
          numericValue: "1667"
        - identifier: DestinyLegacyPlatformRestricted
          numericValue: "1668"
        - identifier: DestinyLegacyPlatformInUse
          numericValue: "1669"
        - identifier: DestinyLegacyPlatformInaccessible
          numericValue: "1670"
        - identifier: DestinyCannotPerformActionAtThisLocation
          numericValue: "1671"
        - identifier: DestinyThrottledByGameServer
          numericValue: "1672"
        - identifier: DestinyItemNotTransferrableHasSideEffects
          numericValue: "1673"
        - identifier: DestinyItemLocked
          numericValue: "1674"
        - identifier: DestinyCannotAffordMaterialRequirements
          numericValue: "1675"
        - identifier: DestinyFailedPlugInsertionRules
          numericValue: "1676"
        - identifier: DestinySocketNotFound
          numericValue: "1677"
        - identifier: DestinySocketActionNotAllowed
          numericValue: "1678"
        - identifier: DestinySocketAlreadyHasPlug
          numericValue: "1679"
        - identifier: DestinyPlugItemNotAvailable
          numericValue: "1680"
        - identifier: DestinyCharacterLoggedInNotAllowed
          numericValue: "1681"
        - identifier: DestinyPublicAccountNotAccessible
          numericValue: "1682"
        - identifier: DestinyClaimsItemAlreadyClaimed
          numericValue: "1683"
        - identifier: DestinyClaimsNoInventorySpace
          numericValue: "1684"
        - identifier: DestinyClaimsRequiredLevelNotMet
          numericValue: "1685"
        - identifier: DestinyClaimsInvalidState
          numericValue: "1686"
        - identifier: DestinyNotEnoughRoomForMultipleRewards
          numericValue: "1687"
        - identifier: DestinyDirectBabelClientTimeout
          numericValue: "1688"
        - identifier: FbInvalidRequest
          numericValue: "1800"
        - identifier: FbRedirectMismatch
          numericValue: "1801"
        - identifier: FbAccessDenied
          numericValue: "1802"
        - identifier: FbUnsupportedResponseType
          numericValue: "1803"
        - identifier: FbInvalidScope
          numericValue: "1804"
        - identifier: FbUnsupportedGrantType
          numericValue: "1805"
        - identifier: FbInvalidGrant
          numericValue: "1806"
        - identifier: InvitationExpired
          numericValue: "1900"
        - identifier: InvitationUnknownType
          numericValue: "1901"
        - identifier: InvitationInvalidResponseStatus
          numericValue: "1902"
        - identifier: InvitationInvalidType
          numericValue: "1903"
        - identifier: InvitationAlreadyPending
          numericValue: "1904"
        - identifier: InvitationInsufficientPermission
          numericValue: "1905"
        - identifier: InvitationInvalidCode
          numericValue: "1906"
        - identifier: InvitationInvalidTargetState
          numericValue: "1907"
        - identifier: InvitationCannotBeReactivated
          numericValue: "1908"
        - identifier: InvitationNoRecipients
          numericValue: "1910"
        - identifier: InvitationGroupCannotSendToSelf
          numericValue: "1911"
        - identifier: InvitationTooManyRecipients
          numericValue: "1912"
        - identifier: InvitationInvalid
          numericValue: "1913"
        - identifier: InvitationNotFound
          numericValue: "1914"
        - identifier: TokenInvalid
          numericValue: "2000"
        - identifier: TokenBadFormat
          numericValue: "2001"
        - identifier: TokenAlreadyClaimed
          numericValue: "2002"
        - identifier: TokenAlreadyClaimedSelf
          numericValue: "2003"
        - identifier: TokenThrottling
          numericValue: "2004"
        - identifier: TokenUnknownRedemptionFailure
          numericValue: "2005"
        - identifier: TokenPurchaseClaimFailedAfterTokenClaimed
          numericValue: "2006"
        - identifier: TokenUserAlreadyOwnsOffer
          numericValue: "2007"
        - identifier: TokenInvalidOfferKey
          numericValue: "2008"
        - identifier: TokenEmailNotValidated
          numericValue: "2009"
        - identifier: TokenProvisioningBadVendorOrOffer
          numericValue: "2010"
        - identifier: TokenPurchaseHistoryUnknownError
          numericValue: "2011"
        - identifier: TokenThrottleStateUnknownError
          numericValue: "2012"
        - identifier: TokenUserAgeNotVerified
          numericValue: "2013"
        - identifier: TokenExceededOfferMaximum
          numericValue: "2014"
        - identifier: TokenNoAvailableUnlocks
          numericValue: "2015"
        - identifier: TokenMarketplaceInvalidPlatform
          numericValue: "2016"
        - identifier: TokenNoMarketplaceCodesFound
          numericValue: "2017"
        - identifier: TokenOfferNotAvailableForRedemption
          numericValue: "2018"
        - identifier: TokenUnlockPartialFailure
          numericValue: "2019"
        - identifier: TokenMarketplaceInvalidRegion
          numericValue: "2020"
        - identifier: TokenOfferExpired
          numericValue: "2021"
        - identifier: RAFExceededMaximumReferrals
          numericValue: "2022"
        - identifier: RAFDuplicateBond
          numericValue: "2023"
        - identifier: RAFNoValidVeteranDestinyMembershipsFound
          numericValue: "2024"
        - identifier: RAFNotAValidVeteranUser
          numericValue: "2025"
        - identifier: RAFCodeAlreadyClaimedOrNotFound
          numericValue: "2026"
        - identifier: RAFMismatchedDestinyMembershipType
          numericValue: "2027"
        - identifier: RAFUnableToAccessPurchaseHistory
          numericValue: "2028"
        - identifier: RAFUnableToCreateBond
          numericValue: "2029"
        - identifier: RAFUnableToFindBond
          numericValue: "2030"
        - identifier: RAFUnableToRemoveBond
          numericValue: "2031"
        - identifier: RAFCannotBondToSelf
          numericValue: "2032"
        - identifier: RAFInvalidPlatform
          numericValue: "2033"
        - identifier: RAFGenerateThrottled
          numericValue: "2034"
        - identifier: RAFUnableToCreateBondVersionMismatch
          numericValue: "2035"
        - identifier: RAFUnableToRemoveBondVersionMismatch
          numericValue: "2036"
        - identifier: RAFRedeemThrottled
          numericValue: "2037"
        - identifier: NoAvailableDiscountCode
          numericValue: "2038"
        - identifier: DiscountAlreadyClaimed
          numericValue: "2039"
        - identifier: DiscountClaimFailure
          numericValue: "2040"
        - identifier: DiscountConfigurationFailure
          numericValue: "2041"
        - identifier: DiscountGenerationFailure
          numericValue: "2042"
        - identifier: DiscountAlreadyExists
          numericValue: "2043"
        - identifier: TokenRequiresCredentialXuid
          numericValue: "2044"
        - identifier: TokenRequiresCredentialPsnid
          numericValue: "2045"
        - identifier: OfferRequired
          numericValue: "2046"
        - identifier: UnknownEververseHistoryError
          numericValue: "2047"
        - identifier: MissingEververseHistoryError
          numericValue: "2048"
        - identifier: BungieRewardEmailStateInvalid
          numericValue: "2049"
        - identifier: BungieRewardNotYetClaimable
          numericValue: "2050"
        - identifier: MissingOfferConfig
          numericValue: "2051"
        - identifier: RAFQuestEntitlementRequiresBnet
          numericValue: "2052"
        - identifier: RAFQuestEntitlementTransportFailure
          numericValue: "2053"
        - identifier: RAFQuestEntitlementUnknownFailure
          numericValue: "2054"
        - identifier: RAFVeteranRewardUnknownFailure
          numericValue: "2055"
        - identifier: RAFTooEarlyToCancelBond
          numericValue: "2056"
        - identifier: LoyaltyRewardAlreadyRedeemed
          numericValue: "2057"
        - identifier: UnclaimedLoyaltyRewardEntryNotFound
          numericValue: "2058"
        - identifier: PartnerOfferPartialFailure
          numericValue: "2059"
        - identifier: PartnerOfferAlreadyClaimed
          numericValue: "2060"
        - identifier: PartnerOfferSkuNotFound
          numericValue: "2061"
        - identifier: PartnerOfferSkuExpired
          numericValue: "2062"
        - identifier: PartnerOfferPermissionFailure
          numericValue: "2063"
        - identifier: PartnerOfferNoDestinyAccount
          numericValue: "2064"
        - identifier: PartnerOfferApplyDataNotFound
          numericValue: "2065"
        - identifier: ApiExceededMaxKeys
          numericValue: "2100"
        - identifier: ApiInvalidOrExpiredKey
          numericValue: "2101"
        - identifier: ApiKeyMissingFromRequest
          numericValue: "2102"
        - identifier: ApplicationDisabled
          numericValue: "2103"
        - identifier: ApplicationExceededMax
          numericValue: "2104"
        - identifier: ApplicationDisallowedByScope
          numericValue: "2105"
        - identifier: AuthorizationCodeInvalid
          numericValue: "2106"
        - identifier: OriginHeaderDoesNotMatchKey
          numericValue: "2107"
        - identifier: AccessNotPermittedByApplicationScope
          numericValue: "2108"
        - identifier: ApplicationNameIsTaken
          numericValue: "2109"
        - identifier: RefreshTokenNotYetValid
          numericValue: "2110"
        - identifier: AccessTokenHasExpired
          numericValue: "2111"
        - identifier: ApplicationTokenFormatNotValid
          numericValue: "2112"
        - identifier: ApplicationNotConfiguredForBungieAuth
          numericValue: "2113"
        - identifier: ApplicationNotConfiguredForOAuth
          numericValue: "2114"
        - identifier: OAuthAccessTokenExpired
          numericValue: "2115"
        - identifier: ApplicationTokenKeyIdDoesNotExist
          numericValue: "2116"
        - identifier: ProvidedTokenNotValidRefreshToken
          numericValue: "2117"
        - identifier: RefreshTokenExpired
          numericValue: "2118"
        - identifier: AuthorizationRecordInvalid
          numericValue: "2119"
        - identifier: TokenPreviouslyRevoked
          numericValue: "2120"
        - identifier: TokenInvalidMembership
          numericValue: "2121"
        - identifier: AuthorizationCodeStale
          numericValue: "2122"
        - identifier: AuthorizationRecordExpired
          numericValue: "2123"
        - identifier: AuthorizationRecordRevoked
          numericValue: "2124"
        - identifier: AuthorizationRecordInactiveApiKey
          numericValue: "2125"
        - identifier: AuthorizationRecordApiKeyMatching
          numericValue: "2126"
        - identifier: PartnershipInvalidType
          numericValue: "2200"
        - identifier: PartnershipValidationError
          numericValue: "2201"
        - identifier: PartnershipValidationTimeout
          numericValue: "2202"
        - identifier: PartnershipAccessFailure
          numericValue: "2203"
        - identifier: PartnershipAccountInvalid
          numericValue: "2204"
        - identifier: PartnershipGetAccountInfoFailure
          numericValue: "2205"
        - identifier: PartnershipDisabled
          numericValue: "2206"
        - identifier: PartnershipAlreadyExists
          numericValue: "2207"
        - identifier: CommunityStreamingUnavailable
          numericValue: "2300"
        - identifier: TwitchNotLinked
          numericValue: "2500"
        - identifier: TwitchAccountNotFound
          numericValue: "2501"
        - identifier: TwitchCouldNotLoadDestinyInfo
          numericValue: "2502"
        - identifier: TwitchCouldNotRegisterUser
          numericValue: "2503"
        - identifier: TwitchCouldNotUnregisterUser
          numericValue: "2504"
        - identifier: TwitchRequiresRelinking
          numericValue: "2505"
        - identifier: TwitchNoPlatformChosen
          numericValue: "2506"
        - identifier: TwitchDropHistoryPermissionFailure
          numericValue: "2507"
        - identifier: TwitchDropsRepairPartialFailure
          numericValue: "2508"
        - identifier: TwitchNotAuthorized
          numericValue: "2509"
        - identifier: TwitchUnknownAuthorizationFailure
          numericValue: "2510"
        - identifier: TrendingCategoryNotFound
          numericValue: "2600"
        - identifier: TrendingEntryTypeNotSupported
          numericValue: "2601"
        - identifier: ReportOffenderNotInPgcr
          numericValue: "2700"
        - identifier: ReportRequestorNotInPgcr
          numericValue: "2701"
        - identifier: ReportSubmissionFailed
          numericValue: "2702"
        - identifier: ReportCannotReportSelf
          numericValue: "2703"
        - identifier: AwaTypeDisabled
          numericValue: "2800"
        - identifier: AwaTooManyPendingRequests
          numericValue: "2801"
        - identifier: AwaTheFeatureRequiresARegisteredDevice
          numericValue: "2802"
        - identifier: AwaRequestWasUnansweredForTooLong
          numericValue: "2803"
        - identifier: AwaWriteRequestMissingOrInvalidToken
          numericValue: "2804"
        - identifier: AwaWriteRequestTokenExpired
          numericValue: "2805"
        - identifier: AwaWriteRequestTokenUsageLimitReached
          numericValue: "2806"
        - identifier: SteamWebApiError
          numericValue: "2900"
        - identifier: SteamWebNullResponseError
          numericValue: "2901"
        - identifier: SteamAccountRequired
          numericValue: "2902"
        - identifier: SteamNotAuthorized
          numericValue: "2903"
        - identifier: ClanFireteamNotFound
          numericValue: "3000"
        - identifier: ClanFireteamAddNoAlternatesForImmediate
          numericValue: "3001"
        - identifier: ClanFireteamFull
          numericValue: "3002"
        - identifier: ClanFireteamAltFull
          numericValue: "3003"
        - identifier: ClanFireteamBlocked
          numericValue: "3004"
        - identifier: ClanFireteamPlayerEntryNotFound
          numericValue: "3005"
        - identifier: ClanFireteamPermissions
          numericValue: "3006"
        - identifier: ClanFireteamInvalidPlatform
          numericValue: "3007"
        - identifier: ClanFireteamCannotAdjustSlotCount
          numericValue: "3008"
        - identifier: ClanFireteamInvalidPlayerPlatform
          numericValue: "3009"
        - identifier: ClanFireteamNotReadyForInvitesNotEnoughPlayers
          numericValue: "3010"
        - identifier: ClanFireteamGameInvitesNotSupportForPlatform
          numericValue: "3011"
        - identifier: ClanFireteamPlatformInvitePreqFailure
          numericValue: "3012"
        - identifier: ClanFireteamInvalidAuthContext
          numericValue: "3013"
        - identifier: ClanFireteamInvalidAuthProviderPsn
          numericValue: "3014"
        - identifier: ClanFireteamPs4SessionFull
          numericValue: "3015"
        - identifier: ClanFireteamInvalidAuthToken
          numericValue: "3016"
        - identifier: ClanFireteamScheduledFireteamsDisabled
          numericValue: "3017"
        - identifier: ClanFireteamNotReadyForInvitesNotScheduledYet
          numericValue: "3018"
        - identifier: ClanFireteamNotReadyForInvitesClosed
          numericValue: "3019"
        - identifier: ClanFireteamScheduledFireteamsRequireAdminPermissions
          numericValue: "3020"
        - identifier: ClanFireteamNonPublicMustHaveClan
          numericValue: "3021"
        - identifier: ClanFireteamPublicCreationRestriction
          numericValue: "3022"
        - identifier: ClanFireteamAlreadyJoined
          numericValue: "3023"
        - identifier: ClanFireteamScheduledFireteamsRange
          numericValue: "3024"
        - identifier: ClanFireteamPublicCreationRestrictionExtended
          numericValue: "3025"
        - identifier: ClanFireteamExpired
          numericValue: "3026"
        - identifier: ClanFireteamInvalidAuthProvider
          numericValue: "3027"
        - identifier: ClanFireteamInvalidAuthProviderXuid
          numericValue: "3028"
        - identifier: ClanFireteamThrottle
          numericValue: "3029"
        - identifier: ClanFireteamTooManyOpenScheduledFireteams
          numericValue: "3030"
        - identifier: ClanFireteamCannotReopenScheduledFireteams
          numericValue: "3031"
        - identifier: ClanFireteamJoinNoAccountSpecified
          numericValue: "3032"
        - identifier: ClanFireteamMinDestiny2ProgressForCreation
          numericValue: "3033"
        - identifier: ClanFireteamMinDestiny2ProgressForJoin
          numericValue: "3034"
        - identifier: ClanFireteamSMSOrPurchaseRequiredCreate
          numericValue: "3035"
        - identifier: ClanFireteamPurchaseRequiredCreate
          numericValue: "3036"
        - identifier: ClanFireteamSMSOrPurchaseRequiredJoin
          numericValue: "3037"
        - identifier: ClanFireteamPurchaseRequiredJoin
          numericValue: "3038"
        - identifier: CrossSaveOverriddenAccountNotFound
          numericValue: "3200"
        - identifier: CrossSaveTooManyOverriddenPlatforms
          numericValue: "3201"
        - identifier: CrossSaveNoOverriddenPlatforms
          numericValue: "3202"
        - identifier: CrossSavePrimaryAccountNotFound
          numericValue: "3203"
        - identifier: CrossSaveRequestInvalid
          numericValue: "3204"
        - identifier: CrossSaveBungieAccountValidationFailure
          numericValue: "3206"
        - identifier: CrossSaveOverriddenPlatformNotAllowed
          numericValue: "3207"
        - identifier: CrossSaveThresholdExceeded
          numericValue: "3208"
        - identifier: CrossSaveIncompatibleMembershipType
          numericValue: "3209"
        - identifier: CrossSaveCouldNotFindLinkedAccountForMembershipType
          numericValue: "3210"
        - identifier: CrossSaveCouldNotCreateDestinyProfileForMembershipType
          numericValue: "3211"
        - identifier: CrossSaveErrorCreatingDestinyProfileForMembershipType
          numericValue: "3212"
        - identifier: CrossSaveCannotOverrideSelf
          numericValue: "3213"
        - identifier: CrossSaveRecentSilverPurchase
          numericValue: "3214"
        - identifier: CrossSaveSilverBalanceNegative
          numericValue: "3215"
        - identifier: CrossSaveAccountNotAuthenticated
          numericValue: "3216"
        - identifier: ErrorOneAccountAlreadyActive
          numericValue: "3217"
        - identifier: ErrorOneAccountDestinyRestriction
          numericValue: "3218"
        - identifier: CrossSaveMustMigrateToSteam
          numericValue: "3219"
        - identifier: CrossSaveSteamAlreadyPaired
          numericValue: "3220"
        - identifier: CrossSaveCannotPairJustSteamAndBlizzard
          numericValue: "3221"
        - identifier: CrossSaveCannotPairSteamAloneBeforeShadowkeep
          numericValue: "3222"
        - identifier: AuthVerificationNotLinkedToAccount
          numericValue: "3300"
        - identifier: PCMigrationMissingBlizzard
          numericValue: "3400"
        - identifier: PCMigrationMissingSteam
          numericValue: "3401"
        - identifier: PCMigrationInvalidBlizzard
          numericValue: "3402"
        - identifier: PCMigrationInvalidSteam
          numericValue: "3403"
        - identifier: PCMigrationUnknownFailure
          numericValue: "3404"
        - identifier: PCMigrationUnknownException
          numericValue: "3405"
        - identifier: PCMigrationNotLinked
          numericValue: "3406"
        - identifier: PCMigrationAccountsAlreadyUsed
          numericValue: "3407"
        - identifier: PCMigrationStepFailed
          numericValue: "3408"
        - identifier: PCMigrationInvalidBlizzardCrossSaveState
          numericValue: "3409"
        - identifier: PCMigrationDestinationBanned
          numericValue: "3410"
        - identifier: PCMigrationDestinyFailure
          numericValue: "3411"
        - identifier: PCMigrationSilverTransferFailed
          numericValue: "3412"
        - identifier: PCMigrationEntitlementTransferFailed
          numericValue: "3413"
        - identifier: PCMigrationCannotStompClanFounder
          numericValue: "3414"
        - identifier: UnsupportedBrowser
          numericValue: "3500"
        - identifier: StadiaAccountRequired
          numericValue: "3600"
        - identifier: ErrorPhoneValidationTooManyUses
          numericValue: "3702"
        - identifier: ErrorPhoneValidationNoAssociatedPhone
          numericValue: "3703"
        - identifier: ErrorPhoneValidationCodeInvalid
          numericValue: "3705"
        - identifier: ErrorPhoneValidationBanned
          numericValue: "3706"
        - identifier: ErrorPhoneValidationCodeTooRecentlySent
          numericValue: "3707"
        - identifier: ErrorPhoneValidationCodeExpired
          numericValue: "3708"
        - identifier: ErrorPhoneValidationInvalidNumberType
          numericValue: "3709"
        - identifier: ErrorPhoneValidationCodeTooRecentlyChecked
          numericValue: "3710"
        - identifier: ApplePushErrorUnknown
          numericValue: "3800"
        - identifier: ApplePushErrorNull
          numericValue: "3801"
        - identifier: ApplePushErrorTimeout
          numericValue: "3802"
        - identifier: ApplePushBadRequest
          numericValue: "3803"
        - identifier: ApplePushFailedAuth
          numericValue: "3804"
        - identifier: ApplePushThrottled
          numericValue: "3805"
        - identifier: ApplePushServiceUnavailable
          numericValue: "3806"
        - identifier: NotAnImageOrVideo
          numericValue: "3807"
        - identifier: ErrorBungieFriendsBlockFailed
          numericValue: "3900"
        - identifier: ErrorBungieFriendsAutoReject
          numericValue: "3901"
        - identifier: ErrorBungieFriendsNoRequestFound
          numericValue: "3902"
        - identifier: ErrorBungieFriendsAlreadyFriends
          numericValue: "3903"
        - identifier: ErrorBungieFriendsUnableToRemoveRequest
          numericValue: "3904"
        - identifier: ErrorBungieFriendsUnableToRemove
          numericValue: "3905"
        - identifier: ErrorBungieFriendsIdenticalSourceTarget
          numericValue: "3906"
        - identifier: ErrorBungieFriendsSelf
          numericValue: "3907"
        - identifier: ErrorBungieBlockSelf
          numericValue: "3908"
        - identifier: ErrorBungieFriendsListFull
          numericValue: "3910"
        - identifier: ErrorBungieBlockListFull
          numericValue: "3911"
        - identifier: ErrorEgsUnknown
          numericValue: "4000"
        - identifier: ErrorEgsBadRequest
          numericValue: "4001"
        - identifier: ErrorEgsNotAuthorized
          numericValue: "4002"
        - identifier: ErrorEgsForbidden
          numericValue: "4003"
        - identifier: ErrorEgsAccountNotFound
          numericValue: "4004"
        - identifier: ErrorEgsWebException
          numericValue: "4005"
        - identifier: ErrorEgsUnavailable
          numericValue: "4006"
        - identifier: ErrorEgsJwksMissing
          numericValue: "4007"
        - identifier: ErrorEgsJwtMalformedHeader
          numericValue: "4008"
        - identifier: ErrorEgsJwtMalformedPayload
          numericValue: "4009"
    schema10:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
        - "14"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Plaintext
          numericValue: "1"
        - identifier: Html
          numericValue: "2"
        - identifier: Dropdown
          numericValue: "3"
        - identifier: List
          numericValue: "4"
        - identifier: Json
          numericValue: "5"
        - identifier: Content
          numericValue: "6"
        - identifier: Representation
          numericValue: "7"
        - identifier: Set
          numericValue: "8"
        - identifier: File
          numericValue: "9"
        - identifier: FolderSet
          numericValue: "10"
        - identifier: Date
          numericValue: "11"
        - identifier: MultilinePlaintext
          numericValue: "12"
        - identifier: DestinyContent
          numericValue: "13"
        - identifier: Color
          numericValue: "14"
    schema100:
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
        - "128"
        - "256"
        - "512"
        - "1024"
        - "2048"
        - "4096"
        - "8192"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Success
          numericValue: "0"
        - identifier: NoInventorySpace
          numericValue: "1"
        - identifier: NoFunds
          numericValue: "2"
        - identifier: NoProgression
          numericValue: "4"
        - identifier: NoUnlock
          numericValue: "8"
        - identifier: NoQuantity
          numericValue: "16"
        - identifier: OutsidePurchaseWindow
          numericValue: "32"
        - identifier: NotAvailable
          numericValue: "64"
        - identifier: UniquenessViolation
          numericValue: "128"
        - identifier: UnknownError
          numericValue: "256"
        - identifier: AlreadySelling
          numericValue: "512"
        - identifier: Unsellable
          numericValue: "1024"
        - identifier: SellingInhibited
          numericValue: "2048"
        - identifier: AlreadyOwned
          numericValue: "4096"
        - identifier: DisplayOnly
          numericValue: "8192"
    schema101:
      description: "The possible states of Destiny Profile Records. IMPORTANT: Any given item can theoretically have many of these states simultaneously: as a result, this was altered to be a flags enumeration/bitmask for v3.2.0."
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
        - "128"
        - "256"
        - "512"
        - "1024"
        - "2048"
        - "4096"
        - "8192"
        - "16384"
        - "32768"
        - "65536"
        - "131072"
        - "262144"
        - "524288"
        - "1048576"
      format: int32
      type: integer
      x-enum-values:
        - description: There are no augments on the item.
          identifier: None
          numericValue: "0"
        - description: Deprecated forever (probably). There was a time when Records were going to be implemented through Vendors, and this field was relevant. Now they're implemented through Presentation Nodes, and this field doesn't matter anymore.
          identifier: Incomplete
          numericValue: "1"
        - description: Deprecated forever (probably). See the description of the "Incomplete" value for the juicy scoop.
          identifier: RewardAvailable
          numericValue: "2"
        - description: Deprecated forever (probably). See the description of the "Incomplete" value for the juicy scoop.
          identifier: Complete
          numericValue: "4"
        - description: This item is considered to be "newly available", and should have some UI showing how shiny it is.
          identifier: New
          numericValue: "8"
        - description: This item is being "featured", and should be shiny in a different way from items that are merely new.
          identifier: Featured
          numericValue: "16"
        - description: This item is only available for a limited time, and that time is approaching.
          identifier: Ending
          numericValue: "32"
        - description: This item is "on sale". Get it while it's hot.
          identifier: OnSale
          numericValue: "64"
        - description: This item is already owned.
          identifier: Owned
          numericValue: "128"
        - description: This item should be shown with a "wide view" instead of normal icon view.
          identifier: WideView
          numericValue: "256"
        - description: This indicates that you should show some kind of attention-requesting indicator on the item, in a similar manner to items in the nexus that have such notifications.
          identifier: NexusAttention
          numericValue: "512"
        - description: This indicates that the item has some sort of a 'set' discount.
          identifier: SetDiscount
          numericValue: "1024"
        - description: This indicates that the item has a price drop.
          identifier: PriceDrop
          numericValue: "2048"
        - description: This indicates that the item is a daily offer.
          identifier: DailyOffer
          numericValue: "4096"
        - description: This indicates that the item is for charity.
          identifier: Charity
          numericValue: "8192"
        - description: This indicates that the item has a seasonal reward expiration.
          identifier: SeasonalRewardExpiration
          numericValue: "16384"
        - description: This indicates that the sale item is the best deal among different choices.
          identifier: BestDeal
          numericValue: "32768"
        - description: This indicates that the sale item is popular.
          identifier: Popular
          numericValue: "65536"
        - description: This indicates that the sale item is free.
          identifier: Free
          numericValue: "131072"
        - description: This indicates that the sale item is locked.
          identifier: Locked
          numericValue: "262144"
        - description: This indicates that the sale item is paracausal.
          identifier: Paracausal
          numericValue: "524288"
        - identifier: Cryptarch
          numericValue: "1048576"
    schema102:
      description: "If you look in the DestinyInventoryItemDefinition's \"sockets\" property, you'll see that there are two types of sockets: intrinsic, and \"socketEntry.\"\r

        Unfortunately, because Intrinsic sockets are a whole separate array, it is no longer sufficient to know the index into that array to know which socket we're talking about. You have to know whether it's in the default \"socketEntries\" or if it's in the \"intrinsic\" list."
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Default
          numericValue: "0"
        - identifier: Intrinsic
          numericValue: "1"
    schema103:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Daily
          numericValue: "1"
        - identifier: AllTime
          numericValue: "2"
        - identifier: Activity
          numericValue: "3"
    schema104:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
        - "14"
        - "15"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Kills
          numericValue: "1"
        - identifier: Assists
          numericValue: "2"
        - identifier: Deaths
          numericValue: "3"
        - identifier: Criticals
          numericValue: "4"
        - identifier: KDa
          numericValue: "5"
        - identifier: KD
          numericValue: "6"
        - identifier: Score
          numericValue: "7"
        - identifier: Entered
          numericValue: "8"
        - identifier: TimePlayed
          numericValue: "9"
        - identifier: MedalWins
          numericValue: "10"
        - identifier: MedalGame
          numericValue: "11"
        - identifier: MedalSpecialKills
          numericValue: "12"
        - identifier: MedalSprees
          numericValue: "13"
        - identifier: MedalMultiKills
          numericValue: "14"
        - identifier: MedalAbilities
          numericValue: "15"
    schema105:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - description: Indicates the statistic is a simple count of something.
          identifier: Count
          numericValue: "1"
        - description: Indicates the statistic is a per game average.
          identifier: PerGame
          numericValue: "2"
        - description: Indicates the number of seconds
          identifier: Seconds
          numericValue: "3"
        - description: Indicates the number of points earned
          identifier: Points
          numericValue: "4"
        - description: Values represents a team ID
          identifier: Team
          numericValue: "5"
        - description: Values represents a distance (units to-be-determined)
          identifier: Distance
          numericValue: "6"
        - description: Ratio represented as a whole value from 0 to 100.
          identifier: Percent
          numericValue: "7"
        - description: Ratio of something, shown with decimal places
          identifier: Ratio
          numericValue: "8"
        - description: True or false
          identifier: Boolean
          numericValue: "9"
        - description: The stat is actually a weapon type.
          identifier: WeaponType
          numericValue: "10"
        - description: Indicates victory, defeat, or something in between.
          identifier: Standing
          numericValue: "11"
        - description: Number of milliseconds some event spanned. For example, race time, or lap time.
          identifier: Milliseconds
          numericValue: "12"
        - description: The value is a enumeration of the Completion Reason type.
          identifier: CompletionReason
          numericValue: "13"
    schema106:
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - description: Insert plugs into sockets.
          identifier: InsertPlugs
          numericValue: "1"
    schema107:
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Rejected
          numericValue: "1"
        - identifier: Approved
          numericValue: "2"
    schema108:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - description: User provided an answer
          identifier: Answered
          numericValue: "1"
        - description: The HTTP request timed out, a new request may be made and an answer may still be provided.
          identifier: TimedOut
          numericValue: "2"
        - description: This request was replaced by another request.
          identifier: Replaced
          numericValue: "3"
    schema109:
      description: The known entity types that you can have returned from Trending.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
      format: int32
      type: integer
      x-enum-values:
        - identifier: News
          numericValue: "0"
        - identifier: DestinyItem
          numericValue: "1"
        - identifier: DestinyActivity
          numericValue: "2"
        - identifier: DestinyRitual
          numericValue: "3"
        - identifier: SupportArticle
          numericValue: "4"
        - identifier: Creation
          numericValue: "5"
        - identifier: Stream
          numericValue: "6"
        - identifier: Update
          numericValue: "7"
        - identifier: Link
          numericValue: "8"
        - identifier: ForumTag
          numericValue: "9"
        - identifier: Container
          numericValue: "10"
        - identifier: Release
          numericValue: "11"
    schema11:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Image
          numericValue: "1"
        - identifier: Video
          numericValue: "2"
        - identifier: Youtube
          numericValue: "3"
    schema110:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
      format: uint8
      type: integer
      x-enum-values:
        - identifier: Any
          numericValue: "0"
        - identifier: Playstation4
          numericValue: "1"
        - identifier: XboxOne
          numericValue: "2"
        - identifier: Blizzard
          numericValue: "3"
        - identifier: Steam
          numericValue: "4"
        - identifier: Stadia
          numericValue: "5"
        - identifier: Egs
          numericValue: "6"
    schema111:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: uint8
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Success
          numericValue: "1"
        - identifier: AlreadyInFireteam
          numericValue: "2"
        - identifier: Throttled
          numericValue: "3"
        - identifier: ServiceError
          numericValue: "4"
    schema112:
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: OfflineOrUnknown
          numericValue: "0"
        - identifier: Online
          numericValue: "1"
    schema113:
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Destiny1
          numericValue: "1"
        - identifier: Destiny2
          numericValue: "2"
    schema114:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Unknown
          numericValue: "0"
        - identifier: Friend
          numericValue: "1"
        - identifier: IncomingRequest
          numericValue: "2"
        - identifier: OutgoingRequest
          numericValue: "3"
    schema115:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Unknown
          numericValue: "0"
        - identifier: Xbox
          numericValue: "1"
        - identifier: PSN
          numericValue: "2"
        - identifier: Steam
          numericValue: "3"
        - identifier: Egs
          numericValue: "4"
    schema116:
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
        - "128"
        - "256"
      format: int64
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Newsletter
          numericValue: "1"
        - identifier: System
          numericValue: "2"
        - identifier: Marketing
          numericValue: "4"
        - identifier: UserResearch
          numericValue: "8"
        - identifier: CustomerService
          numericValue: "16"
        - identifier: Social
          numericValue: "32"
        - identifier: PlayTests
          numericValue: "64"
        - identifier: PlayTestsLocal
          numericValue: "128"
        - identifier: Careers
          numericValue: "256"
    schema117:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Unknown
          numericValue: "0"
        - identifier: Blue
          numericValue: "1"
        - identifier: Yellow
          numericValue: "2"
        - identifier: Red
          numericValue: "3"
    schema118:
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: GlobalAlert
          numericValue: "0"
        - identifier: StreamingAlert
          numericValue: "1"
    schema12:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Empty
          numericValue: "0"
        - identifier: Default
          numericValue: "1"
        - identifier: Discussed
          numericValue: "2"
        - identifier: CoolStory
          numericValue: "3"
        - identifier: HeatingUp
          numericValue: "4"
        - identifier: Hot
          numericValue: "5"
    schema13:
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Unallied
          numericValue: "0"
        - identifier: Parent
          numericValue: "1"
        - identifier: Child
          numericValue: "2"
    schema14:
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: General
          numericValue: "0"
        - identifier: Clan
          numericValue: "1"
    schema15:
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Group
          numericValue: "0"
        - identifier: Admins
          numericValue: "1"
    schema16:
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Wall
          numericValue: "0"
        - identifier: Forum
          numericValue: "1"
        - identifier: AllianceForum
          numericValue: "2"
    schema17:
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Reviewed
          numericValue: "0"
        - identifier: Open
          numericValue: "1"
        - identifier: Closed
          numericValue: "2"
    schema18:
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Public
          numericValue: "0"
        - identifier: Alliance
          numericValue: "1"
        - identifier: Private
          numericValue: "2"
    schema19:
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Leaderboards
          numericValue: "1"
        - identifier: Callsign
          numericValue: "2"
        - identifier: OptionalConversations
          numericValue: "4"
        - identifier: ClanBanner
          numericValue: "8"
        - identifier: D2InvestmentData
          numericValue: "16"
        - identifier: Tags
          numericValue: "32"
        - identifier: Alliances
          numericValue: "64"
    schema2:
      description: "Represents the possible components that can be returned from Destiny \"Get\" calls such as GetProfile, GetCharacter, GetVendor etc...\r

        When making one of these requests, you will pass one or more of these components as a comma separated list in the \"?components=\" querystring parameter. For instance, if you want baseline Profile data, Character Data, and character progressions, you would pass \"?components=Profiles,Characters,CharacterProgressions\" You may use either the numerical or string values."
      enum:
        - "0"
        - "100"
        - "101"
        - "102"
        - "103"
        - "104"
        - "105"
        - "200"
        - "201"
        - "202"
        - "203"
        - "204"
        - "205"
        - "206"
        - "300"
        - "301"
        - "302"
        - "303"
        - "304"
        - "305"
        - "306"
        - "307"
        - "308"
        - "309"
        - "310"
        - "400"
        - "401"
        - "402"
        - "500"
        - "600"
        - "700"
        - "800"
        - "900"
        - "1000"
        - "1100"
        - "1200"
        - "1300"
        - "1400"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - description: "Profiles is the most basic component, only relevant when calling GetProfile. This returns basic information about the profile, which is almost nothing: a list of characterIds, some information about the last time you logged in, and that most sobering statistic: how long you've played."
          identifier: Profiles
          numericValue: "100"
        - description: Only applicable for GetProfile, this will return information about receipts for refundable vendor items.
          identifier: VendorReceipts
          numericValue: "101"
        - description: Asking for this will get you the profile-level inventories, such as your Vault buckets (yeah, the Vault is really inventory buckets located on your Profile)
          identifier: ProfileInventories
          numericValue: "102"
        - description: This will get you a summary of items on your Profile that we consider to be "currencies", such as Glimmer. I mean, if there's Glimmer in Destiny 2. I didn't say there was Glimmer.
          identifier: ProfileCurrencies
          numericValue: "103"
        - description: This will get you any progression-related information that exists on a Profile-wide level, across all characters.
          identifier: ProfileProgression
          numericValue: "104"
        - description: "This will get you information about the silver that this profile has on every platform on which it plays.\r

            \ You may only request this component for the logged in user's Profile, and will not recieve it if you request it for another Profile."
          identifier: PlatformSilver
          numericValue: "105"
        - description: This will get you summary info about each of the characters in the profile.
          identifier: Characters
          numericValue: "200"
        - description: This will get you information about any non-equipped items on the character or character(s) in question, if you're allowed to see it. You have to either be authenticated as that user, or that user must allow anonymous viewing of their non-equipped items in Bungie.Net settings to actually get results.
          identifier: CharacterInventories
          numericValue: "201"
        - description: This will get you information about the progression (faction, experience, etc... "levels") relevant to each character, if you are the currently authenticated user or the user has elected to allow anonymous viewing of its progression info.
          identifier: CharacterProgressions
          numericValue: "202"
        - description: This will get you just enough information to be able to render the character in 3D if you have written a 3D rendering library for Destiny Characters, or "borrowed" ours. It's okay, I won't tell anyone if you're using it. I'm no snitch. (actually, we don't care if you use it - go to town)
          identifier: CharacterRenderData
          numericValue: "203"
        - description: This will return info about activities that a user can see and gating on it, if you are the currently authenticated user or the user has elected to allow anonymous viewing of its progression info. Note that the data returned by this can be unfortunately problematic and relatively unreliable in some cases. We'll eventually work on making it more consistently reliable.
          identifier: CharacterActivities
          numericValue: "204"
        - description: This will return info about the equipped items on the character(s). Everyone can see this.
          identifier: CharacterEquipment
          numericValue: "205"
        - description: This will return info about the loadouts of the character(s).
          identifier: CharacterLoadouts
          numericValue: "206"
        - description: This will return basic info about instanced items - whether they can be equipped, their tracked status, and some info commonly needed in many places (current damage type, primary stat value, etc)
          identifier: ItemInstances
          numericValue: "300"
        - description: Items can have Objectives (DestinyObjectiveDefinition) bound to them. If they do, this will return info for items that have such bound objectives.
          identifier: ItemObjectives
          numericValue: "301"
        - description: Items can have perks (DestinyPerkDefinition). If they do, this will return info for what perks are active on items.
          identifier: ItemPerks
          numericValue: "302"
        - description: If you just want to render the weapon, this is just enough info to do that rendering.
          identifier: ItemRenderData
          numericValue: "303"
        - description: Items can have stats, like rate of fire. Asking for this component will return requested item's stats if they have stats.
          identifier: ItemStats
          numericValue: "304"
        - description: Items can have sockets, where plugs can be inserted. Asking for this component will return all info relevant to the sockets on items that have them.
          identifier: ItemSockets
          numericValue: "305"
        - description: Items can have talent grids, though that matters a lot less frequently than it used to. Asking for this component will return all relevant info about activated Nodes and Steps on this talent grid, like the good ol' days.
          identifier: ItemTalentGrids
          numericValue: "306"
        - description: "Items that *aren't* instanced still have important information you need to know: how much of it you have, the itemHash so you can look up their DestinyInventoryItemDefinition, whether they're locked, etc... Both instanced and non-instanced items will have these properties. You will get this automatically with Inventory components - you only need to pass this when calling GetItem on a specific item."
          identifier: ItemCommonData
          numericValue: "307"
        - description: Items that are "Plugs" can be inserted into sockets. This returns statuses about those plugs and why they can/can't be inserted. I hear you giggling, there's nothing funny about inserting plugs. Get your head out of the gutter and pay attention!
          identifier: ItemPlugStates
          numericValue: "308"
        - description: Sometimes, plugs have objectives on them. This data can get really large, so we split it into its own component. Please, don't grab it unless you need it.
          identifier: ItemPlugObjectives
          numericValue: "309"
        - description: "Sometimes, designers create thousands of reusable plugs and suddenly your response sizes are almost 3MB, and something has to give.\r

            \ Reusable Plugs were split off as their own component, away from ItemSockets, as a result of the Plug changes in Shadowkeep that made plug data infeasibly large for the most common use cases.\r

            \ Request this component if and only if you need to know what plugs *could* be inserted into a socket, and need to know it before \"drilling\" into the details of an item in your application (for instance, if you're doing some sort of interesting sorting or aggregation based on available plugs.\r

            \ When you get this, you will also need to combine it with \"Plug Sets\" data if you want a full picture of all of the available plugs: this component will only return plugs that have state data that is per-item. See Plug Sets for available plugs that have Character, Profile, or no state-specific restrictions."
          identifier: ItemReusablePlugs
          numericValue: "310"
        - description: When obtaining vendor information, this will return summary information about the Vendor or Vendors being returned.
          identifier: Vendors
          numericValue: "400"
        - description: When obtaining vendor information, this will return information about the categories of items provided by the Vendor.
          identifier: VendorCategories
          numericValue: "401"
        - description: When obtaining vendor information, this will return the information about items being sold by the Vendor.
          identifier: VendorSales
          numericValue: "402"
        - description: "Asking for this component will return you the account's Kiosk statuses: that is, what items have been filled out/acquired. But only if you are the currently authenticated user or the user has elected to allow anonymous viewing of its progression info."
          identifier: Kiosks
          numericValue: "500"
        - description: A "shortcut" component that will give you all of the item hashes/quantities of items that the requested character can use to determine if an action (purchasing, socket insertion) has the required currency. (recall that all currencies are just items, and that some vendor purchases require items that you might not traditionally consider to be a "currency", like plugs/mods!)
          identifier: CurrencyLookups
          numericValue: "600"
        - description: 'Returns summary status information about all "Presentation Nodes". See DestinyPresentationNodeDefinition for more details, but the gist is that these are entities used by the game UI to bucket Collectibles and Records into a hierarchy of categories. You may ask for and use this data if you want to perform similar bucketing in your own UI: or you can skip it and roll your own.'
          identifier: PresentationNodes
          numericValue: "700"
        - description: Returns summary status information about all "Collectibles". These are records of what items you've discovered while playing Destiny, and some other basic information. For detailed information, you will have to call a separate endpoint devoted to the purpose.
          identifier: Collectibles
          numericValue: "800"
        - description: Returns summary status information about all "Records" (also known in the game as "Triumphs". I know, it's confusing because there's also "Moments of Triumph" that will themselves be represented as "Triumphs.")
          identifier: Records
          numericValue: "900"
        - description: "Returns information that Bungie considers to be \"Transitory\": data that may change too frequently or come from a non-authoritative source such that we don't consider the data to be fully trustworthy, but that might prove useful for some limited use cases. We can provide no guarantee of timeliness nor consistency for this data: buyer beware with the Transitory component."
          identifier: Transitory
          numericValue: "1000"
        - description: Returns summary status information about all "Metrics" (also known in the game as "Stat Trackers").
          identifier: Metrics
          numericValue: "1100"
        - description: Returns a mapping of localized string variable hashes to values, on a per-account or per-character basis.
          identifier: StringVariables
          numericValue: "1200"
        - description: Returns summary status information about all "Craftables" aka crafting recipe items.
          identifier: Craftables
          numericValue: "1300"
        - description: Returns score values for all commendations and commendation nodes.
          identifier: SocialCommendations
          numericValue: "1400"
    schema20:
      description: Used for setting the guided game permission level override (admins and founders can always host guided games).
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Beginner
          numericValue: "1"
        - identifier: Member
          numericValue: "2"
    schema21:
      description: The member levels used by all V2 Groups API. Individual group types use their own mappings in their native storage (general uses BnetDbGroupMemberType and D2 clans use ClanMemberLevel), but they are all translated to this in the runtime api. These runtime values should NEVER be stored anywhere, so the values can be changed as necessary.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Beginner
          numericValue: "1"
        - identifier: Member
          numericValue: "2"
        - identifier: Admin
          numericValue: "3"
        - identifier: ActingFounder
          numericValue: "4"
        - identifier: Founder
          numericValue: "5"
    schema22:
      description: Represents the different states a progression reward item can be in.
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - description: If this is set, the reward should be hidden.
          identifier: Invisible
          numericValue: "1"
        - description: If this is set, the reward has been earned.
          identifier: Earned
          numericValue: "2"
        - description: If this is set, the reward has been claimed.
          identifier: Claimed
          numericValue: "4"
        - description: If this is set, the reward is allowed to be claimed by this Character. An item can be earned but still can't be claimed in certain circumstances, like if it's only allowed for certain subclasses. It also might not be able to be claimed if you already claimed it!
          identifier: ClaimAllowed
          numericValue: "8"
    schema23:
      description: 'There are many Progressions in Destiny (think Character Level, or Reputation). These are the various "Scopes" of Progressions, which affect many things: * Where/if they are stored * How they are calculated * Where they can be used in other game logic'
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Account
          numericValue: "0"
        - identifier: Character
          numericValue: "1"
        - identifier: Clan
          numericValue: "2"
        - identifier: Item
          numericValue: "3"
        - identifier: ImplicitFromEquipment
          numericValue: "4"
        - identifier: Mapped
          numericValue: "5"
        - identifier: MappedAggregate
          numericValue: "6"
        - identifier: MappedStat
          numericValue: "7"
        - identifier: MappedUnlockValue
          numericValue: "8"
    schema24:
      description: If progression is earned, this determines whether the progression shows visual effects on the character or its item - or neither.
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Character
          numericValue: "1"
        - identifier: Item
          numericValue: "2"
    schema25:
      description: "As you run into items that need to be classified for Milestone purposes in ways that we cannot infer via direct data, add a new classification here and use a string constant to represent it in the local item config file.\r

        NOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1 that may or may not still exist."
      enum:
        - "0"
        - "1"
        - "8"
        - "9"
        - "23"
        - "24"
        - "25"
        - "27"
        - "29"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: SpecialCurrency
          numericValue: "1"
        - identifier: Armor
          numericValue: "8"
        - identifier: Weapon
          numericValue: "9"
        - identifier: Engram
          numericValue: "23"
        - identifier: Consumable
          numericValue: "24"
        - identifier: ExchangeMaterial
          numericValue: "25"
        - identifier: MissionReward
          numericValue: "27"
        - identifier: Currency
          numericValue: "29"
    schema26:
      description: "An enumeration that indicates the high-level \"type\" of the item, attempting to iron out the context specific differences for specific instances of an entity. For instance, though a weapon may be of various weapon \"Types\", in DestinyItemType they are all classified as \"Weapon\". This allows for better filtering on a higher level of abstraction for the concept of types.\r

        \ This enum is provided for historical compatibility with Destiny 1, but an ideal alternative is to use DestinyItemCategoryDefinitions and the DestinyItemDefinition.itemCategories property instead. Item Categories allow for arbitrary hierarchies of specificity, and for items to belong to multiple categories across multiple hierarchies simultaneously. For this enum, we pick a single type as a \"best guess\" fit.\r

        \ NOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1 that may or may not still exist.\r

        \ I keep updating these because they're so damn convenient. I guess I shouldn't fight it."
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
        - "14"
        - "15"
        - "16"
        - "17"
        - "18"
        - "19"
        - "20"
        - "21"
        - "22"
        - "23"
        - "24"
        - "25"
        - "26"
        - "27"
        - "28"
        - "29"
        - "30"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Currency
          numericValue: "1"
        - identifier: Armor
          numericValue: "2"
        - identifier: Weapon
          numericValue: "3"
        - identifier: Message
          numericValue: "7"
        - identifier: Engram
          numericValue: "8"
        - identifier: Consumable
          numericValue: "9"
        - identifier: ExchangeMaterial
          numericValue: "10"
        - identifier: MissionReward
          numericValue: "11"
        - identifier: QuestStep
          numericValue: "12"
        - identifier: QuestStepComplete
          numericValue: "13"
        - identifier: Emblem
          numericValue: "14"
        - identifier: Quest
          numericValue: "15"
        - identifier: Subclass
          numericValue: "16"
        - identifier: ClanBanner
          numericValue: "17"
        - identifier: Aura
          numericValue: "18"
        - identifier: Mod
          numericValue: "19"
        - identifier: Dummy
          numericValue: "20"
        - identifier: Ship
          numericValue: "21"
        - identifier: Vehicle
          numericValue: "22"
        - identifier: Emote
          numericValue: "23"
        - identifier: Ghost
          numericValue: "24"
        - identifier: Package
          numericValue: "25"
        - identifier: Bounty
          numericValue: "26"
        - identifier: Wrapper
          numericValue: "27"
        - identifier: SeasonalArtifact
          numericValue: "28"
        - identifier: Finisher
          numericValue: "29"
        - identifier: Pattern
          numericValue: "30"
    schema27:
      description: "This Enumeration further classifies items by more specific categorizations than DestinyItemType. The \"Sub-Type\" is where we classify and categorize items one step further in specificity: \"Auto Rifle\" instead of just \"Weapon\" for example, or \"Vanguard Bounty\" instead of merely \"Bounty\".\r

        These sub-types are provided for historical compatibility with Destiny 1, but an ideal alternative is to use DestinyItemCategoryDefinitions and the DestinyItemDefinition.itemCategories property instead. Item Categories allow for arbitrary hierarchies of specificity, and for items to belong to multiple categories across multiple hierarchies simultaneously. For this enum, we pick a single type as a \"best guess\" fit.\r

        NOTE: This is not all of the item types available, and some of these are holdovers from Destiny 1 that may or may not still exist."
      enum:
        - "0"
        - "1"
        - "2"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
        - "14"
        - "16"
        - "17"
        - "18"
        - "19"
        - "20"
        - "21"
        - "22"
        - "23"
        - "24"
        - "25"
        - "26"
        - "27"
        - "28"
        - "29"
        - "30"
        - "31"
        - "32"
        - "33"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - description: DEPRECATED. Items can be both "Crucible" and something else interesting.
          identifier: Crucible
          numericValue: "1"
        - description: DEPRECATED. An item can both be "Vanguard" and something else.
          identifier: Vanguard
          numericValue: "2"
        - description: DEPRECATED. An item can both be Exotic and something else.
          identifier: Exotic
          numericValue: "5"
        - identifier: AutoRifle
          numericValue: "6"
        - identifier: Shotgun
          numericValue: "7"
        - identifier: Machinegun
          numericValue: "8"
        - identifier: HandCannon
          numericValue: "9"
        - identifier: RocketLauncher
          numericValue: "10"
        - identifier: FusionRifle
          numericValue: "11"
        - identifier: SniperRifle
          numericValue: "12"
        - identifier: PulseRifle
          numericValue: "13"
        - identifier: ScoutRifle
          numericValue: "14"
        - description: DEPRECATED. An item can both be CRM and something else.
          identifier: Crm
          numericValue: "16"
        - identifier: Sidearm
          numericValue: "17"
        - identifier: Sword
          numericValue: "18"
        - identifier: Mask
          numericValue: "19"
        - identifier: Shader
          numericValue: "20"
        - identifier: Ornament
          numericValue: "21"
        - identifier: FusionRifleLine
          numericValue: "22"
        - identifier: GrenadeLauncher
          numericValue: "23"
        - identifier: SubmachineGun
          numericValue: "24"
        - identifier: TraceRifle
          numericValue: "25"
        - identifier: HelmetArmor
          numericValue: "26"
        - identifier: GauntletsArmor
          numericValue: "27"
        - identifier: ChestArmor
          numericValue: "28"
        - identifier: LegArmor
          numericValue: "29"
        - identifier: ClassArmor
          numericValue: "30"
        - identifier: Bow
          numericValue: "31"
        - identifier: DummyRepeatableBounty
          numericValue: "32"
        - identifier: Glaive
          numericValue: "33"
    schema28:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Titan
          numericValue: "0"
        - identifier: Hunter
          numericValue: "1"
        - identifier: Warlock
          numericValue: "2"
        - identifier: Unknown
          numericValue: "3"
    schema29:
      description: 'A plug can optionally have a "Breaker Type": a special ability that can affect units in unique ways. Activating this plug can grant one of these types.'
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: ShieldPiercing
          numericValue: "1"
        - identifier: Disruption
          numericValue: "2"
        - identifier: Stagger
          numericValue: "3"
    schema3:
      description: If the enum value is > 100, it is a "special" group that cannot be queried for directly (special cases apply to when they are returned, and are not relevant in general cases)
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "100"
        - "101"
        - "102"
        - "103"
        - "104"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: General
          numericValue: "1"
        - identifier: Weapons
          numericValue: "2"
        - identifier: Medals
          numericValue: "3"
        - description: This is purely to serve as the dividing line between filterable and un-filterable groups. Below this number is a group you can pass as a filter. Above it are groups used in very specific circumstances and not relevant for filtering.
          identifier: ReservedGroups
          numericValue: "100"
        - description: Only applicable while generating leaderboards.
          identifier: Leaderboard
          numericValue: "101"
        - description: These will *only* be consumed by GetAggregateStatsByActivity
          identifier: Activity
          numericValue: "102"
        - description: These are only consumed and returned by GetUniqueWeaponHistory
          identifier: UniqueWeapon
          numericValue: "103"
        - identifier: Internal
          numericValue: "104"
    schema30:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Kinetic
          numericValue: "1"
        - identifier: Arc
          numericValue: "2"
        - identifier: Thermal
          numericValue: "3"
        - identifier: Void
          numericValue: "4"
        - identifier: Raid
          numericValue: "5"
        - identifier: Stasis
          numericValue: "6"
        - identifier: Strand
          numericValue: "7"
    schema31:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Visible
          numericValue: "0"
        - identifier: Hidden
          numericValue: "1"
        - identifier: HiddenWhenEmpty
          numericValue: "2"
        - identifier: HiddenIfNoPlugsAvailable
          numericValue: "3"
    schema32:
      description: Indicates the type of actions that can be performed
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: InsertPlug
          numericValue: "0"
        - identifier: InfuseItem
          numericValue: "1"
        - identifier: ReinitializeSocket
          numericValue: "2"
    schema33:
      description: Represents the possible and known UI styles used by the game for rendering Socket Categories.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Unknown
          numericValue: "0"
        - identifier: Reusable
          numericValue: "1"
        - identifier: Consumable
          numericValue: "2"
        - identifier: Unlockable
          numericValue: "3"
        - identifier: Intrinsic
          numericValue: "4"
        - identifier: EnergyMeter
          numericValue: "5"
        - identifier: LargePerk
          numericValue: "6"
        - identifier: Abilities
          numericValue: "7"
        - identifier: Supers
          numericValue: "8"
    schema34:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Unknown
          numericValue: "0"
        - identifier: Currency
          numericValue: "1"
        - identifier: Basic
          numericValue: "2"
        - identifier: Common
          numericValue: "3"
        - identifier: Rare
          numericValue: "4"
        - identifier: Superior
          numericValue: "5"
        - identifier: Exotic
          numericValue: "6"
    schema35:
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Character
          numericValue: "0"
        - identifier: Account
          numericValue: "1"
    schema36:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Invisible
          numericValue: "0"
        - identifier: Item
          numericValue: "1"
        - identifier: Currency
          numericValue: "2"
        - identifier: Equippable
          numericValue: "3"
        - identifier: Ignored
          numericValue: "4"
    schema37:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Unknown
          numericValue: "0"
        - identifier: Inventory
          numericValue: "1"
        - identifier: Vault
          numericValue: "2"
        - identifier: Vendor
          numericValue: "3"
        - identifier: Postmaster
          numericValue: "4"
    schema38:
      description: "When a Stat (DestinyStatDefinition) is aggregated, this is the rules used for determining the level and formula used for aggregation.\r

        * CharacterAverage = apply a weighted average using the related DestinyStatGroupDefinition on the DestinyInventoryItemDefinition across the character's equipped items. See both of those definitions for details. * Character = don't aggregate: the stat should be located and used directly on the character. * Item = don't aggregate: the stat should be located and used directly on the item."
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: CharacterAverage
          numericValue: "0"
        - identifier: Character
          numericValue: "1"
        - identifier: Item
          numericValue: "2"
    schema39:
      description: At last, stats have categories. Use this for whatever purpose you might wish.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Gameplay
          numericValue: "0"
        - identifier: Weapon
          numericValue: "1"
        - identifier: Defense
          numericValue: "2"
        - identifier: Primary
          numericValue: "3"
    schema4:
      description: For historical reasons, this list will have both D1 and D2-relevant Activity Modes in it. Please don't take this to mean that some D1-only feature is coming back!
      enum:
        - "0"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
        - "15"
        - "16"
        - "17"
        - "18"
        - "19"
        - "20"
        - "21"
        - "22"
        - "24"
        - "25"
        - "26"
        - "27"
        - "28"
        - "29"
        - "30"
        - "31"
        - "32"
        - "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"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Story
          numericValue: "2"
        - identifier: Strike
          numericValue: "3"
        - identifier: Raid
          numericValue: "4"
        - identifier: AllPvP
          numericValue: "5"
        - identifier: Patrol
          numericValue: "6"
        - identifier: AllPvE
          numericValue: "7"
        - identifier: Reserved9
          numericValue: "9"
        - identifier: Control
          numericValue: "10"
        - identifier: Reserved11
          numericValue: "11"
        - description: Clash -> Destiny's name for Team Deathmatch. 4v4 combat, the team with the highest kills at the end of time wins.
          identifier: Clash
          numericValue: "12"
        - identifier: Reserved13
          numericValue: "13"
        - identifier: CrimsonDoubles
          numericValue: "15"
        - identifier: Nightfall
          numericValue: "16"
        - identifier: HeroicNightfall
          numericValue: "17"
        - identifier: AllStrikes
          numericValue: "18"
        - identifier: IronBanner
          numericValue: "19"
        - identifier: Reserved20
          numericValue: "20"
        - identifier: Reserved21
          numericValue: "21"
        - identifier: Reserved22
          numericValue: "22"
        - identifier: Reserved24
          numericValue: "24"
        - identifier: AllMayhem
          numericValue: "25"
        - identifier: Reserved26
          numericValue: "26"
        - identifier: Reserved27
          numericValue: "27"
        - identifier: Reserved28
          numericValue: "28"
        - identifier: Reserved29
          numericValue: "29"
        - identifier: Reserved30
          numericValue: "30"
        - identifier: Supremacy
          numericValue: "31"
        - identifier: PrivateMatchesAll
          numericValue: "32"
        - identifier: Survival
          numericValue: "37"
        - identifier: Countdown
          numericValue: "38"
        - identifier: TrialsOfTheNine
          numericValue: "39"
        - identifier: Social
          numericValue: "40"
        - identifier: TrialsCountdown
          numericValue: "41"
        - identifier: TrialsSurvival
          numericValue: "42"
        - identifier: IronBannerControl
          numericValue: "43"
        - identifier: IronBannerClash
          numericValue: "44"
        - identifier: IronBannerSupremacy
          numericValue: "45"
        - identifier: ScoredNightfall
          numericValue: "46"
        - identifier: ScoredHeroicNightfall
          numericValue: "47"
        - identifier: Rumble
          numericValue: "48"
        - identifier: AllDoubles
          numericValue: "49"
        - identifier: Doubles
          numericValue: "50"
        - identifier: PrivateMatchesClash
          numericValue: "51"
        - identifier: PrivateMatchesControl
          numericValue: "52"
        - identifier: PrivateMatchesSupremacy
          numericValue: "53"
        - identifier: PrivateMatchesCountdown
          numericValue: "54"
        - identifier: PrivateMatchesSurvival
          numericValue: "55"
        - identifier: PrivateMatchesMayhem
          numericValue: "56"
        - identifier: PrivateMatchesRumble
          numericValue: "57"
        - identifier: HeroicAdventure
          numericValue: "58"
        - identifier: Showdown
          numericValue: "59"
        - identifier: Lockdown
          numericValue: "60"
        - identifier: Scorched
          numericValue: "61"
        - identifier: ScorchedTeam
          numericValue: "62"
        - identifier: Gambit
          numericValue: "63"
        - identifier: AllPvECompetitive
          numericValue: "64"
        - identifier: Breakthrough
          numericValue: "65"
        - identifier: BlackArmoryRun
          numericValue: "66"
        - identifier: Salvage
          numericValue: "67"
        - identifier: IronBannerSalvage
          numericValue: "68"
        - identifier: PvPCompetitive
          numericValue: "69"
        - identifier: PvPQuickplay
          numericValue: "70"
        - identifier: ClashQuickplay
          numericValue: "71"
        - identifier: ClashCompetitive
          numericValue: "72"
        - identifier: ControlQuickplay
          numericValue: "73"
        - identifier: ControlCompetitive
          numericValue: "74"
        - identifier: GambitPrime
          numericValue: "75"
        - identifier: Reckoning
          numericValue: "76"
        - identifier: Menagerie
          numericValue: "77"
        - identifier: VexOffensive
          numericValue: "78"
        - identifier: NightmareHunt
          numericValue: "79"
        - identifier: Elimination
          numericValue: "80"
        - identifier: Momentum
          numericValue: "81"
        - identifier: Dungeon
          numericValue: "82"
        - identifier: Sundial
          numericValue: "83"
        - identifier: TrialsOfOsiris
          numericValue: "84"
        - identifier: Dares
          numericValue: "85"
        - identifier: Offensive
          numericValue: "86"
        - identifier: LostSector
          numericValue: "87"
        - identifier: Rift
          numericValue: "88"
        - identifier: ZoneControl
          numericValue: "89"
        - identifier: IronBannerRift
          numericValue: "90"
        - identifier: IronBannerZoneControl
          numericValue: "91"
    schema40:
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: EquipOnAcquire
          numericValue: "1"
    schema41:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Primary
          numericValue: "1"
        - identifier: Special
          numericValue: "2"
        - identifier: Heavy
          numericValue: "3"
        - identifier: Unknown
          numericValue: "4"
    schema42:
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Male
          numericValue: "0"
        - identifier: Female
          numericValue: "1"
        - identifier: Unknown
          numericValue: "2"
    schema43:
      description: Describes the type of progression that a vendor has.
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - description: The original rank progression from token redemption.
          identifier: Default
          numericValue: "0"
        - description: "Progression from ranks in ritual content. For example: Crucible (Shaxx), Gambit (Drifter), and Season 13 Battlegrounds (War Table)."
          identifier: Ritual
          numericValue: "1"
        - description: "A vendor progression with no seasonal refresh. For example: Xur in the Eternity destination for the 30th Anniversary."
          identifier: NoSeasonalRefresh
          numericValue: "2"
    schema44:
      description: Display categories can have custom sort orders. These are the possible options.
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Default
          numericValue: "0"
        - identifier: SortByTier
          numericValue: "1"
    schema45:
      description: An enumeration of the known UI interactions for Vendors.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Unknown
          numericValue: "0"
        - description: An empty interaction. If this ends up in content, it is probably a game bug.
          identifier: Undefined
          numericValue: "1"
        - description: An interaction shown when you complete a quest and receive a reward.
          identifier: QuestComplete
          numericValue: "2"
        - description: An interaction shown when you talk to a Vendor as an intermediary step of a quest.
          identifier: QuestContinue
          numericValue: "3"
        - description: An interaction shown when you are previewing the vendor's reputation rewards.
          identifier: ReputationPreview
          numericValue: "4"
        - description: An interaction shown when you rank up with the vendor.
          identifier: RankUpReward
          numericValue: "5"
        - description: An interaction shown when you have tokens to turn in for the vendor.
          identifier: TokenTurnIn
          numericValue: "6"
        - description: An interaction shown when you're accepting a new quest.
          identifier: QuestAccept
          numericValue: "7"
        - description: Honestly, this doesn't seem consistent to me. It is used to give you choices in the Cryptarch as well as some reward prompts by the Eververse vendor. I'll have to look into that further at some point.
          identifier: ProgressTab
          numericValue: "8"
        - description: These seem even less consistent. I don't know what these are.
          identifier: End
          numericValue: "9"
        - description: Also seem inconsistent. I also don't know what these are offhand.
          identifier: Start
          numericValue: "10"
    schema46:
      description: When a Vendor Interaction provides rewards, they'll either let you choose one or let you have all of them. This determines which it will be.
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: One
          numericValue: "1"
        - identifier: All
          numericValue: "2"
    schema47:
      description: This determines the type of reply that a Vendor will have during an Interaction.
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Accept
          numericValue: "0"
        - identifier: Decline
          numericValue: "1"
        - identifier: Complete
          numericValue: "2"
    schema48:
      description: Determines how items are sorted in an inventory bucket.
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: ItemId
          numericValue: "0"
        - identifier: Timestamp
          numericValue: "1"
        - identifier: StackSize
          numericValue: "2"
    schema49:
      description: The action that happens when the user attempts to refund an item.
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: NotRefundable
          numericValue: "0"
        - identifier: DeletesItem
          numericValue: "1"
        - identifier: RevokesLicense
          numericValue: "2"
    schema5:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: int32
      type: integer
      x-enum-values:
        - description: No value assigned
          identifier: None
          numericValue: "0"
        - description: Application exists and works but will not appear in any public catalog. New applications start in this state, test applications will remain in this state.
          identifier: Private
          numericValue: "1"
        - description: Active applications that can appear in an catalog.
          identifier: Public
          numericValue: "2"
        - description: Application disabled by the owner. All authorizations will be treated as terminated while in this state. Owner can move back to private or public state.
          identifier: Disabled
          numericValue: "3"
        - description: Application has been blocked by Bungie. It cannot be transitioned out of this state by the owner. Authorizations are terminated when an application is in this state.
          identifier: Blocked
          numericValue: "4"
    schema50:
      description: "This enumeration represents the most restrictive type of gating that is being performed by an entity. This is useful as a shortcut to avoid a lot of lookups when determining whether the gating on an Entity applies to everyone equally, or to their specific Profile or Character states.\r

        None = There is no gating on this item.\r

        Global = The gating on this item is based entirely on global game state. It will be gated the same for everyone.\r

        Clan = The gating on this item is at the Clan level. For instance, if you're gated by Clan level this will be the case.\r

        Profile = The gating includes Profile-specific checks, but not on the Profile's characters. An example of this might be when you acquire an Emblem: the Emblem will be available in your Kiosk for all characters in your Profile from that point onward.\r

        Character = The gating includes Character-specific checks, including character level restrictions. An example of this might be an item that you can't purchase from a Vendor until you reach a specific Character Level.\r

        Item = The gating includes item-specific checks. For BNet, this generally implies that we'll show this data only on a character level or deeper.\r

        AssumedWorstCase = The unlocks and checks being used for this calculation are of an unknown type and are used for unknown purposes. For instance, if some great person decided that an unlock value should be globally scoped, but then the game changes it using character-specific data in a way that BNet doesn't know about. Because of the open-ended potential for this to occur, many unlock checks for \"globally\" scoped unlock data may be assumed as the worst case unless it has been specifically whitelisted as otherwise. That sucks, but them's the breaks."
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Global
          numericValue: "1"
        - identifier: Clan
          numericValue: "2"
        - identifier: Profile
          numericValue: "3"
        - identifier: Character
          numericValue: "4"
        - identifier: Item
          numericValue: "5"
        - identifier: AssumedWorstCase
          numericValue: "6"
    schema51:
      description: The various known UI styles in which an item can be highlighted. It'll be up to you to determine what you want to show based on this highlighting, BNet doesn't have any assets that correspond to these states. And yeah, RiseOfIron and Comet have their own special highlight states. Don't ask me, I can't imagine they're still used.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Normal
          numericValue: "1"
        - identifier: Hyper
          numericValue: "2"
        - identifier: Comet
          numericValue: "3"
        - identifier: RiseOfIron
          numericValue: "4"
    schema52:
      description: If you're showing an unlock value in the UI, this is the format in which it should be shown. You'll have to build your own algorithms on the client side to determine how best to render these options.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
        - "14"
      format: int32
      type: integer
      x-enum-values:
        - description: Generally, Automatic means "Just show the number"
          identifier: Automatic
          numericValue: "0"
        - description: Show the number as a fractional value. For this to make sense, the value being displayed should have a comparable upper bound, like the progress to the next level of a Progression.
          identifier: Fraction
          numericValue: "1"
        - description: Show the number as a checkbox. 0 Will mean unchecked, any other value will mean checked.
          identifier: Checkbox
          numericValue: "2"
        - description: Show the number as a percentage. For this to make sense, the value being displayed should have a comparable upper bound, like the progress to the next level of a Progression.
          identifier: Percentage
          numericValue: "3"
        - description: Show the number as a date and time. The number will be the number of seconds since the Unix Epoch (January 1st, 1970 at midnight UTC). It'll be up to you to convert this into a date and time format understandable to the user in their time zone.
          identifier: DateTime
          numericValue: "4"
        - description: Show the number as a floating point value that represents a fraction, where 0 is min and 1 is max. For this to make sense, the value being displayed should have a comparable upper bound, like the progress to the next level of a Progression.
          identifier: FractionFloat
          numericValue: "5"
        - description: Show the number as a straight-up integer.
          identifier: Integer
          numericValue: "6"
        - description: Show the number as a time duration. The value will be returned as seconds.
          identifier: TimeDuration
          numericValue: "7"
        - description: Don't bother showing the value at all, it's not easily human-interpretable, and used for some internal purpose.
          identifier: Hidden
          numericValue: "8"
        - description: 'Example: "1.5x"'
          identifier: Multiplier
          numericValue: "9"
        - description: Show the value as a series of green pips, like the wins in a Trials of Osiris score card.
          identifier: GreenPips
          numericValue: "10"
        - description: Show the value as a series of red pips, like the losses in a Trials of Osiris score card.
          identifier: RedPips
          numericValue: "11"
        - description: "Show the value as a percentage. For example: \"51%\" - Does no division, only appends '%'"
          identifier: ExplicitPercentage
          numericValue: "12"
        - description: 'Show the value as a floating-point number. For example: "4.52" NOTE: Passed along from Investment as whole number with last two digits as decimal values (452 -> 4.52)'
          identifier: RawFloat
          numericValue: "13"
        - description: Show the value as a level and a reward.
          identifier: LevelAndReward
          numericValue: "14"
    schema53:
      description: If the objective has a known UI label, this enumeration will represent it.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Highlighted
          numericValue: "1"
        - identifier: CraftingWeaponLevel
          numericValue: "2"
        - identifier: CraftingWeaponLevelProgress
          numericValue: "3"
        - identifier: CraftingWeaponTimestamp
          numericValue: "4"
        - identifier: CraftingMementos
          numericValue: "5"
        - identifier: CraftingMementoTitle
          numericValue: "6"
    schema54:
      description: Some Objectives provide perks, generally as part of providing some kind of interesting modifier for a Challenge or Quest. This indicates when the Perk is granted.
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: WhenIncomplete
          numericValue: "0"
        - identifier: WhenComplete
          numericValue: "1"
        - identifier: Always
          numericValue: "2"
    schema55:
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
        - "128"
        - "256"
        - "512"
        - "1024"
        - "2048"
        - "4096"
        - "8191"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: RateOfFire
          numericValue: "1"
        - identifier: Damage
          numericValue: "2"
        - identifier: Accuracy
          numericValue: "4"
        - identifier: Range
          numericValue: "8"
        - identifier: Zoom
          numericValue: "16"
        - identifier: Recoil
          numericValue: "32"
        - identifier: Ready
          numericValue: "64"
        - identifier: Reload
          numericValue: "128"
        - identifier: HairTrigger
          numericValue: "256"
        - identifier: AmmoAndMagazine
          numericValue: "512"
        - identifier: TrackingAndDetonation
          numericValue: "1024"
        - identifier: ShotgunSpread
          numericValue: "2048"
        - identifier: ChargeTime
          numericValue: "4096"
        - identifier: All
          numericValue: "8191"
    schema56:
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "63"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: ArmorPiercing
          numericValue: "1"
        - identifier: Ricochet
          numericValue: "2"
        - identifier: Flinch
          numericValue: "4"
        - identifier: CollateralDamage
          numericValue: "8"
        - identifier: Disorient
          numericValue: "16"
        - identifier: HighlightTarget
          numericValue: "32"
        - identifier: All
          numericValue: "63"
    schema57:
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
        - "128"
        - "255"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Stats
          numericValue: "1"
        - identifier: Shields
          numericValue: "2"
        - identifier: Health
          numericValue: "4"
        - identifier: Revive
          numericValue: "8"
        - identifier: AimUnderFire
          numericValue: "16"
        - identifier: Radar
          numericValue: "32"
        - identifier: Invisibility
          numericValue: "64"
        - identifier: Reputations
          numericValue: "128"
        - identifier: All
          numericValue: "255"
    schema58:
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "63"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Grenades
          numericValue: "1"
        - identifier: Melee
          numericValue: "2"
        - identifier: MovementModes
          numericValue: "4"
        - identifier: Orbs
          numericValue: "8"
        - identifier: SuperEnergy
          numericValue: "16"
        - identifier: SuperMods
          numericValue: "32"
        - identifier: All
          numericValue: "63"
    schema59:
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "15"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Kinetic
          numericValue: "1"
        - identifier: Arc
          numericValue: "2"
        - identifier: Solar
          numericValue: "4"
        - identifier: Void
          numericValue: "8"
        - identifier: All
          numericValue: "15"
    schema6:
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Owner
          numericValue: "1"
        - identifier: TeamMember
          numericValue: "2"
    schema60:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
        - "14"
        - "15"
        - "16"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Inactive
          numericValue: "0"
        - identifier: PrimaryObjective
          numericValue: "1"
        - identifier: SecondaryObjective
          numericValue: "2"
        - identifier: TravelObjective
          numericValue: "3"
        - identifier: PublicEventObjective
          numericValue: "4"
        - identifier: AmmoCache
          numericValue: "5"
        - identifier: PointTypeFlag
          numericValue: "6"
        - identifier: CapturePoint
          numericValue: "7"
        - identifier: DefensiveEncounter
          numericValue: "8"
        - identifier: GhostInteraction
          numericValue: "9"
        - identifier: KillAi
          numericValue: "10"
        - identifier: QuestItem
          numericValue: "11"
        - identifier: PatrolMission
          numericValue: "12"
        - identifier: Incoming
          numericValue: "13"
        - identifier: ArenaObjective
          numericValue: "14"
        - identifier: AutomationHint
          numericValue: "15"
        - identifier: TrackedQuest
          numericValue: "16"
    schema61:
      description: Activity Modes are grouped into a few possible broad categories.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - description: Activities that are neither PVP nor PVE, such as social activities.
          identifier: None
          numericValue: "0"
        - description: PvE activities, where you shoot aliens in the face.
          identifier: PvE
          numericValue: "1"
        - description: PvP activities, where you shoot your "friends".
          identifier: PvP
          numericValue: "2"
        - description: PVE competitive activities, where you shoot whoever you want whenever you want. Or run around collecting small glowing triangles.
          identifier: PvECompetitive
          numericValue: "3"
    schema62:
      description: Represents a potential state of an Activity Graph node.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Hidden
          numericValue: "0"
        - identifier: Visible
          numericValue: "1"
        - identifier: Teaser
          numericValue: "2"
        - identifier: Incomplete
          numericValue: "3"
        - identifier: Completed
          numericValue: "4"
    schema63:
      description: BNet's custom categorization of reward sources. We took a look at the existing ways that items could be spawned, and tried to make high-level categorizations of them. This needs to be re-evaluated for Destiny 2.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - description: The source doesn't fit well into any of the other types.
          identifier: None
          numericValue: "0"
        - description: The source is directly related to the rewards gained by playing an activity or set of activities. This currently includes Quests and other action in-game.
          identifier: Activity
          numericValue: "1"
        - description: This source is directly related to items that Vendors sell.
          identifier: Vendor
          numericValue: "2"
        - description: 'This source is a custom aggregation of items that can be earned in many ways, but that share some other property in common that is useful to share. For instance, in Destiny 1 we would make "Reward Sources" for every game expansion: that way, you could search reward sources to see what items became available with any given Expansion.'
          identifier: Aggregate
          numericValue: "3"
    schema64:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Default
          numericValue: "0"
        - identifier: Category
          numericValue: "1"
        - identifier: Collectibles
          numericValue: "2"
        - identifier: Records
          numericValue: "3"
        - identifier: Metric
          numericValue: "4"
        - identifier: Craftable
          numericValue: "5"
    schema65:
      description: There's a lot of places where we need to know scope on more than just a profile or character level. For everything else, there's this more generic sense of scope.
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Profile
          numericValue: "0"
        - identifier: Character
          numericValue: "1"
    schema66:
      description: A hint for how the presentation node should be displayed when shown in a list. How you use this is your UI is up to you.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
      format: int32
      type: integer
      x-enum-values:
        - description: Display the item as a category, through which sub-items are filtered.
          identifier: Category
          numericValue: "0"
        - identifier: Badge
          numericValue: "1"
        - identifier: Medals
          numericValue: "2"
        - identifier: Collectible
          numericValue: "3"
        - identifier: Record
          numericValue: "4"
        - identifier: SeasonalTriumph
          numericValue: "5"
        - identifier: GuardianRank
          numericValue: "6"
    schema67:
      description: A hint for what screen should be shown when this presentation node is clicked into. How you use this is your UI is up to you.
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - description: Use the "default" view for the presentation nodes.
          identifier: Default
          numericValue: "0"
        - description: Show sub-items as "category sets". In-game, you'd see these as a vertical list of child presentation nodes - armor sets for example - and the icons of items within those sets displayed horizontally.
          identifier: CategorySets
          numericValue: "1"
        - description: Show sub-items as Badges. (I know, I know. We don't need no stinkin' badges har har har)
          identifier: Badge
          numericValue: "2"
    schema68:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Integer
          numericValue: "0"
        - identifier: Percentage
          numericValue: "1"
        - identifier: Milliseconds
          numericValue: "2"
        - identifier: Boolean
          numericValue: "3"
        - identifier: Decimal
          numericValue: "4"
    schema69:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Record
          numericValue: "1"
        - identifier: Lore
          numericValue: "2"
        - identifier: Badge
          numericValue: "3"
        - identifier: MetaRecord
          numericValue: "4"
        - identifier: MedalComplete
          numericValue: "5"
        - identifier: SeasonChallengeComplete
          numericValue: "6"
        - identifier: GildedTitleComplete
          numericValue: "7"
        - identifier: CraftingRecipeUnlocked
          numericValue: "8"
        - identifier: ToastGuardianRankDetails
          numericValue: "9"
    schema7:
      description: The types of membership the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.MembershipType.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "10"
        - "254"
        - "-1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: TigerXbox
          numericValue: "1"
        - identifier: TigerPsn
          numericValue: "2"
        - identifier: TigerSteam
          numericValue: "3"
        - identifier: TigerBlizzard
          numericValue: "4"
        - identifier: TigerStadia
          numericValue: "5"
        - identifier: TigerEgs
          numericValue: "6"
        - identifier: TigerDemon
          numericValue: "10"
        - identifier: BungieNext
          numericValue: "254"
        - description: '"All" is only valid for searching capabilities: you need to pass the actual matching BungieMembershipType for any query where you pass a known membershipId.'
          identifier: All
          numericValue: "-1"
    schema70:
      description: If the plug has a specific custom style, this enumeration will represent that style/those styles.
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Masterwork
          numericValue: "1"
    schema71:
      description: "This enum determines whether the plug is available to be inserted.\r

        - Normal means that all existing rules for plug insertion apply.\r

        - UnavailableIfSocketContainsMatchingPlugCategory means that the plug is only available if the socket does NOT match the plug category.\r

        - AvailableIfSocketContainsMatchingPlugCategory means that the plug is only available if the socket DOES match the plug category.\r

        For category matching, use the plug's \"plugCategoryIdentifier\" property, comparing it to"
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Normal
          numericValue: "0"
        - identifier: UnavailableIfSocketContainsMatchingPlugCategory
          numericValue: "1"
        - identifier: AvailableIfSocketContainsMatchingPlugCategory
          numericValue: "2"
    schema72:
      description: Represents the socket energy types for Armor 2.0, Ghosts 2.0, and Stasis subclasses.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Any
          numericValue: "0"
        - identifier: Arc
          numericValue: "1"
        - identifier: Thermal
          numericValue: "2"
        - identifier: Void
          numericValue: "3"
        - identifier: Ghost
          numericValue: "4"
        - identifier: Subclass
          numericValue: "5"
        - identifier: Stasis
          numericValue: "6"
    schema73:
      description: "Indicates how a socket is populated, and where you should look for valid plug data.\r

        \ This is a flags enumeration/bitmask field, as you may have to look in multiple sources across multiple components for valid plugs.\r

        \ For instance, a socket could have plugs that are sourced from its own definition, as well as plugs that are sourced from Character-scoped AND profile-scoped Plug Sets. Only by combining plug data for every indicated source will you be able to know all of the plugs available for a socket."
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
      format: int32
      type: integer
      x-enum-values:
        - description: If there's no way we can detect to insert new plugs.
          identifier: None
          numericValue: "0"
        - description: "Use plugs found in the player's inventory, based on the socket type rules (see DestinySocketTypeDefinition for more info)\r

            Note that a socket - like Shaders - can have *both* reusable plugs and inventory items inserted theoretically."
          identifier: InventorySourced
          numericValue: "1"
        - description: "Use the DestinyItemSocketsComponent.sockets.reusablePlugs property to determine which plugs are valid for this socket. This may have to be combined with other sources, such as plug sets, if those flags are set.\r

            \ Note that \"Reusable\" plugs may not necessarily come from a plug set, nor from the \"reusablePlugItems\" in the socket's Definition data. They can sometimes be \"randomized\" in which case the only source of truth at the moment is still the runtime DestinyItemSocketsComponent.sockets.reusablePlugs property."
          identifier: ReusablePlugItems
          numericValue: "2"
        - description: Use the ProfilePlugSets (DestinyProfileResponse.profilePlugSets) component data to determine which plugs are valid for this socket.
          identifier: ProfilePlugSet
          numericValue: "4"
        - description: Use the CharacterPlugSets (DestinyProfileResponse.characterPlugSets) component data to determine which plugs are valid for this socket.
          identifier: CharacterPlugSet
          numericValue: "8"
    schema74:
      description: Indicates how a perk should be shown, or if it should be, in the game UI. Maybe useful for those of you trying to filter out internal-use-only perks (or for those of you trying to figure out what they do!)
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Visible
          numericValue: "0"
        - identifier: Disabled
          numericValue: "1"
        - identifier: Hidden
          numericValue: "2"
    schema75:
      description: Represents the different kinds of acquisition behavior for progression reward items.
      enum:
        - "0"
        - "1"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Instant
          numericValue: "0"
        - identifier: PlayerClaimRequired
          numericValue: "1"
    schema76:
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Applicant
          numericValue: "1"
        - identifier: Invitee
          numericValue: "2"
    schema77:
      enum:
        - "0"
        - "1"
        - "2"
      format: uint8
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Casual
          numericValue: "1"
        - identifier: Professional
          numericValue: "2"
    schema78:
      enum:
        - "0"
        - "1"
        - "2"
      format: uint8
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: FamilyFriendly
          numericValue: "1"
        - identifier: Rowdy
          numericValue: "2"
    schema79:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: int32
      type: integer
      x-enum-values:
        - identifier: All
          numericValue: "0"
        - identifier: PastDay
          numericValue: "1"
        - identifier: PastWeek
          numericValue: "2"
        - identifier: PastMonth
          numericValue: "3"
        - identifier: PastYear
          numericValue: "4"
    schema8:
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
      format: int32
      type: integer
      x-enum-values:
        - identifier: NotIgnored
          numericValue: "0"
        - identifier: IgnoredUser
          numericValue: "1"
        - identifier: IgnoredGroup
          numericValue: "2"
        - identifier: IgnoredByGroup
          numericValue: "4"
        - identifier: IgnoredPost
          numericValue: "8"
        - identifier: IgnoredTag
          numericValue: "16"
        - identifier: IgnoredGlobal
          numericValue: "32"
    schema80:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Name
          numericValue: "0"
        - identifier: Date
          numericValue: "1"
        - identifier: Popularity
          numericValue: "2"
        - identifier: Id
          numericValue: "3"
    schema81:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Week
          numericValue: "1"
        - identifier: TwoWeeks
          numericValue: "2"
        - identifier: ThreeWeeks
          numericValue: "3"
        - identifier: Month
          numericValue: "4"
        - identifier: ThreeMonths
          numericValue: "5"
        - identifier: SixMonths
          numericValue: "6"
        - identifier: Year
          numericValue: "7"
        - identifier: Forever
          numericValue: "8"
        - identifier: ThreeMinutes
          numericValue: "9"
        - identifier: Hour
          numericValue: "10"
        - identifier: ThirtyDays
          numericValue: "11"
    schema82:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Unresolved
          numericValue: "0"
        - identifier: Accepted
          numericValue: "1"
        - identifier: Denied
          numericValue: "2"
        - identifier: Rescinded
          numericValue: "3"
    schema83:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: NotBound
          numericValue: "0"
        - identifier: BoundToCharacter
          numericValue: "1"
        - identifier: BoundToAccount
          numericValue: "2"
        - identifier: BoundToGuild
          numericValue: "3"
    schema84:
      description: Whether you can transfer an item, and why not if you can't.
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
      format: int32
      type: integer
      x-enum-values:
        - description: The item can be transferred.
          identifier: CanTransfer
          numericValue: "0"
        - description: You can't transfer the item because it is equipped on a character.
          identifier: ItemIsEquipped
          numericValue: "1"
        - description: The item is defined as not transferrable in its DestinyInventoryItemDefinition.nonTransferrable property.
          identifier: NotTransferrable
          numericValue: "2"
        - description: You could transfer the item, but the place you're trying to put it has run out of room! Check your remaining Vault and/or character space.
          identifier: NoRoomInDestination
          numericValue: "4"
    schema85:
      description: A flags enumeration/bitmask where each bit represents a different possible state that the item can be in that may effect how the item is displayed to the user and what actions can be performed against it.
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - description: If this bit is set, the item has been "locked" by the user and cannot be deleted. You may want to represent this visually with a "lock" icon.
          identifier: Locked
          numericValue: "1"
        - description: If this bit is set, the item is a quest that's being tracked by the user. You may want a visual indicator to show that this is a tracked quest.
          identifier: Tracked
          numericValue: "2"
        - description: If this bit is set, the item has a Masterwork plug inserted. This usually coincides with having a special "glowing" effect applied to the item's icon.
          identifier: Masterwork
          numericValue: "4"
        - description: If this bit is set, the item has been 'crafted' by the player. You may want to represent this visually with a "crafted" icon overlay.
          identifier: Crafted
          numericValue: "8"
        - description: If this bit is set, the item has a 'highlighted' objective. You may want to represent this with an orange-red icon border color.
          identifier: HighlightedObjective
          numericValue: "16"
    schema86:
      description: A set of flags for reason(s) why the component populated in the way that it did. Inspect the individual flags for the reasons.
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Public
          numericValue: "1"
        - identifier: Private
          numericValue: "2"
    schema87:
      description: A flags enumeration/bitmask indicating the versions of the game that a given user has purchased.
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
        - "128"
        - "256"
        - "512"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Destiny2
          numericValue: "1"
        - identifier: DLC1
          numericValue: "2"
        - identifier: DLC2
          numericValue: "4"
        - identifier: Forsaken
          numericValue: "8"
        - identifier: YearTwoAnnualPass
          numericValue: "16"
        - identifier: Shadowkeep
          numericValue: "32"
        - identifier: BeyondLight
          numericValue: "64"
        - identifier: Anniversary30th
          numericValue: "128"
        - identifier: TheWitchQueen
          numericValue: "256"
        - identifier: Lightfall
          numericValue: "512"
    schema88:
      description: I know this doesn't look like a Flags Enumeration/bitmask right now, but I assure you it is. This is the possible states that a Presentation Node can be in, and it is almost certain that its potential states will increase in the future. So don't treat it like a straight up enumeration.
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - description: If this is set, the game recommends that you not show this node. But you know your life, do what you've got to do.
          identifier: Invisible
          numericValue: "1"
        - description: Turns out Presentation Nodes can also be obscured. If they are, this is set.
          identifier: Obscured
          numericValue: "2"
    schema89:
      description: A Flags enumeration/bitmask where each bit represents a possible state that a Record/Triumph can be in.
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
      format: int32
      type: integer
      x-enum-values:
        - description: If there are no flags set, the record is in a state where it *could* be redeemed, but it has not been yet.
          identifier: None
          numericValue: "0"
        - description: If this is set, the completed record has been redeemed.
          identifier: RecordRedeemed
          numericValue: "1"
        - description: If this is set, there's a reward available from this Record but it's unavailable for redemption.
          identifier: RewardUnavailable
          numericValue: "2"
        - description: If this is set, the objective for this Record has not yet been completed.
          identifier: ObjectiveNotCompleted
          numericValue: "4"
        - description: If this is set, the game recommends that you replace the display text of this Record with DestinyRecordDefinition.stateInfo.obscuredString.
          identifier: Obscured
          numericValue: "8"
        - description: If this is set, the game recommends that you not show this record. Do what you will with this recommendation.
          identifier: Invisible
          numericValue: "16"
        - description: If this is set, you can't complete this record because you lack some permission that's required to complete it.
          identifier: EntitlementUnowned
          numericValue: "32"
        - description: If this is set, the record has a title (check DestinyRecordDefinition for title info) and you can equip it.
          identifier: CanEquipTitle
          numericValue: "64"
    schema9:
      description: The types of credentials the Accounts system supports. This is the external facing enum used in place of the internal-only Bungie.SharedDefinitions.CredentialType.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "8"
        - "9"
        - "10"
        - "12"
        - "14"
        - "16"
        - "18"
        - "20"
      format: uint8
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - identifier: Xuid
          numericValue: "1"
        - identifier: Psnid
          numericValue: "2"
        - identifier: Wlid
          numericValue: "3"
        - identifier: Fake
          numericValue: "4"
        - identifier: Facebook
          numericValue: "5"
        - identifier: Google
          numericValue: "8"
        - identifier: Windows
          numericValue: "9"
        - identifier: DemonId
          numericValue: "10"
        - identifier: SteamId
          numericValue: "12"
        - identifier: BattleNetId
          numericValue: "14"
        - identifier: StadiaId
          numericValue: "16"
        - identifier: TwitchId
          numericValue: "18"
        - identifier: EgsId
          numericValue: "20"
    schema90:
      description: "A Flags Enumeration/bitmask where each bit represents a different state that the Collectible can be in. A collectible can be in any number of these states, and you can choose to use or ignore any or all of them when making your own UI that shows Collectible info. Our displays are going to honor them, but we're also the kind of people who only pretend to inhale before quickly passing it to the left. So, you know, do what you got to do.\r

        (All joking aside, please note the caveat I mention around the Invisible flag: there are cases where it is in the best interest of your users to honor these flags even if you're a \"show all the data\" person. Collector-oriented compulsion is a very unfortunate and real thing, and I would hate to instill that compulsion in others through showing them items that they cannot earn. Please consider this when you are making your own apps/sites.)"
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - description: If this flag is set, you have not yet obtained this collectible.
          identifier: NotAcquired
          numericValue: "1"
        - description: 'If this flag is set, the item is "obscured" to you: you can/should use the alternate item hash found in DestinyCollectibleDefinition.stateInfo.obscuredOverrideItemHash when displaying this collectible instead of the default display info.'
          identifier: Obscured
          numericValue: "2"
        - description: "If this flag is set, the collectible should not be shown to the user.\r

            Please do consider honoring this flag. It is used - for example - to hide items that a person didn't get from the Eververse. I can't prevent these from being returned in definitions, because some people may have acquired them and thus they should show up: but I would hate for people to start feeling some variant of a Collector's Remorse about these items, and thus increasing their purchasing based on that compulsion. That would be a very unfortunate outcome, and one that I wouldn't like to see happen. So please, whether or not I'm your mom, consider honoring this flag and don't show people invisible collectibles."
          identifier: Invisible
          numericValue: "4"
        - description: If this flag is set, the collectible requires payment for creating an instance of the item, and you are lacking in currency. Bring the benjamins next time. Or spinmetal. Whatever.
          identifier: CannotAffordMaterialRequirements
          numericValue: "8"
        - description: If this flag is set, you can't pull this item out of your collection because there's no room left in your inventory.
          identifier: InventorySpaceUnavailable
          numericValue: "16"
        - description: If this flag is set, you already have one of these items and can't have a second one.
          identifier: UniquenessViolation
          numericValue: "32"
        - description: If this flag is set, the ability to pull this item out of your collection has been disabled.
          identifier: PurchaseDisabled
          numericValue: "64"
    schema91:
      description: A flags enumeration that represents a Fireteam Member's status.
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - description: This one's pretty obvious - they're on your Fireteam.
          identifier: FireteamMember
          numericValue: "1"
        - description: I don't know what it means to be in a 'Posse', but apparently this is it.
          identifier: PosseMember
          numericValue: "2"
        - description: "Nor do I understand the difference between them being in a 'Group' vs. a 'Fireteam'.\r

            I'll update these docs once I get more info. If I get more info. If you're reading this, I never got more info. You're on your own, kid."
          identifier: GroupMember
          numericValue: "4"
        - description: This person is the party leader.
          identifier: PartyLeader
          numericValue: "8"
    schema92:
      description: A player can choose to restrict requests to join their Fireteam to specific states. These are the possible states a user can choose.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Open
          numericValue: "0"
        - identifier: ClanAndFriendsOnly
          numericValue: "1"
        - identifier: FriendsOnly
          numericValue: "2"
        - identifier: InvitationOnly
          numericValue: "3"
        - identifier: Closed
          numericValue: "4"
    schema93:
      description: A Flags enumeration representing the reasons why a person can't join this user's fireteam.
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32768"
      format: int32
      type: integer
      x-enum-values:
        - identifier: None
          numericValue: "0"
        - description: The user is currently in matchmaking.
          identifier: InMatchmaking
          numericValue: "1"
        - description: The user is currently in a loading screen.
          identifier: Loading
          numericValue: "2"
        - description: The user is in an activity that requires solo play.
          identifier: SoloMode
          numericValue: "4"
        - description: The user can't be joined for one of a variety of internal reasons. Basically, the game can't let you join at this time, but for reasons that aren't under the control of this user.
          identifier: InternalReasons
          numericValue: "8"
        - description: The user's current activity/quest/other transitory game state is preventing joining.
          identifier: DisallowedByGameState
          numericValue: "16"
        - description: The user appears to be offline.
          identifier: Offline
          numericValue: "32768"
    schema94:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Human
          numericValue: "0"
        - identifier: Awoken
          numericValue: "1"
        - identifier: Exo
          numericValue: "2"
        - identifier: Unknown
          numericValue: "3"
    schema95:
      description: "A hint for the UI as to what display information ought to be shown. Defaults to showing the static MilestoneDefinition's display properties.\r

        \ If for some reason the indicated property is not populated, fall back to the MilestoneDefinition.displayProperties."
      enum:
        - "0"
        - "1"
        - "2"
      format: int32
      type: integer
      x-enum-values:
        - description: Indicates you should show DestinyMilestoneDefinition.displayProperties for this Milestone.
          identifier: MilestoneDefinition
          numericValue: "0"
        - description: Indicates you should show the displayProperties for any currently active Quest Steps in DestinyMilestone.availableQuests.
          identifier: CurrentQuestSteps
          numericValue: "1"
        - description: Indicates you should show the displayProperties for any currently active Activities and their Challenges in DestinyMilestone.activities.
          identifier: CurrentActivityChallenges
          numericValue: "2"
    schema96:
      description: The type of milestone. Milestones can be Tutorials, one-time/triggered/non-repeating but not necessarily tutorials, or Repeating Milestones.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Unknown
          numericValue: "0"
        - description: One-time milestones that are specifically oriented toward teaching players about new mechanics and gameplay modes.
          identifier: Tutorial
          numericValue: "1"
        - description: Milestones that, once completed a single time, can never be repeated.
          identifier: OneTime
          numericValue: "2"
        - description: Milestones that repeat/reset on a weekly basis. They need not all reset on the same day or time, but do need to reset weekly to qualify for this type.
          identifier: Weekly
          numericValue: "3"
        - description: Milestones that repeat or reset on a daily basis.
          identifier: Daily
          numericValue: "4"
        - description: Special indicates that the event is not on a daily/weekly cadence, but does occur more than once. For instance, Iron Banner in Destiny 1 or the Dawning were examples of what could be termed "Special" events.
          identifier: Special
          numericValue: "5"
    schema97:
      description: An enumeration representing the potential difficulty levels of an activity. Their names are... more qualitative than quantitative.
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Trivial
          numericValue: "0"
        - identifier: Easy
          numericValue: "1"
        - identifier: Normal
          numericValue: "2"
        - identifier: Challenging
          numericValue: "3"
        - identifier: Hard
          numericValue: "4"
        - identifier: Brave
          numericValue: "5"
        - identifier: AlmostImpossible
          numericValue: "6"
        - identifier: Impossible
          numericValue: "7"
    schema98:
      description: The reasons why an item cannot be equipped, if any. Many flags can be set, or "None" if
      enum:
        - "0"
        - "1"
        - "2"
        - "4"
        - "8"
        - "16"
        - "32"
        - "64"
        - "128"
      format: int32
      type: integer
      x-enum-values:
        - description: The item is/was able to be equipped.
          identifier: None
          numericValue: "0"
        - description: This is not the kind of item that can be equipped. Did you try equipping Glimmer or something?
          identifier: ItemUnequippable
          numericValue: "1"
        - description: This item is part of a "unique set", and you can't have more than one item of that same set type equipped at once. For instance, if you already have an Exotic Weapon equipped, you can't equip a second one in another weapon slot.
          identifier: ItemUniqueEquipRestricted
          numericValue: "2"
        - description: This item has state-based gating that prevents it from being equipped in certain circumstances. For instance, an item might be for Warlocks only and you're a Titan, or it might require you to have beaten some special quest that you haven't beaten yet. Use the additional failure data passed on the item itself to get more information about what the specific failure case was (See DestinyInventoryItemDefinition and DestinyItemInstanceComponent)
          identifier: ItemFailedUnlockCheck
          numericValue: "4"
        - description: This item requires you to have reached a specific character level in order to equip it, and you haven't reached that level yet.
          identifier: ItemFailedLevelCheck
          numericValue: "8"
        - description: "This item is 'wrapped' and must be unwrapped before being equipped. NOTE: This value used to be called ItemNotOnCharacter but that is no longer accurate."
          identifier: ItemWrapped
          numericValue: "16"
        - description: This item is not yet loaded and cannot be equipped yet.
          identifier: ItemNotLoaded
          numericValue: "32"
        - description: This item is block-listed and cannot be equipped.
          identifier: ItemEquipBlocklisted
          numericValue: "64"
        - description: This item does not meet the loadout requirements for the current activity
          identifier: ItemLoadoutRequirementNotMet
          numericValue: "128"
    schema99:
      enum:
        - "0"
        - "1"
        - "2"
        - "3"
        - "4"
        - "5"
        - "6"
        - "7"
        - "8"
        - "9"
        - "10"
        - "11"
        - "12"
        - "13"
      format: int32
      type: integer
      x-enum-values:
        - identifier: Invalid
          numericValue: "0"
        - identifier: CanUpgrade
          numericValue: "1"
        - identifier: NoPoints
          numericValue: "2"
        - identifier: NoPrerequisites
          numericValue: "3"
        - identifier: NoSteps
          numericValue: "4"
        - identifier: NoUnlock
          numericValue: "5"
        - identifier: NoMaterial
          numericValue: "6"
        - identifier: NoGridLevel
          numericValue: "7"
        - identifier: SwappingLocked
          numericValue: "8"
        - identifier: MustSwap
          numericValue: "9"
        - identifier: Complete
          numericValue: "10"
        - identifier: Unknown
          numericValue: "11"
        - identifier: CreationOnly
          numericValue: "12"
        - identifier: Hidden
          numericValue: "13"
  securitySchemes:
    apiKey:
      description: Every request requires an API key.  To get an API key, register a new application at https://www.bungie.net/en/Application.
      in: header
      name: X-API-Key
      type: apiKey
    oauth2:
      description: For requests that require Authentication, you will need to have your users authenticate via our OAuth mechanisms.  See https://github.com/Bungie-net/api/wiki/OAuth-Documentation for more details.
      flows:
        authorizationCode:
          authorizationUrl: https://www.bungie.net/en/OAuth/Authorize
          scopes:
            AdminGroups: "Administer Group/Clan Forums, Wall, and Members for groups and clans that the \r

              user is a founder or an administrator."
            AdvancedWriteActions: Can perform actions that will result in a prompt to the user via the Destiny app.
            BnetWrite: "Create new groups, clans, and forum posts, along with other actions that are reserved for Bungie.net\r

              elevated scope: not meant to be used by third party applications."
            DestinyUnlockValueQuery: Allows an app to query sensitive information like unlock flags and values not available through normal methods.
            EditUserData: Edit user data such as preferred language, status, motto, avatar selection and theme.
            MoveEquipDestinyItems: Move or equip Destiny items
            PartnerOfferGrant: Can use the partner offer api to claim rewards defined for a partner
            ReadAndApplyTokens: Read offer history and claim and apply tokens for the user.
            ReadBasicUserProfile: Read basic user profile information such as the user's handle, avatar icon, etc.
            ReadDestinyInventoryAndVault: "Read Destiny 1 Inventory and Vault contents.\r

              For Destiny 2, this scope is needed to read anything regarded as private. This is the only scope a\r

              Destiny 2 app needs for read operations against Destiny 2 data such as inventory, vault, currency,\r

              vendors, milestones, progression, etc."
            ReadDestinyVendorsAndAdvisors: Access vendor and advisor data specific to a user. OBSOLETE. This scope is only used on the Destiny 1 API.
            ReadGroups: "Read Group/Clan Forums, Wall, and Members for groups and clans that the \r

              user has joined."
            ReadUserData: "Read user data such as who they are web notifications, \r

              clan/group memberships, recent activity, muted users."
            UserPiiRead: Allows an app to query sensitive user PII, most notably email information.
            WriteGroups: "Write Group/Clan Forums, Wall, and Members for groups and clans that the \r

              user has joined."
          tokenUrl: https://www.bungie.net/Platform/App/OAuth/token/
      type: oauth2
