openapi: 3.0.3
info:
  title: dddice
  description: ''
  version: 1.0.0
servers:
  -
    url: 'https://dddice.com'
paths:
  /api/1.0/theme:
    get:
      summary: 'List Themes'
      operationId: listThemes
      description: "Fetch a list of themes. Only the most recent version of each theme is returned\nwhere the \"most recent\" is determined by [SemVer 2.0.0](https://semver.org/spec/v2.0.0.html)"
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  type: 'theme[]'
                  data:
                    -
                      meshes:
                        d4: /mesh/d04.fbx
                        d6: /mesh/d06.fbx
                        d8: /mesh/d08.fbx
                        d10: /mesh/d10.fbx
                        d10x: /mesh/d10.fbx
                        d12: /mesh/d12.fbx
                        d20: /mesh/d20.fbx
                      available_dice:
                        - d4
                        - d6
                        - d8
                        - d10
                        - d10x
                        - d12
                        - d20
                      physics:
                        inertia:
                          d4: 5
                          d6: 12
                          d8: 10
                          d10: 9
                          d10x: 9
                          d12: 8
                          d20: 6
                        weight:
                          d4: 300
                          d6: 300
                          d8: 340
                          d10: 350
                          d10x: 350
                          d12: 350
                          d20: 400
                      sizes:
                        d4: 1
                        d6: 1
                        d8: 1
                        d10: 1
                        d10x: 1
                        d12: 1
                        d20: 1
                      sounds:
                        -
                          src: /sounds/roll-1.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-2.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-3.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-loading-sm.mp3
                          'on': roll.loading
                          value: 2
                        -
                          src: /sounds/roll-loading-lg.mp3
                          'on': roll.loading
                          value: '>=3'
                      uniforms:
                        number:
                          type: color
                          value:
                            b: 0
                            g: 0.424
                            r: 0.463
                        diffuse:
                          type: color
                          value:
                            b: 0
                            g: 0.929
                            r: 1
                      values:
                        d4:
                          - 1
                          - 2
                          - 3
                          - 4
                        d6:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                        d8:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                        d10:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                        d12:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                          - 11
                          - 12
                        d20:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                          - 11
                          - 12
                          - 13
                          - 14
                          - 15
                          - 16
                          - 17
                          - 18
                          - 19
                          - 20
                        d10x:
                          - 10
                          - 20
                          - 30
                          - 40
                          - 50
                          - 60
                          - 70
                          - 80
                          - 90
                          - 0
                      id: quaerat-non
                      name: Prof.
                      label:
                        color: '#000000'
                        background_color: '#e3d12d'
                      version: 1.0.0
                      textures:
                        -
                          src:
                            d4: u_numberMap.png
                            d6: u_numberMap.png
                            d8: u_numberMap.png
                            d10: u_numberMap.png
                            d12: u_numberMap.png
                            d20: u_numberMap.png
                            d10x: u_numberMap_d10x.png
                          binding: u_numberMap
                      api_version: '1.0'
                      description: 'Ea nostrum magni hic nemo cumque quisquam. Qui et ex omnis. Unde repudiandae sunt aut vel cumque. Expedita alias nobis ex.'
                      user:
                        username: chad.ankunding
                        uuid: f11fd28e-ed6e-3565-9aee-05e43aee9505
                        name: 'Sienna Ortiz'
                        created_at: '2026-03-01T20:13:35.000000Z'
                        updated_at: '2026-03-01T20:13:35.000000Z'
                        subscription: false
                        is_merchant: false
                        is_registered: false
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                    -
                      meshes:
                        d4: /mesh/d04.fbx
                        d6: /mesh/d06.fbx
                        d8: /mesh/d08.fbx
                        d10: /mesh/d10.fbx
                        d10x: /mesh/d10.fbx
                        d12: /mesh/d12.fbx
                        d20: /mesh/d20.fbx
                      available_dice:
                        - d4
                        - d6
                        - d8
                        - d10
                        - d10x
                        - d12
                        - d20
                      physics:
                        inertia:
                          d4: 5
                          d6: 12
                          d8: 10
                          d10: 9
                          d10x: 9
                          d12: 8
                          d20: 6
                        weight:
                          d4: 300
                          d6: 300
                          d8: 340
                          d10: 350
                          d10x: 350
                          d12: 350
                          d20: 400
                      sizes:
                        d4: 1
                        d6: 1
                        d8: 1
                        d10: 1
                        d10x: 1
                        d12: 1
                        d20: 1
                      sounds:
                        -
                          src: /sounds/roll-1.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-2.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-3.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-loading-sm.mp3
                          'on': roll.loading
                          value: 2
                        -
                          src: /sounds/roll-loading-lg.mp3
                          'on': roll.loading
                          value: '>=3'
                      uniforms:
                        number:
                          type: color
                          value:
                            b: 0
                            g: 0.424
                            r: 0.463
                        diffuse:
                          type: color
                          value:
                            b: 0
                            g: 0.929
                            r: 1
                      values:
                        d4:
                          - 1
                          - 2
                          - 3
                          - 4
                        d6:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                        d8:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                        d10:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                        d12:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                          - 11
                          - 12
                        d20:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                          - 11
                          - 12
                          - 13
                          - 14
                          - 15
                          - 16
                          - 17
                          - 18
                          - 19
                          - 20
                        d10x:
                          - 10
                          - 20
                          - 30
                          - 40
                          - 50
                          - 60
                          - 70
                          - 80
                          - 90
                          - 0
                      id: dolores-omnis-sint
                      name: Prof.
                      label:
                        color: '#000000'
                        background_color: '#e3d12d'
                      version: 1.0.0
                      textures:
                        -
                          src:
                            d4: u_numberMap.png
                            d6: u_numberMap.png
                            d8: u_numberMap.png
                            d10: u_numberMap.png
                            d12: u_numberMap.png
                            d20: u_numberMap.png
                            d10x: u_numberMap_d10x.png
                          binding: u_numberMap
                      api_version: '1.0'
                      description: 'Dolore ipsam nostrum deleniti beatae quis. Totam nihil distinctio assumenda perspiciatis quia. Iure ad possimus hic perspiciatis aliquid nesciunt modi. Id ut eius qui labore laborum rem minima quis.'
                      user:
                        username: rcruickshank
                        uuid: 7a569131-712c-3690-9e57-3046670174b3
                        name: 'Prof. Nova Renner Jr.'
                        created_at: '2026-03-01T20:13:35.000000Z'
                        updated_at: '2026-03-01T20:13:35.000000Z'
                        subscription: false
                        is_merchant: false
                        is_registered: false
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                properties:
                  type:
                    type: string
                    example: 'theme[]'
                  data:
                    type: array
                    example:
                      -
                        meshes:
                          d4: /mesh/d04.fbx
                          d6: /mesh/d06.fbx
                          d8: /mesh/d08.fbx
                          d10: /mesh/d10.fbx
                          d10x: /mesh/d10.fbx
                          d12: /mesh/d12.fbx
                          d20: /mesh/d20.fbx
                        available_dice:
                          - d4
                          - d6
                          - d8
                          - d10
                          - d10x
                          - d12
                          - d20
                        physics:
                          inertia:
                            d4: 5
                            d6: 12
                            d8: 10
                            d10: 9
                            d10x: 9
                            d12: 8
                            d20: 6
                          weight:
                            d4: 300
                            d6: 300
                            d8: 340
                            d10: 350
                            d10x: 350
                            d12: 350
                            d20: 400
                        sizes:
                          d4: 1
                          d6: 1
                          d8: 1
                          d10: 1
                          d10x: 1
                          d12: 1
                          d20: 1
                        sounds:
                          -
                            src: /sounds/roll-1.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-2.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-3.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-loading-sm.mp3
                            'on': roll.loading
                            value: 2
                          -
                            src: /sounds/roll-loading-lg.mp3
                            'on': roll.loading
                            value: '>=3'
                        uniforms:
                          number:
                            type: color
                            value:
                              b: 0
                              g: 0.424
                              r: 0.463
                          diffuse:
                            type: color
                            value:
                              b: 0
                              g: 0.929
                              r: 1
                        values:
                          d4:
                            - 1
                            - 2
                            - 3
                            - 4
                          d6:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                          d8:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                          d10:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                          d12:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                            - 11
                            - 12
                          d20:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                            - 11
                            - 12
                            - 13
                            - 14
                            - 15
                            - 16
                            - 17
                            - 18
                            - 19
                            - 20
                          d10x:
                            - 10
                            - 20
                            - 30
                            - 40
                            - 50
                            - 60
                            - 70
                            - 80
                            - 90
                            - 0
                        id: quaerat-non
                        name: Prof.
                        label:
                          color: '#000000'
                          background_color: '#e3d12d'
                        version: 1.0.0
                        textures:
                          -
                            src:
                              d4: u_numberMap.png
                              d6: u_numberMap.png
                              d8: u_numberMap.png
                              d10: u_numberMap.png
                              d12: u_numberMap.png
                              d20: u_numberMap.png
                              d10x: u_numberMap_d10x.png
                            binding: u_numberMap
                        api_version: '1.0'
                        description: 'Ea nostrum magni hic nemo cumque quisquam. Qui et ex omnis. Unde repudiandae sunt aut vel cumque. Expedita alias nobis ex.'
                        user:
                          username: chad.ankunding
                          uuid: f11fd28e-ed6e-3565-9aee-05e43aee9505
                          name: 'Sienna Ortiz'
                          created_at: '2026-03-01T20:13:35.000000Z'
                          updated_at: '2026-03-01T20:13:35.000000Z'
                          subscription: false
                          is_merchant: false
                          is_registered: false
                        created_at: '2026-03-01T20:13:35.000000Z'
                        updated_at: '2026-03-01T20:13:35.000000Z'
                      -
                        meshes:
                          d4: /mesh/d04.fbx
                          d6: /mesh/d06.fbx
                          d8: /mesh/d08.fbx
                          d10: /mesh/d10.fbx
                          d10x: /mesh/d10.fbx
                          d12: /mesh/d12.fbx
                          d20: /mesh/d20.fbx
                        available_dice:
                          - d4
                          - d6
                          - d8
                          - d10
                          - d10x
                          - d12
                          - d20
                        physics:
                          inertia:
                            d4: 5
                            d6: 12
                            d8: 10
                            d10: 9
                            d10x: 9
                            d12: 8
                            d20: 6
                          weight:
                            d4: 300
                            d6: 300
                            d8: 340
                            d10: 350
                            d10x: 350
                            d12: 350
                            d20: 400
                        sizes:
                          d4: 1
                          d6: 1
                          d8: 1
                          d10: 1
                          d10x: 1
                          d12: 1
                          d20: 1
                        sounds:
                          -
                            src: /sounds/roll-1.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-2.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-3.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-loading-sm.mp3
                            'on': roll.loading
                            value: 2
                          -
                            src: /sounds/roll-loading-lg.mp3
                            'on': roll.loading
                            value: '>=3'
                        uniforms:
                          number:
                            type: color
                            value:
                              b: 0
                              g: 0.424
                              r: 0.463
                          diffuse:
                            type: color
                            value:
                              b: 0
                              g: 0.929
                              r: 1
                        values:
                          d4:
                            - 1
                            - 2
                            - 3
                            - 4
                          d6:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                          d8:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                          d10:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                          d12:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                            - 11
                            - 12
                          d20:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                            - 11
                            - 12
                            - 13
                            - 14
                            - 15
                            - 16
                            - 17
                            - 18
                            - 19
                            - 20
                          d10x:
                            - 10
                            - 20
                            - 30
                            - 40
                            - 50
                            - 60
                            - 70
                            - 80
                            - 90
                            - 0
                        id: dolores-omnis-sint
                        name: Prof.
                        label:
                          color: '#000000'
                          background_color: '#e3d12d'
                        version: 1.0.0
                        textures:
                          -
                            src:
                              d4: u_numberMap.png
                              d6: u_numberMap.png
                              d8: u_numberMap.png
                              d10: u_numberMap.png
                              d12: u_numberMap.png
                              d20: u_numberMap.png
                              d10x: u_numberMap_d10x.png
                            binding: u_numberMap
                        api_version: '1.0'
                        description: 'Dolore ipsam nostrum deleniti beatae quis. Totam nihil distinctio assumenda perspiciatis quia. Iure ad possimus hic perspiciatis aliquid nesciunt modi. Id ut eius qui labore laborum rem minima quis.'
                        user:
                          username: rcruickshank
                          uuid: 7a569131-712c-3690-9e57-3046670174b3
                          name: 'Prof. Nova Renner Jr.'
                          created_at: '2026-03-01T20:13:35.000000Z'
                          updated_at: '2026-03-01T20:13:35.000000Z'
                          subscription: false
                          is_merchant: false
                          is_registered: false
                        created_at: '2026-03-01T20:13:35.000000Z'
                        updated_at: '2026-03-01T20:13:35.000000Z'
                    items:
                      type: object
                      properties:
                        meshes:
                          type: object
                          properties:
                            d4:
                              type: string
                              example: /mesh/d04.fbx
                            d6:
                              type: string
                              example: /mesh/d06.fbx
                            d8:
                              type: string
                              example: /mesh/d08.fbx
                            d10:
                              type: string
                              example: /mesh/d10.fbx
                            d10x:
                              type: string
                              example: /mesh/d10.fbx
                            d12:
                              type: string
                              example: /mesh/d12.fbx
                            d20:
                              type: string
                              example: /mesh/d20.fbx
                        available_dice:
                          type: array
                          example:
                            - d4
                            - d6
                            - d8
                            - d10
                            - d10x
                            - d12
                            - d20
                          items:
                            type: string
                        physics:
                          type: object
                          properties:
                            inertia:
                              type: object
                              properties:
                                d4:
                                  type: integer
                                  example: 5
                                d6:
                                  type: integer
                                  example: 12
                                d8:
                                  type: integer
                                  example: 10
                                d10:
                                  type: integer
                                  example: 9
                                d10x:
                                  type: integer
                                  example: 9
                                d12:
                                  type: integer
                                  example: 8
                                d20:
                                  type: integer
                                  example: 6
                            weight:
                              type: object
                              properties:
                                d4:
                                  type: integer
                                  example: 300
                                d6:
                                  type: integer
                                  example: 300
                                d8:
                                  type: integer
                                  example: 340
                                d10:
                                  type: integer
                                  example: 350
                                d10x:
                                  type: integer
                                  example: 350
                                d12:
                                  type: integer
                                  example: 350
                                d20:
                                  type: integer
                                  example: 400
                        sizes:
                          type: object
                          properties:
                            d4:
                              type: integer
                              example: 1
                            d6:
                              type: integer
                              example: 1
                            d8:
                              type: integer
                              example: 1
                            d10:
                              type: integer
                              example: 1
                            d10x:
                              type: integer
                              example: 1
                            d12:
                              type: integer
                              example: 1
                            d20:
                              type: integer
                              example: 1
                        sounds:
                          type: array
                          example:
                            -
                              src: /sounds/roll-1.mp3
                              'on': die.collide
                            -
                              src: /sounds/roll-2.mp3
                              'on': die.collide
                            -
                              src: /sounds/roll-3.mp3
                              'on': die.collide
                            -
                              src: /sounds/roll-loading-sm.mp3
                              'on': roll.loading
                              value: 2
                            -
                              src: /sounds/roll-loading-lg.mp3
                              'on': roll.loading
                              value: '>=3'
                          items:
                            type: object
                            properties:
                              src:
                                type: string
                                example: /sounds/roll-1.mp3
                              'on':
                                type: string
                                example: die.collide
                        uniforms:
                          type: object
                          properties:
                            number:
                              type: object
                              properties:
                                type:
                                  type: string
                                  example: color
                                value:
                                  type: object
                                  properties:
                                    b:
                                      type: integer
                                      example: 0
                                    g:
                                      type: number
                                      example: 0.424
                                    r:
                                      type: number
                                      example: 0.463
                            diffuse:
                              type: object
                              properties:
                                type:
                                  type: string
                                  example: color
                                value:
                                  type: object
                                  properties:
                                    b:
                                      type: integer
                                      example: 0
                                    g:
                                      type: number
                                      example: 0.929
                                    r:
                                      type: integer
                                      example: 1
                        values:
                          type: object
                          properties:
                            d4:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                              items:
                                type: integer
                            d6:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                              items:
                                type: integer
                            d8:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                              items:
                                type: integer
                            d10:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                                - 9
                                - 10
                              items:
                                type: integer
                            d12:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                                - 9
                                - 10
                                - 11
                                - 12
                              items:
                                type: integer
                            d20:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                                - 9
                                - 10
                                - 11
                                - 12
                                - 13
                                - 14
                                - 15
                                - 16
                                - 17
                                - 18
                                - 19
                                - 20
                              items:
                                type: integer
                            d10x:
                              type: array
                              example:
                                - 10
                                - 20
                                - 30
                                - 40
                                - 50
                                - 60
                                - 70
                                - 80
                                - 90
                                - 0
                              items:
                                type: integer
                        id:
                          type: string
                          example: quaerat-non
                        name:
                          type: string
                          example: Prof.
                        label:
                          type: object
                          properties:
                            color:
                              type: string
                              example: '#000000'
                            background_color:
                              type: string
                              example: '#e3d12d'
                        version:
                          type: string
                          example: 1.0.0
                        textures:
                          type: array
                          example:
                            -
                              src:
                                d4: u_numberMap.png
                                d6: u_numberMap.png
                                d8: u_numberMap.png
                                d10: u_numberMap.png
                                d12: u_numberMap.png
                                d20: u_numberMap.png
                                d10x: u_numberMap_d10x.png
                              binding: u_numberMap
                          items:
                            type: object
                            properties:
                              src:
                                type: object
                                properties:
                                  d4:
                                    type: string
                                    example: u_numberMap.png
                                  d6:
                                    type: string
                                    example: u_numberMap.png
                                  d8:
                                    type: string
                                    example: u_numberMap.png
                                  d10:
                                    type: string
                                    example: u_numberMap.png
                                  d12:
                                    type: string
                                    example: u_numberMap.png
                                  d20:
                                    type: string
                                    example: u_numberMap.png
                                  d10x:
                                    type: string
                                    example: u_numberMap_d10x.png
                              binding:
                                type: string
                                example: u_numberMap
                        api_version:
                          type: string
                          example: '1.0'
                        description:
                          type: string
                          example: 'Ea nostrum magni hic nemo cumque quisquam. Qui et ex omnis. Unde repudiandae sunt aut vel cumque. Expedita alias nobis ex.'
                        user:
                          type: object
                          properties:
                            username:
                              type: string
                              example: chad.ankunding
                            uuid:
                              type: string
                              example: f11fd28e-ed6e-3565-9aee-05e43aee9505
                            name:
                              type: string
                              example: 'Sienna Ortiz'
                            created_at:
                              type: string
                              example: '2026-03-01T20:13:35.000000Z'
                            updated_at:
                              type: string
                              example: '2026-03-01T20:13:35.000000Z'
                            subscription:
                              type: boolean
                              example: false
                            is_merchant:
                              type: boolean
                              example: false
                            is_registered:
                              type: boolean
                              example: false
                        created_at:
                          type: string
                          example: '2026-03-01T20:13:35.000000Z'
                        updated_at:
                          type: string
                          example: '2026-03-01T20:13:35.000000Z'
      tags:
        - Theme
    post:
      summary: 'Create a Theme'
      operationId: createATheme
      description: 'Create a theme using a theme manifest and save to your dddice.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    meshes:
                      d4: /mesh/d04.fbx
                      d6: /mesh/d06.fbx
                      d8: /mesh/d08.fbx
                      d10: /mesh/d10.fbx
                      d10x: /mesh/d10.fbx
                      d12: /mesh/d12.fbx
                      d20: /mesh/d20.fbx
                    available_dice:
                      - d4
                      - d6
                      - d8
                      - d10
                      - d10x
                      - d12
                      - d20
                    physics:
                      inertia:
                        d4: 5
                        d6: 12
                        d8: 10
                        d10: 9
                        d10x: 9
                        d12: 8
                        d20: 6
                      weight:
                        d4: 300
                        d6: 300
                        d8: 340
                        d10: 350
                        d10x: 350
                        d12: 350
                        d20: 400
                    sizes:
                      d4: 1
                      d6: 1
                      d8: 1
                      d10: 1
                      d10x: 1
                      d12: 1
                      d20: 1
                    sounds:
                      -
                        src: /sounds/roll-1.mp3
                        'on': die.collide
                      -
                        src: /sounds/roll-2.mp3
                        'on': die.collide
                      -
                        src: /sounds/roll-3.mp3
                        'on': die.collide
                      -
                        src: /sounds/roll-loading-sm.mp3
                        'on': roll.loading
                        value: 2
                      -
                        src: /sounds/roll-loading-lg.mp3
                        'on': roll.loading
                        value: '>=3'
                    uniforms:
                      number:
                        type: color
                        value:
                          b: 0
                          g: 0.424
                          r: 0.463
                      diffuse:
                        type: color
                        value:
                          b: 0
                          g: 0.929
                          r: 1
                    values:
                      d4:
                        - 1
                        - 2
                        - 3
                        - 4
                      d6:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                      d8:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                      d10:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                      d12:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                        - 11
                        - 12
                      d20:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                        - 11
                        - 12
                        - 13
                        - 14
                        - 15
                        - 16
                        - 17
                        - 18
                        - 19
                        - 20
                      d10x:
                        - 10
                        - 20
                        - 30
                        - 40
                        - 50
                        - 60
                        - 70
                        - 80
                        - 90
                        - 0
                    id: ratione-amet-in
                    name: Dr.
                    label:
                      color: '#000000'
                      background_color: '#e3d12d'
                    version: 1.0.0
                    textures:
                      -
                        src:
                          d4: u_numberMap.png
                          d6: u_numberMap.png
                          d8: u_numberMap.png
                          d10: u_numberMap.png
                          d12: u_numberMap.png
                          d20: u_numberMap.png
                          d10x: u_numberMap_d10x.png
                        binding: u_numberMap
                    api_version: '1.0'
                    description: 'Distinctio est repellat voluptatibus et ipsa voluptatem. Omnis eos repudiandae corporis impedit. Nisi cumque et beatae molestias. Provident aspernatur et nostrum alias ab ullam aperiam.'
                    user:
                      username: patience08
                      uuid: dcdcb11f-e976-3813-9a84-edbf6dafca78
                      name: 'Shea Bernier'
                      created_at: '2026-03-01T20:13:36.000000Z'
                      updated_at: '2026-03-01T20:13:36.000000Z'
                      subscription: false
                      is_merchant: false
                      is_registered: false
                    created_at: '2026-03-01T20:13:36.000000Z'
                    updated_at: '2026-03-01T20:13:36.000000Z'
                properties:
                  data:
                    type: object
                    properties:
                      meshes:
                        type: object
                        properties:
                          d4:
                            type: string
                            example: /mesh/d04.fbx
                          d6:
                            type: string
                            example: /mesh/d06.fbx
                          d8:
                            type: string
                            example: /mesh/d08.fbx
                          d10:
                            type: string
                            example: /mesh/d10.fbx
                          d10x:
                            type: string
                            example: /mesh/d10.fbx
                          d12:
                            type: string
                            example: /mesh/d12.fbx
                          d20:
                            type: string
                            example: /mesh/d20.fbx
                      available_dice:
                        type: array
                        example:
                          - d4
                          - d6
                          - d8
                          - d10
                          - d10x
                          - d12
                          - d20
                        items:
                          type: string
                      physics:
                        type: object
                        properties:
                          inertia:
                            type: object
                            properties:
                              d4:
                                type: integer
                                example: 5
                              d6:
                                type: integer
                                example: 12
                              d8:
                                type: integer
                                example: 10
                              d10:
                                type: integer
                                example: 9
                              d10x:
                                type: integer
                                example: 9
                              d12:
                                type: integer
                                example: 8
                              d20:
                                type: integer
                                example: 6
                          weight:
                            type: object
                            properties:
                              d4:
                                type: integer
                                example: 300
                              d6:
                                type: integer
                                example: 300
                              d8:
                                type: integer
                                example: 340
                              d10:
                                type: integer
                                example: 350
                              d10x:
                                type: integer
                                example: 350
                              d12:
                                type: integer
                                example: 350
                              d20:
                                type: integer
                                example: 400
                      sizes:
                        type: object
                        properties:
                          d4:
                            type: integer
                            example: 1
                          d6:
                            type: integer
                            example: 1
                          d8:
                            type: integer
                            example: 1
                          d10:
                            type: integer
                            example: 1
                          d10x:
                            type: integer
                            example: 1
                          d12:
                            type: integer
                            example: 1
                          d20:
                            type: integer
                            example: 1
                      sounds:
                        type: array
                        example:
                          -
                            src: /sounds/roll-1.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-2.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-3.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-loading-sm.mp3
                            'on': roll.loading
                            value: 2
                          -
                            src: /sounds/roll-loading-lg.mp3
                            'on': roll.loading
                            value: '>=3'
                        items:
                          type: object
                          properties:
                            src:
                              type: string
                              example: /sounds/roll-1.mp3
                            'on':
                              type: string
                              example: die.collide
                      uniforms:
                        type: object
                        properties:
                          number:
                            type: object
                            properties:
                              type:
                                type: string
                                example: color
                              value:
                                type: object
                                properties:
                                  b:
                                    type: integer
                                    example: 0
                                  g:
                                    type: number
                                    example: 0.424
                                  r:
                                    type: number
                                    example: 0.463
                          diffuse:
                            type: object
                            properties:
                              type:
                                type: string
                                example: color
                              value:
                                type: object
                                properties:
                                  b:
                                    type: integer
                                    example: 0
                                  g:
                                    type: number
                                    example: 0.929
                                  r:
                                    type: integer
                                    example: 1
                      values:
                        type: object
                        properties:
                          d4:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                            items:
                              type: integer
                          d6:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                            items:
                              type: integer
                          d8:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                            items:
                              type: integer
                          d10:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                              - 9
                              - 10
                            items:
                              type: integer
                          d12:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                              - 9
                              - 10
                              - 11
                              - 12
                            items:
                              type: integer
                          d20:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                              - 9
                              - 10
                              - 11
                              - 12
                              - 13
                              - 14
                              - 15
                              - 16
                              - 17
                              - 18
                              - 19
                              - 20
                            items:
                              type: integer
                          d10x:
                            type: array
                            example:
                              - 10
                              - 20
                              - 30
                              - 40
                              - 50
                              - 60
                              - 70
                              - 80
                              - 90
                              - 0
                            items:
                              type: integer
                      id:
                        type: string
                        example: ratione-amet-in
                      name:
                        type: string
                        example: Dr.
                      label:
                        type: object
                        properties:
                          color:
                            type: string
                            example: '#000000'
                          background_color:
                            type: string
                            example: '#e3d12d'
                      version:
                        type: string
                        example: 1.0.0
                      textures:
                        type: array
                        example:
                          -
                            src:
                              d4: u_numberMap.png
                              d6: u_numberMap.png
                              d8: u_numberMap.png
                              d10: u_numberMap.png
                              d12: u_numberMap.png
                              d20: u_numberMap.png
                              d10x: u_numberMap_d10x.png
                            binding: u_numberMap
                        items:
                          type: object
                          properties:
                            src:
                              type: object
                              properties:
                                d4:
                                  type: string
                                  example: u_numberMap.png
                                d6:
                                  type: string
                                  example: u_numberMap.png
                                d8:
                                  type: string
                                  example: u_numberMap.png
                                d10:
                                  type: string
                                  example: u_numberMap.png
                                d12:
                                  type: string
                                  example: u_numberMap.png
                                d20:
                                  type: string
                                  example: u_numberMap.png
                                d10x:
                                  type: string
                                  example: u_numberMap_d10x.png
                            binding:
                              type: string
                              example: u_numberMap
                      api_version:
                        type: string
                        example: '1.0'
                      description:
                        type: string
                        example: 'Distinctio est repellat voluptatibus et ipsa voluptatem. Omnis eos repudiandae corporis impedit. Nisi cumque et beatae molestias. Provident aspernatur et nostrum alias ab ullam aperiam.'
                      user:
                        type: object
                        properties:
                          username:
                            type: string
                            example: patience08
                          uuid:
                            type: string
                            example: dcdcb11f-e976-3813-9a84-edbf6dafca78
                          name:
                            type: string
                            example: 'Shea Bernier'
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:36.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:36.000000Z'
                          subscription:
                            type: boolean
                            example: false
                          is_merchant:
                            type: boolean
                            example: false
                          is_registered:
                            type: boolean
                            example: false
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:36.000000Z'
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:36.000000Z'
      tags:
        - Theme
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                frag_shader:
                  type: string
                  description: 'Custom fragment shader'
                  example: libero
                manifest:
                  type: string
                  description: 'Theme manifest configuration'
                  example: '{"meshes":{"d4":"/mesh/d04.fbx","d6":"/mesh/d06.fbx","d8":"/mesh/d08.fbx","d10":"/mesh/d10.fbx","d10x":"/mesh/d10.fbx","d12":"/mesh/d12.fbx","d20":"/mesh/d20.fbx"},"available_dice":["d4","d6","d8","d10","d10x","d12","d20"],"physics":{"inertia":{"d4":5,"d6":12,"d8":10,"d10":9,"d10x":9,"d12":8,"d20":6},"weight":{"d4":300,"d6":300,"d8":340,"d10":350,"d10x":350,"d12":350,"d20":400}},"sizes":{"d4":1,"d6":1,"d8":1,"d10":1,"d10x":1,"d12":1,"d20":1},"sounds":[{"src":"/sounds/roll-1.mp3","on":"die.collide"},{"src":"/sounds/roll-2.mp3","on":"die.collide"},{"src":"/sounds/roll-3.mp3","on":"die.collide"}],"uniforms":{"diffuse":{"type":"color","value":{"r":1,"g":0.929,"b":0}},"number":{"type":"color","value":{"r":0.463,"g":0.424,"b":0}}},"values":{"d4":[1,2,3,4],"d6":[1,2,3,4,5,6],"d8":[1,2,3,4,5,6,7,8],"d10":[1,2,3,4,5,6,7,8,9,10],"d12":[1,2,3,4,5,6,7,8,9,10,11,12],"d20":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"d10x":[10,20,30,40,50,60,70,80,90,0]},"id":"delectus_perferendis","version":"1.0.0","api_version":"1.0","name":"Miss","description":"Distinctio esse est dolores sit praesentium laboriosam officiis. Iure qui voluptatibus quidem atque nobis est consectetur enim. Eveniet harum quod quae optio repellat.","label":{"color":"#000000","background_color":"#e3d12d"},"textures":[{"binding":"u_numberMap","src":{"d4":"u_numberMap.png","d6":"u_numberMap.png","d8":"u_numberMap.png","d10":"u_numberMap.png","d12":"u_numberMap.png","d20":"u_numberMap.png","d10x":"u_numberMap_d10x.png"}}],"user":{"username":"ea_est","uuid":"c5de15e0-4337-11ed-abda-0242ac120003","name":"Ms. Demetris Mraz II","created_at":"2022-10-03T16:23:55.000000Z","updated_at":"2022-10-03T16:23:55.000000Z"},"created_at":"2022-10-03T16:23:55.000000Z","updated_at":"2022-10-03T16:23:55.000000Z"}'
                vert_shader:
                  type: string
                  description: 'Custom vertex shader'
                  example: modi
                assets:
                  type: array
                  description: 'Associated theme assets, filenames must match manifest.json references'
                  example:
                    - null
                  items:
                    type: File
              required:
                - manifest
  '/api/1.0/theme/{id}':
    get:
      summary: 'Get Theme'
      operationId: getTheme
      description: 'Get information about a theme. Returns the latest version.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    meshes:
                      d4: /mesh/d04.fbx
                      d6: /mesh/d06.fbx
                      d8: /mesh/d08.fbx
                      d10: /mesh/d10.fbx
                      d10x: /mesh/d10.fbx
                      d12: /mesh/d12.fbx
                      d20: /mesh/d20.fbx
                    available_dice:
                      - d4
                      - d6
                      - d8
                      - d10
                      - d10x
                      - d12
                      - d20
                    physics:
                      inertia:
                        d4: 5
                        d6: 12
                        d8: 10
                        d10: 9
                        d10x: 9
                        d12: 8
                        d20: 6
                      weight:
                        d4: 300
                        d6: 300
                        d8: 340
                        d10: 350
                        d10x: 350
                        d12: 350
                        d20: 400
                    sizes:
                      d4: 1
                      d6: 1
                      d8: 1
                      d10: 1
                      d10x: 1
                      d12: 1
                      d20: 1
                    sounds:
                      -
                        src: /sounds/roll-1.mp3
                        'on': die.collide
                      -
                        src: /sounds/roll-2.mp3
                        'on': die.collide
                      -
                        src: /sounds/roll-3.mp3
                        'on': die.collide
                      -
                        src: /sounds/roll-loading-sm.mp3
                        'on': roll.loading
                        value: 2
                      -
                        src: /sounds/roll-loading-lg.mp3
                        'on': roll.loading
                        value: '>=3'
                    uniforms:
                      number:
                        type: color
                        value:
                          b: 0
                          g: 0.424
                          r: 0.463
                      diffuse:
                        type: color
                        value:
                          b: 0
                          g: 0.929
                          r: 1
                    values:
                      d4:
                        - 1
                        - 2
                        - 3
                        - 4
                      d6:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                      d8:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                      d10:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                      d12:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                        - 11
                        - 12
                      d20:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                        - 11
                        - 12
                        - 13
                        - 14
                        - 15
                        - 16
                        - 17
                        - 18
                        - 19
                        - 20
                      d10x:
                        - 10
                        - 20
                        - 30
                        - 40
                        - 50
                        - 60
                        - 70
                        - 80
                        - 90
                        - 0
                    id: quibusdam-minus-et
                    name: Prof.
                    label:
                      color: '#000000'
                      background_color: '#e3d12d'
                    version: 1.0.0
                    textures:
                      -
                        src:
                          d4: u_numberMap.png
                          d6: u_numberMap.png
                          d8: u_numberMap.png
                          d10: u_numberMap.png
                          d12: u_numberMap.png
                          d20: u_numberMap.png
                          d10x: u_numberMap_d10x.png
                        binding: u_numberMap
                    api_version: '1.0'
                    description: 'Modi sapiente architecto quae id optio quod. Autem consectetur neque sit dicta. Assumenda quia ut ea quidem rerum dolor. Est repudiandae porro et est voluptatibus.'
                    user:
                      username: bhayes
                      uuid: 95578eab-7957-30f6-ab38-d41d24967340
                      name: 'Mortimer Bashirian'
                      created_at: '2026-03-01T20:13:36.000000Z'
                      updated_at: '2026-03-01T20:13:36.000000Z'
                      subscription: false
                      is_merchant: false
                      is_registered: false
                    created_at: '2026-03-01T20:13:36.000000Z'
                    updated_at: '2026-03-01T20:13:36.000000Z'
                properties:
                  data:
                    type: object
                    properties:
                      meshes:
                        type: object
                        properties:
                          d4:
                            type: string
                            example: /mesh/d04.fbx
                          d6:
                            type: string
                            example: /mesh/d06.fbx
                          d8:
                            type: string
                            example: /mesh/d08.fbx
                          d10:
                            type: string
                            example: /mesh/d10.fbx
                          d10x:
                            type: string
                            example: /mesh/d10.fbx
                          d12:
                            type: string
                            example: /mesh/d12.fbx
                          d20:
                            type: string
                            example: /mesh/d20.fbx
                      available_dice:
                        type: array
                        example:
                          - d4
                          - d6
                          - d8
                          - d10
                          - d10x
                          - d12
                          - d20
                        items:
                          type: string
                      physics:
                        type: object
                        properties:
                          inertia:
                            type: object
                            properties:
                              d4:
                                type: integer
                                example: 5
                              d6:
                                type: integer
                                example: 12
                              d8:
                                type: integer
                                example: 10
                              d10:
                                type: integer
                                example: 9
                              d10x:
                                type: integer
                                example: 9
                              d12:
                                type: integer
                                example: 8
                              d20:
                                type: integer
                                example: 6
                          weight:
                            type: object
                            properties:
                              d4:
                                type: integer
                                example: 300
                              d6:
                                type: integer
                                example: 300
                              d8:
                                type: integer
                                example: 340
                              d10:
                                type: integer
                                example: 350
                              d10x:
                                type: integer
                                example: 350
                              d12:
                                type: integer
                                example: 350
                              d20:
                                type: integer
                                example: 400
                      sizes:
                        type: object
                        properties:
                          d4:
                            type: integer
                            example: 1
                          d6:
                            type: integer
                            example: 1
                          d8:
                            type: integer
                            example: 1
                          d10:
                            type: integer
                            example: 1
                          d10x:
                            type: integer
                            example: 1
                          d12:
                            type: integer
                            example: 1
                          d20:
                            type: integer
                            example: 1
                      sounds:
                        type: array
                        example:
                          -
                            src: /sounds/roll-1.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-2.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-3.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-loading-sm.mp3
                            'on': roll.loading
                            value: 2
                          -
                            src: /sounds/roll-loading-lg.mp3
                            'on': roll.loading
                            value: '>=3'
                        items:
                          type: object
                          properties:
                            src:
                              type: string
                              example: /sounds/roll-1.mp3
                            'on':
                              type: string
                              example: die.collide
                      uniforms:
                        type: object
                        properties:
                          number:
                            type: object
                            properties:
                              type:
                                type: string
                                example: color
                              value:
                                type: object
                                properties:
                                  b:
                                    type: integer
                                    example: 0
                                  g:
                                    type: number
                                    example: 0.424
                                  r:
                                    type: number
                                    example: 0.463
                          diffuse:
                            type: object
                            properties:
                              type:
                                type: string
                                example: color
                              value:
                                type: object
                                properties:
                                  b:
                                    type: integer
                                    example: 0
                                  g:
                                    type: number
                                    example: 0.929
                                  r:
                                    type: integer
                                    example: 1
                      values:
                        type: object
                        properties:
                          d4:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                            items:
                              type: integer
                          d6:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                            items:
                              type: integer
                          d8:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                            items:
                              type: integer
                          d10:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                              - 9
                              - 10
                            items:
                              type: integer
                          d12:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                              - 9
                              - 10
                              - 11
                              - 12
                            items:
                              type: integer
                          d20:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                              - 9
                              - 10
                              - 11
                              - 12
                              - 13
                              - 14
                              - 15
                              - 16
                              - 17
                              - 18
                              - 19
                              - 20
                            items:
                              type: integer
                          d10x:
                            type: array
                            example:
                              - 10
                              - 20
                              - 30
                              - 40
                              - 50
                              - 60
                              - 70
                              - 80
                              - 90
                              - 0
                            items:
                              type: integer
                      id:
                        type: string
                        example: quibusdam-minus-et
                      name:
                        type: string
                        example: Prof.
                      label:
                        type: object
                        properties:
                          color:
                            type: string
                            example: '#000000'
                          background_color:
                            type: string
                            example: '#e3d12d'
                      version:
                        type: string
                        example: 1.0.0
                      textures:
                        type: array
                        example:
                          -
                            src:
                              d4: u_numberMap.png
                              d6: u_numberMap.png
                              d8: u_numberMap.png
                              d10: u_numberMap.png
                              d12: u_numberMap.png
                              d20: u_numberMap.png
                              d10x: u_numberMap_d10x.png
                            binding: u_numberMap
                        items:
                          type: object
                          properties:
                            src:
                              type: object
                              properties:
                                d4:
                                  type: string
                                  example: u_numberMap.png
                                d6:
                                  type: string
                                  example: u_numberMap.png
                                d8:
                                  type: string
                                  example: u_numberMap.png
                                d10:
                                  type: string
                                  example: u_numberMap.png
                                d12:
                                  type: string
                                  example: u_numberMap.png
                                d20:
                                  type: string
                                  example: u_numberMap.png
                                d10x:
                                  type: string
                                  example: u_numberMap_d10x.png
                            binding:
                              type: string
                              example: u_numberMap
                      api_version:
                        type: string
                        example: '1.0'
                      description:
                        type: string
                        example: 'Modi sapiente architecto quae id optio quod. Autem consectetur neque sit dicta. Assumenda quia ut ea quidem rerum dolor. Est repudiandae porro et est voluptatibus.'
                      user:
                        type: object
                        properties:
                          username:
                            type: string
                            example: bhayes
                          uuid:
                            type: string
                            example: 95578eab-7957-30f6-ab38-d41d24967340
                          name:
                            type: string
                            example: 'Mortimer Bashirian'
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:36.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:36.000000Z'
                          subscription:
                            type: boolean
                            example: false
                          is_merchant:
                            type: boolean
                            example: false
                          is_registered:
                            type: boolean
                            example: false
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:36.000000Z'
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:36.000000Z'
      tags:
        - Theme
    delete:
      summary: 'Delete Theme'
      operationId: deleteTheme
      description: 'Delete all versions of a given theme.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        204:
          description: ''
      tags:
        - Theme
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the theme.'
        example: dddice-bees
        required: true
        schema:
          type: string
  '/api/1.0/theme/{id}/version':
    get:
      summary: 'Get All Theme Versions'
      operationId: getAllThemeVersions
      description: 'List all versions of a given theme.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  type: 'theme[]'
                  data:
                    -
                      meshes:
                        d4: /mesh/d04.fbx
                        d6: /mesh/d06.fbx
                        d8: /mesh/d08.fbx
                        d10: /mesh/d10.fbx
                        d10x: /mesh/d10.fbx
                        d12: /mesh/d12.fbx
                        d20: /mesh/d20.fbx
                      available_dice:
                        - d4
                        - d6
                        - d8
                        - d10
                        - d10x
                        - d12
                        - d20
                      physics:
                        inertia:
                          d4: 5
                          d6: 12
                          d8: 10
                          d10: 9
                          d10x: 9
                          d12: 8
                          d20: 6
                        weight:
                          d4: 300
                          d6: 300
                          d8: 340
                          d10: 350
                          d10x: 350
                          d12: 350
                          d20: 400
                      sizes:
                        d4: 1
                        d6: 1
                        d8: 1
                        d10: 1
                        d10x: 1
                        d12: 1
                        d20: 1
                      sounds:
                        -
                          src: /sounds/roll-1.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-2.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-3.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-loading-sm.mp3
                          'on': roll.loading
                          value: 2
                        -
                          src: /sounds/roll-loading-lg.mp3
                          'on': roll.loading
                          value: '>=3'
                      uniforms:
                        number:
                          type: color
                          value:
                            b: 0
                            g: 0.424
                            r: 0.463
                        diffuse:
                          type: color
                          value:
                            b: 0
                            g: 0.929
                            r: 1
                      values:
                        d4:
                          - 1
                          - 2
                          - 3
                          - 4
                        d6:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                        d8:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                        d10:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                        d12:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                          - 11
                          - 12
                        d20:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                          - 11
                          - 12
                          - 13
                          - 14
                          - 15
                          - 16
                          - 17
                          - 18
                          - 19
                          - 20
                        d10x:
                          - 10
                          - 20
                          - 30
                          - 40
                          - 50
                          - 60
                          - 70
                          - 80
                          - 90
                          - 0
                      id: rem-fugit
                      name: Ms.
                      label:
                        color: '#000000'
                        background_color: '#e3d12d'
                      version: 1.0.0
                      textures:
                        -
                          src:
                            d4: u_numberMap.png
                            d6: u_numberMap.png
                            d8: u_numberMap.png
                            d10: u_numberMap.png
                            d12: u_numberMap.png
                            d20: u_numberMap.png
                            d10x: u_numberMap_d10x.png
                          binding: u_numberMap
                      api_version: '1.0'
                      description: 'Aut repellendus necessitatibus est molestiae a tempore rerum. Omnis impedit soluta expedita occaecati doloribus. Dicta eius saepe ut commodi rerum possimus. Reprehenderit eligendi non doloremque alias adipisci.'
                      user:
                        username: delaney.smitham
                        uuid: d23a8c4b-a1de-3204-b9c1-e46cb4b5077b
                        name: 'Prof. Parker Grant'
                        created_at: '2026-03-01T20:13:36.000000Z'
                        updated_at: '2026-03-01T20:13:36.000000Z'
                        subscription: false
                        is_merchant: false
                        is_registered: false
                      created_at: '2026-03-01T20:13:36.000000Z'
                      updated_at: '2026-03-01T20:13:36.000000Z'
                    -
                      meshes:
                        d4: /mesh/d04.fbx
                        d6: /mesh/d06.fbx
                        d8: /mesh/d08.fbx
                        d10: /mesh/d10.fbx
                        d10x: /mesh/d10.fbx
                        d12: /mesh/d12.fbx
                        d20: /mesh/d20.fbx
                      available_dice:
                        - d4
                        - d6
                        - d8
                        - d10
                        - d10x
                        - d12
                        - d20
                      physics:
                        inertia:
                          d4: 5
                          d6: 12
                          d8: 10
                          d10: 9
                          d10x: 9
                          d12: 8
                          d20: 6
                        weight:
                          d4: 300
                          d6: 300
                          d8: 340
                          d10: 350
                          d10x: 350
                          d12: 350
                          d20: 400
                      sizes:
                        d4: 1
                        d6: 1
                        d8: 1
                        d10: 1
                        d10x: 1
                        d12: 1
                        d20: 1
                      sounds:
                        -
                          src: /sounds/roll-1.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-2.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-3.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-loading-sm.mp3
                          'on': roll.loading
                          value: 2
                        -
                          src: /sounds/roll-loading-lg.mp3
                          'on': roll.loading
                          value: '>=3'
                      uniforms:
                        number:
                          type: color
                          value:
                            b: 0
                            g: 0.424
                            r: 0.463
                        diffuse:
                          type: color
                          value:
                            b: 0
                            g: 0.929
                            r: 1
                      values:
                        d4:
                          - 1
                          - 2
                          - 3
                          - 4
                        d6:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                        d8:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                        d10:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                        d12:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                          - 11
                          - 12
                        d20:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                          - 11
                          - 12
                          - 13
                          - 14
                          - 15
                          - 16
                          - 17
                          - 18
                          - 19
                          - 20
                        d10x:
                          - 10
                          - 20
                          - 30
                          - 40
                          - 50
                          - 60
                          - 70
                          - 80
                          - 90
                          - 0
                      id: quos-quis-rem
                      name: Ms.
                      label:
                        color: '#000000'
                        background_color: '#e3d12d'
                      version: 1.0.0
                      textures:
                        -
                          src:
                            d4: u_numberMap.png
                            d6: u_numberMap.png
                            d8: u_numberMap.png
                            d10: u_numberMap.png
                            d12: u_numberMap.png
                            d20: u_numberMap.png
                            d10x: u_numberMap_d10x.png
                          binding: u_numberMap
                      api_version: '1.0'
                      description: 'Qui veritatis expedita reprehenderit et ipsam ullam. Ab voluptatem unde ad iste. Laboriosam accusamus nulla ut eum. Vel eum vitae cupiditate dignissimos in.'
                      user:
                        username: cristal.flatley
                        uuid: d99bb58a-9c6e-33a5-9b7e-e79b029a366c
                        name: 'Shanie Bernier'
                        created_at: '2026-03-01T20:13:36.000000Z'
                        updated_at: '2026-03-01T20:13:36.000000Z'
                        subscription: false
                        is_merchant: false
                        is_registered: false
                      created_at: '2026-03-01T20:13:36.000000Z'
                      updated_at: '2026-03-01T20:13:36.000000Z'
                properties:
                  type:
                    type: string
                    example: 'theme[]'
                  data:
                    type: array
                    example:
                      -
                        meshes:
                          d4: /mesh/d04.fbx
                          d6: /mesh/d06.fbx
                          d8: /mesh/d08.fbx
                          d10: /mesh/d10.fbx
                          d10x: /mesh/d10.fbx
                          d12: /mesh/d12.fbx
                          d20: /mesh/d20.fbx
                        available_dice:
                          - d4
                          - d6
                          - d8
                          - d10
                          - d10x
                          - d12
                          - d20
                        physics:
                          inertia:
                            d4: 5
                            d6: 12
                            d8: 10
                            d10: 9
                            d10x: 9
                            d12: 8
                            d20: 6
                          weight:
                            d4: 300
                            d6: 300
                            d8: 340
                            d10: 350
                            d10x: 350
                            d12: 350
                            d20: 400
                        sizes:
                          d4: 1
                          d6: 1
                          d8: 1
                          d10: 1
                          d10x: 1
                          d12: 1
                          d20: 1
                        sounds:
                          -
                            src: /sounds/roll-1.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-2.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-3.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-loading-sm.mp3
                            'on': roll.loading
                            value: 2
                          -
                            src: /sounds/roll-loading-lg.mp3
                            'on': roll.loading
                            value: '>=3'
                        uniforms:
                          number:
                            type: color
                            value:
                              b: 0
                              g: 0.424
                              r: 0.463
                          diffuse:
                            type: color
                            value:
                              b: 0
                              g: 0.929
                              r: 1
                        values:
                          d4:
                            - 1
                            - 2
                            - 3
                            - 4
                          d6:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                          d8:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                          d10:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                          d12:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                            - 11
                            - 12
                          d20:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                            - 11
                            - 12
                            - 13
                            - 14
                            - 15
                            - 16
                            - 17
                            - 18
                            - 19
                            - 20
                          d10x:
                            - 10
                            - 20
                            - 30
                            - 40
                            - 50
                            - 60
                            - 70
                            - 80
                            - 90
                            - 0
                        id: rem-fugit
                        name: Ms.
                        label:
                          color: '#000000'
                          background_color: '#e3d12d'
                        version: 1.0.0
                        textures:
                          -
                            src:
                              d4: u_numberMap.png
                              d6: u_numberMap.png
                              d8: u_numberMap.png
                              d10: u_numberMap.png
                              d12: u_numberMap.png
                              d20: u_numberMap.png
                              d10x: u_numberMap_d10x.png
                            binding: u_numberMap
                        api_version: '1.0'
                        description: 'Aut repellendus necessitatibus est molestiae a tempore rerum. Omnis impedit soluta expedita occaecati doloribus. Dicta eius saepe ut commodi rerum possimus. Reprehenderit eligendi non doloremque alias adipisci.'
                        user:
                          username: delaney.smitham
                          uuid: d23a8c4b-a1de-3204-b9c1-e46cb4b5077b
                          name: 'Prof. Parker Grant'
                          created_at: '2026-03-01T20:13:36.000000Z'
                          updated_at: '2026-03-01T20:13:36.000000Z'
                          subscription: false
                          is_merchant: false
                          is_registered: false
                        created_at: '2026-03-01T20:13:36.000000Z'
                        updated_at: '2026-03-01T20:13:36.000000Z'
                      -
                        meshes:
                          d4: /mesh/d04.fbx
                          d6: /mesh/d06.fbx
                          d8: /mesh/d08.fbx
                          d10: /mesh/d10.fbx
                          d10x: /mesh/d10.fbx
                          d12: /mesh/d12.fbx
                          d20: /mesh/d20.fbx
                        available_dice:
                          - d4
                          - d6
                          - d8
                          - d10
                          - d10x
                          - d12
                          - d20
                        physics:
                          inertia:
                            d4: 5
                            d6: 12
                            d8: 10
                            d10: 9
                            d10x: 9
                            d12: 8
                            d20: 6
                          weight:
                            d4: 300
                            d6: 300
                            d8: 340
                            d10: 350
                            d10x: 350
                            d12: 350
                            d20: 400
                        sizes:
                          d4: 1
                          d6: 1
                          d8: 1
                          d10: 1
                          d10x: 1
                          d12: 1
                          d20: 1
                        sounds:
                          -
                            src: /sounds/roll-1.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-2.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-3.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-loading-sm.mp3
                            'on': roll.loading
                            value: 2
                          -
                            src: /sounds/roll-loading-lg.mp3
                            'on': roll.loading
                            value: '>=3'
                        uniforms:
                          number:
                            type: color
                            value:
                              b: 0
                              g: 0.424
                              r: 0.463
                          diffuse:
                            type: color
                            value:
                              b: 0
                              g: 0.929
                              r: 1
                        values:
                          d4:
                            - 1
                            - 2
                            - 3
                            - 4
                          d6:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                          d8:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                          d10:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                          d12:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                            - 11
                            - 12
                          d20:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                            - 11
                            - 12
                            - 13
                            - 14
                            - 15
                            - 16
                            - 17
                            - 18
                            - 19
                            - 20
                          d10x:
                            - 10
                            - 20
                            - 30
                            - 40
                            - 50
                            - 60
                            - 70
                            - 80
                            - 90
                            - 0
                        id: quos-quis-rem
                        name: Ms.
                        label:
                          color: '#000000'
                          background_color: '#e3d12d'
                        version: 1.0.0
                        textures:
                          -
                            src:
                              d4: u_numberMap.png
                              d6: u_numberMap.png
                              d8: u_numberMap.png
                              d10: u_numberMap.png
                              d12: u_numberMap.png
                              d20: u_numberMap.png
                              d10x: u_numberMap_d10x.png
                            binding: u_numberMap
                        api_version: '1.0'
                        description: 'Qui veritatis expedita reprehenderit et ipsam ullam. Ab voluptatem unde ad iste. Laboriosam accusamus nulla ut eum. Vel eum vitae cupiditate dignissimos in.'
                        user:
                          username: cristal.flatley
                          uuid: d99bb58a-9c6e-33a5-9b7e-e79b029a366c
                          name: 'Shanie Bernier'
                          created_at: '2026-03-01T20:13:36.000000Z'
                          updated_at: '2026-03-01T20:13:36.000000Z'
                          subscription: false
                          is_merchant: false
                          is_registered: false
                        created_at: '2026-03-01T20:13:36.000000Z'
                        updated_at: '2026-03-01T20:13:36.000000Z'
                    items:
                      type: object
                      properties:
                        meshes:
                          type: object
                          properties:
                            d4:
                              type: string
                              example: /mesh/d04.fbx
                            d6:
                              type: string
                              example: /mesh/d06.fbx
                            d8:
                              type: string
                              example: /mesh/d08.fbx
                            d10:
                              type: string
                              example: /mesh/d10.fbx
                            d10x:
                              type: string
                              example: /mesh/d10.fbx
                            d12:
                              type: string
                              example: /mesh/d12.fbx
                            d20:
                              type: string
                              example: /mesh/d20.fbx
                        available_dice:
                          type: array
                          example:
                            - d4
                            - d6
                            - d8
                            - d10
                            - d10x
                            - d12
                            - d20
                          items:
                            type: string
                        physics:
                          type: object
                          properties:
                            inertia:
                              type: object
                              properties:
                                d4:
                                  type: integer
                                  example: 5
                                d6:
                                  type: integer
                                  example: 12
                                d8:
                                  type: integer
                                  example: 10
                                d10:
                                  type: integer
                                  example: 9
                                d10x:
                                  type: integer
                                  example: 9
                                d12:
                                  type: integer
                                  example: 8
                                d20:
                                  type: integer
                                  example: 6
                            weight:
                              type: object
                              properties:
                                d4:
                                  type: integer
                                  example: 300
                                d6:
                                  type: integer
                                  example: 300
                                d8:
                                  type: integer
                                  example: 340
                                d10:
                                  type: integer
                                  example: 350
                                d10x:
                                  type: integer
                                  example: 350
                                d12:
                                  type: integer
                                  example: 350
                                d20:
                                  type: integer
                                  example: 400
                        sizes:
                          type: object
                          properties:
                            d4:
                              type: integer
                              example: 1
                            d6:
                              type: integer
                              example: 1
                            d8:
                              type: integer
                              example: 1
                            d10:
                              type: integer
                              example: 1
                            d10x:
                              type: integer
                              example: 1
                            d12:
                              type: integer
                              example: 1
                            d20:
                              type: integer
                              example: 1
                        sounds:
                          type: array
                          example:
                            -
                              src: /sounds/roll-1.mp3
                              'on': die.collide
                            -
                              src: /sounds/roll-2.mp3
                              'on': die.collide
                            -
                              src: /sounds/roll-3.mp3
                              'on': die.collide
                            -
                              src: /sounds/roll-loading-sm.mp3
                              'on': roll.loading
                              value: 2
                            -
                              src: /sounds/roll-loading-lg.mp3
                              'on': roll.loading
                              value: '>=3'
                          items:
                            type: object
                            properties:
                              src:
                                type: string
                                example: /sounds/roll-1.mp3
                              'on':
                                type: string
                                example: die.collide
                        uniforms:
                          type: object
                          properties:
                            number:
                              type: object
                              properties:
                                type:
                                  type: string
                                  example: color
                                value:
                                  type: object
                                  properties:
                                    b:
                                      type: integer
                                      example: 0
                                    g:
                                      type: number
                                      example: 0.424
                                    r:
                                      type: number
                                      example: 0.463
                            diffuse:
                              type: object
                              properties:
                                type:
                                  type: string
                                  example: color
                                value:
                                  type: object
                                  properties:
                                    b:
                                      type: integer
                                      example: 0
                                    g:
                                      type: number
                                      example: 0.929
                                    r:
                                      type: integer
                                      example: 1
                        values:
                          type: object
                          properties:
                            d4:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                              items:
                                type: integer
                            d6:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                              items:
                                type: integer
                            d8:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                              items:
                                type: integer
                            d10:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                                - 9
                                - 10
                              items:
                                type: integer
                            d12:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                                - 9
                                - 10
                                - 11
                                - 12
                              items:
                                type: integer
                            d20:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                                - 9
                                - 10
                                - 11
                                - 12
                                - 13
                                - 14
                                - 15
                                - 16
                                - 17
                                - 18
                                - 19
                                - 20
                              items:
                                type: integer
                            d10x:
                              type: array
                              example:
                                - 10
                                - 20
                                - 30
                                - 40
                                - 50
                                - 60
                                - 70
                                - 80
                                - 90
                                - 0
                              items:
                                type: integer
                        id:
                          type: string
                          example: rem-fugit
                        name:
                          type: string
                          example: Ms.
                        label:
                          type: object
                          properties:
                            color:
                              type: string
                              example: '#000000'
                            background_color:
                              type: string
                              example: '#e3d12d'
                        version:
                          type: string
                          example: 1.0.0
                        textures:
                          type: array
                          example:
                            -
                              src:
                                d4: u_numberMap.png
                                d6: u_numberMap.png
                                d8: u_numberMap.png
                                d10: u_numberMap.png
                                d12: u_numberMap.png
                                d20: u_numberMap.png
                                d10x: u_numberMap_d10x.png
                              binding: u_numberMap
                          items:
                            type: object
                            properties:
                              src:
                                type: object
                                properties:
                                  d4:
                                    type: string
                                    example: u_numberMap.png
                                  d6:
                                    type: string
                                    example: u_numberMap.png
                                  d8:
                                    type: string
                                    example: u_numberMap.png
                                  d10:
                                    type: string
                                    example: u_numberMap.png
                                  d12:
                                    type: string
                                    example: u_numberMap.png
                                  d20:
                                    type: string
                                    example: u_numberMap.png
                                  d10x:
                                    type: string
                                    example: u_numberMap_d10x.png
                              binding:
                                type: string
                                example: u_numberMap
                        api_version:
                          type: string
                          example: '1.0'
                        description:
                          type: string
                          example: 'Aut repellendus necessitatibus est molestiae a tempore rerum. Omnis impedit soluta expedita occaecati doloribus. Dicta eius saepe ut commodi rerum possimus. Reprehenderit eligendi non doloremque alias adipisci.'
                        user:
                          type: object
                          properties:
                            username:
                              type: string
                              example: delaney.smitham
                            uuid:
                              type: string
                              example: d23a8c4b-a1de-3204-b9c1-e46cb4b5077b
                            name:
                              type: string
                              example: 'Prof. Parker Grant'
                            created_at:
                              type: string
                              example: '2026-03-01T20:13:36.000000Z'
                            updated_at:
                              type: string
                              example: '2026-03-01T20:13:36.000000Z'
                            subscription:
                              type: boolean
                              example: false
                            is_merchant:
                              type: boolean
                              example: false
                            is_registered:
                              type: boolean
                              example: false
                        created_at:
                          type: string
                          example: '2026-03-01T20:13:36.000000Z'
                        updated_at:
                          type: string
                          example: '2026-03-01T20:13:36.000000Z'
      tags:
        - Theme
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the theme.'
        example: dddice-bees
        required: true
        schema:
          type: string
  '/api/1.0/theme/{id}/version/{version}':
    get:
      summary: 'Get a Theme Version'
      operationId: getAThemeVersion
      description: 'Get a specific version of a given theme.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    meshes:
                      d4: /mesh/d04.fbx
                      d6: /mesh/d06.fbx
                      d8: /mesh/d08.fbx
                      d10: /mesh/d10.fbx
                      d10x: /mesh/d10.fbx
                      d12: /mesh/d12.fbx
                      d20: /mesh/d20.fbx
                    available_dice:
                      - d4
                      - d6
                      - d8
                      - d10
                      - d10x
                      - d12
                      - d20
                    physics:
                      inertia:
                        d4: 5
                        d6: 12
                        d8: 10
                        d10: 9
                        d10x: 9
                        d12: 8
                        d20: 6
                      weight:
                        d4: 300
                        d6: 300
                        d8: 340
                        d10: 350
                        d10x: 350
                        d12: 350
                        d20: 400
                    sizes:
                      d4: 1
                      d6: 1
                      d8: 1
                      d10: 1
                      d10x: 1
                      d12: 1
                      d20: 1
                    sounds:
                      -
                        src: /sounds/roll-1.mp3
                        'on': die.collide
                      -
                        src: /sounds/roll-2.mp3
                        'on': die.collide
                      -
                        src: /sounds/roll-3.mp3
                        'on': die.collide
                      -
                        src: /sounds/roll-loading-sm.mp3
                        'on': roll.loading
                        value: 2
                      -
                        src: /sounds/roll-loading-lg.mp3
                        'on': roll.loading
                        value: '>=3'
                    uniforms:
                      number:
                        type: color
                        value:
                          b: 0
                          g: 0.424
                          r: 0.463
                      diffuse:
                        type: color
                        value:
                          b: 0
                          g: 0.929
                          r: 1
                    values:
                      d4:
                        - 1
                        - 2
                        - 3
                        - 4
                      d6:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                      d8:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                      d10:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                      d12:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                        - 11
                        - 12
                      d20:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                        - 11
                        - 12
                        - 13
                        - 14
                        - 15
                        - 16
                        - 17
                        - 18
                        - 19
                        - 20
                      d10x:
                        - 10
                        - 20
                        - 30
                        - 40
                        - 50
                        - 60
                        - 70
                        - 80
                        - 90
                        - 0
                    id: vel-delectus
                    name: Dr.
                    label:
                      color: '#000000'
                      background_color: '#e3d12d'
                    version: 1.0.0
                    textures:
                      -
                        src:
                          d4: u_numberMap.png
                          d6: u_numberMap.png
                          d8: u_numberMap.png
                          d10: u_numberMap.png
                          d12: u_numberMap.png
                          d20: u_numberMap.png
                          d10x: u_numberMap_d10x.png
                        binding: u_numberMap
                    api_version: '1.0'
                    description: 'Praesentium consequatur autem molestiae culpa provident. Est aut illo perferendis et eveniet. Laborum fugiat eos mollitia facere consequuntur.'
                    user:
                      username: jhammes
                      uuid: 77d28ec8-232c-31a2-8670-1a56453d09e1
                      name: 'Emilio Keebler'
                      created_at: '2026-03-01T20:13:36.000000Z'
                      updated_at: '2026-03-01T20:13:36.000000Z'
                      subscription: false
                      is_merchant: false
                      is_registered: false
                    created_at: '2026-03-01T20:13:36.000000Z'
                    updated_at: '2026-03-01T20:13:36.000000Z'
                properties:
                  data:
                    type: object
                    properties:
                      meshes:
                        type: object
                        properties:
                          d4:
                            type: string
                            example: /mesh/d04.fbx
                          d6:
                            type: string
                            example: /mesh/d06.fbx
                          d8:
                            type: string
                            example: /mesh/d08.fbx
                          d10:
                            type: string
                            example: /mesh/d10.fbx
                          d10x:
                            type: string
                            example: /mesh/d10.fbx
                          d12:
                            type: string
                            example: /mesh/d12.fbx
                          d20:
                            type: string
                            example: /mesh/d20.fbx
                      available_dice:
                        type: array
                        example:
                          - d4
                          - d6
                          - d8
                          - d10
                          - d10x
                          - d12
                          - d20
                        items:
                          type: string
                      physics:
                        type: object
                        properties:
                          inertia:
                            type: object
                            properties:
                              d4:
                                type: integer
                                example: 5
                              d6:
                                type: integer
                                example: 12
                              d8:
                                type: integer
                                example: 10
                              d10:
                                type: integer
                                example: 9
                              d10x:
                                type: integer
                                example: 9
                              d12:
                                type: integer
                                example: 8
                              d20:
                                type: integer
                                example: 6
                          weight:
                            type: object
                            properties:
                              d4:
                                type: integer
                                example: 300
                              d6:
                                type: integer
                                example: 300
                              d8:
                                type: integer
                                example: 340
                              d10:
                                type: integer
                                example: 350
                              d10x:
                                type: integer
                                example: 350
                              d12:
                                type: integer
                                example: 350
                              d20:
                                type: integer
                                example: 400
                      sizes:
                        type: object
                        properties:
                          d4:
                            type: integer
                            example: 1
                          d6:
                            type: integer
                            example: 1
                          d8:
                            type: integer
                            example: 1
                          d10:
                            type: integer
                            example: 1
                          d10x:
                            type: integer
                            example: 1
                          d12:
                            type: integer
                            example: 1
                          d20:
                            type: integer
                            example: 1
                      sounds:
                        type: array
                        example:
                          -
                            src: /sounds/roll-1.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-2.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-3.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-loading-sm.mp3
                            'on': roll.loading
                            value: 2
                          -
                            src: /sounds/roll-loading-lg.mp3
                            'on': roll.loading
                            value: '>=3'
                        items:
                          type: object
                          properties:
                            src:
                              type: string
                              example: /sounds/roll-1.mp3
                            'on':
                              type: string
                              example: die.collide
                      uniforms:
                        type: object
                        properties:
                          number:
                            type: object
                            properties:
                              type:
                                type: string
                                example: color
                              value:
                                type: object
                                properties:
                                  b:
                                    type: integer
                                    example: 0
                                  g:
                                    type: number
                                    example: 0.424
                                  r:
                                    type: number
                                    example: 0.463
                          diffuse:
                            type: object
                            properties:
                              type:
                                type: string
                                example: color
                              value:
                                type: object
                                properties:
                                  b:
                                    type: integer
                                    example: 0
                                  g:
                                    type: number
                                    example: 0.929
                                  r:
                                    type: integer
                                    example: 1
                      values:
                        type: object
                        properties:
                          d4:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                            items:
                              type: integer
                          d6:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                            items:
                              type: integer
                          d8:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                            items:
                              type: integer
                          d10:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                              - 9
                              - 10
                            items:
                              type: integer
                          d12:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                              - 9
                              - 10
                              - 11
                              - 12
                            items:
                              type: integer
                          d20:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                              - 9
                              - 10
                              - 11
                              - 12
                              - 13
                              - 14
                              - 15
                              - 16
                              - 17
                              - 18
                              - 19
                              - 20
                            items:
                              type: integer
                          d10x:
                            type: array
                            example:
                              - 10
                              - 20
                              - 30
                              - 40
                              - 50
                              - 60
                              - 70
                              - 80
                              - 90
                              - 0
                            items:
                              type: integer
                      id:
                        type: string
                        example: vel-delectus
                      name:
                        type: string
                        example: Dr.
                      label:
                        type: object
                        properties:
                          color:
                            type: string
                            example: '#000000'
                          background_color:
                            type: string
                            example: '#e3d12d'
                      version:
                        type: string
                        example: 1.0.0
                      textures:
                        type: array
                        example:
                          -
                            src:
                              d4: u_numberMap.png
                              d6: u_numberMap.png
                              d8: u_numberMap.png
                              d10: u_numberMap.png
                              d12: u_numberMap.png
                              d20: u_numberMap.png
                              d10x: u_numberMap_d10x.png
                            binding: u_numberMap
                        items:
                          type: object
                          properties:
                            src:
                              type: object
                              properties:
                                d4:
                                  type: string
                                  example: u_numberMap.png
                                d6:
                                  type: string
                                  example: u_numberMap.png
                                d8:
                                  type: string
                                  example: u_numberMap.png
                                d10:
                                  type: string
                                  example: u_numberMap.png
                                d12:
                                  type: string
                                  example: u_numberMap.png
                                d20:
                                  type: string
                                  example: u_numberMap.png
                                d10x:
                                  type: string
                                  example: u_numberMap_d10x.png
                            binding:
                              type: string
                              example: u_numberMap
                      api_version:
                        type: string
                        example: '1.0'
                      description:
                        type: string
                        example: 'Praesentium consequatur autem molestiae culpa provident. Est aut illo perferendis et eveniet. Laborum fugiat eos mollitia facere consequuntur.'
                      user:
                        type: object
                        properties:
                          username:
                            type: string
                            example: jhammes
                          uuid:
                            type: string
                            example: 77d28ec8-232c-31a2-8670-1a56453d09e1
                          name:
                            type: string
                            example: 'Emilio Keebler'
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:36.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:36.000000Z'
                          subscription:
                            type: boolean
                            example: false
                          is_merchant:
                            type: boolean
                            example: false
                          is_registered:
                            type: boolean
                            example: false
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:36.000000Z'
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:36.000000Z'
      tags:
        - Theme
    delete:
      summary: 'Delete Theme Version'
      operationId: deleteThemeVersion
      description: 'Delete a specific version of a given theme.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        204:
          description: ''
      tags:
        - Theme
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the theme.'
        example: dddice-bees
        required: true
        schema:
          type: string
      -
        in: path
        name: version
        description: 'Theme Version.'
        example: 1.0.0
        required: true
        schema:
          type: string
  '/api/1.0/theme/{id}/report':
    post:
      summary: 'Report Theme'
      operationId: reportTheme
      description: 'Report a theme for abuse or spam.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        204:
          description: ''
      tags:
        - Theme
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the theme.'
        example: dddice-bees
        required: true
        schema:
          type: string
  '/api/1.0/theme/{id}/statistic/histogram/values':
    get:
      summary: 'Chart: Frequency of roll values'
      operationId: chartFrequencyOfRollValues
      description: 'Get statistical information about a theme.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n  \"data\": {\n    \"labels\": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],\n    \"datasets\": [{\n      \"label\": \"d4\",\n      \"data\": [12, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n    }, {\n      \"label\": \"d6\",\n      \"data\": [5, 5, 5, 5, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n    }, {\n      \"label\": \"d8\",\n      \"data\": [8, 8, 8, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n    }, {\n      \"label\": \"d20\",\n      \"data\": [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10]\n    }],\n    \"processed_at\": \"2023-10-06T21:36:22.462064Z\"\n    \"updated_at\": \"2023-10-06T21:37:11.221642Z\"\n  }\n}"
      tags:
        - Theme
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the theme.'
        example: dddice-bees
        required: true
        schema:
          type: string
  '/api/1.0/theme/{id}/statistic/timeseries/rolls':
    get:
      summary: 'Chart: Total rolls over time'
      operationId: chartTotalRollsOverTime
      description: 'Get statistical information about a theme.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            text/plain:
              schema:
                type: string
                example: "{\n  \"data\": {\n    \"labels\": [\"2023-01-01\", \"2023-01-02\", \"2023-01-03\"],\n    \"datasets\": [{\n      \"label\": \"Rolls over time\",\n      \"data\": [1000, 1100, 1200]\n    }],\n    \"processed_at\": \"2023-10-06T21:36:22.462064Z\"\n    \"updated_at\": \"2023-10-06T21:37:11.221642Z\"\n  }\n}"
      tags:
        - Theme
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the theme.'
        example: dddice-bees
        required: true
        schema:
          type: string
  /api/1.0/room:
    get:
      summary: 'List Rooms'
      operationId: listRooms
      description: 'List all rooms created or joined by a user'
      parameters:
        -
          in: query
          name: created
          description: 'Only return rooms where you are the owner'
          example: true
          required: false
          schema:
            type: boolean
            description: 'Only return rooms where you are the owner'
            example: true
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  type: 'room[]'
                  data:
                    -
                      name: 'Untitled Room'
                      is_public: true
                      bg_file_path: //images/environment/bg-4.webp
                      slug: EHW7UIl
                      passcode: ea
                      custom_slug: s2B5g4W
                      settings:
                        chat:
                          backgroundColor: 0
                          deleteAfter: 0
                          fadeAfter: 0
                          isDiceExpanded: false
                          isDiceSorted: false
                          isUsernameVisible: true
                          isVisible: true
                          textColor: 16777215
                          textSize: sm
                        lighting:
                          ambientColor: 16777215
                          ambientIntensity: 0.5
                          spotlightColor: 16777215
                          spotlightIntensity: 0.33
                        participant:
                          defaultDiceTrayToGM: false
                        physics:
                          gravity: 9.82
                          throwSpeed: 30
                        roll:
                          allowPlayerRollUpdates: false
                          allowPlayerMoveDice: false
                          autoClear: 10
                          defaultClickBehavior: reroll
                          diceSize: 1
                          diceLimit: 25
                          diceTrayColor: 0
                          disableDiceOutline: false
                          disableDiceShadows: false
                          disableShakingSound: false
                          pickUp: 1
                      updated_at: '2026-03-01T20:13:35.000000Z'
                      created_at: '2026-03-01T20:13:35.000000Z'
                      user:
                        username: darrin08
                        uuid: 0196d078-0687-380d-9b5e-739271a09a5c
                        name: 'Halle Kulas'
                        created_at: '2026-03-01T20:13:35.000000Z'
                        updated_at: '2026-03-01T20:13:35.000000Z'
                      participants:
                        -
                          id: 2
                          username: autem_quisquam
                          color: '#e92ae0'
                          position: 0
                          settings: null
                          created_at: '2026-03-01T20:13:35.000000Z'
                          updated_at: '2026-03-01T20:13:35.000000Z'
                          deleted_at: null
                          user:
                            username: vonrueden.alvina
                            uuid: 12b64f51-fad7-38b7-9e0e-05271dd57377
                            name: 'Hattie Hahn'
                            created_at: '2026-03-01T20:13:35.000000Z'
                            updated_at: '2026-03-01T20:13:35.000000Z'
                        -
                          id: 3
                          username: qui_vel
                          color: '#7fc26d'
                          position: 0
                          settings: null
                          created_at: '2026-03-01T20:13:35.000000Z'
                          updated_at: '2026-03-01T20:13:35.000000Z'
                          deleted_at: null
                          user:
                            username: effertz.herta
                            uuid: dab4bf54-56bd-3a76-bf58-5952bd1ec79b
                            name: 'Dr. Johnson Mueller'
                            created_at: '2026-03-01T20:13:35.000000Z'
                            updated_at: '2026-03-01T20:13:35.000000Z'
                    -
                      name: 'Untitled Room'
                      is_public: true
                      bg_file_path: //images/environment/bg-5.webp
                      slug: EqO20Gb
                      passcode: inventore
                      custom_slug: mivJJeL
                      settings:
                        chat:
                          backgroundColor: 0
                          deleteAfter: 0
                          fadeAfter: 0
                          isDiceExpanded: false
                          isDiceSorted: false
                          isUsernameVisible: true
                          isVisible: true
                          textColor: 16777215
                          textSize: sm
                        lighting:
                          ambientColor: 16777215
                          ambientIntensity: 0.5
                          spotlightColor: 16777215
                          spotlightIntensity: 0.33
                        participant:
                          defaultDiceTrayToGM: false
                        physics:
                          gravity: 9.82
                          throwSpeed: 30
                        roll:
                          allowPlayerRollUpdates: false
                          allowPlayerMoveDice: false
                          autoClear: 10
                          defaultClickBehavior: reroll
                          diceSize: 1
                          diceLimit: 25
                          diceTrayColor: 0
                          disableDiceOutline: false
                          disableDiceShadows: false
                          disableShakingSound: false
                          pickUp: 1
                      updated_at: '2026-03-01T20:13:35.000000Z'
                      created_at: '2026-03-01T20:13:35.000000Z'
                      user:
                        username: ymitchell
                        uuid: 9e24b692-a2a1-34f7-9482-02949d06be9b
                        name: 'Linnea Boyle'
                        created_at: '2026-03-01T20:13:35.000000Z'
                        updated_at: '2026-03-01T20:13:35.000000Z'
                      participants:
                        -
                          id: 4
                          username: doloribus_et
                          color: '#f965d6'
                          position: 0
                          settings: null
                          created_at: '2026-03-01T20:13:35.000000Z'
                          updated_at: '2026-03-01T20:13:35.000000Z'
                          deleted_at: null
                          user:
                            username: terry.nasir
                            uuid: de936995-43a2-3c5e-8b6d-bdbf5c66035b
                            name: 'Brock Hoppe'
                            created_at: '2026-03-01T20:13:35.000000Z'
                            updated_at: '2026-03-01T20:13:35.000000Z'
                        -
                          id: 5
                          username: rerum_excepturi
                          color: '#201b82'
                          position: 0
                          settings: null
                          created_at: '2026-03-01T20:13:35.000000Z'
                          updated_at: '2026-03-01T20:13:35.000000Z'
                          deleted_at: null
                          user:
                            username: eino21
                            uuid: f5851fdd-7bdd-34b4-8b42-203de3bcf0cb
                            name: 'Bettie Hickle'
                            created_at: '2026-03-01T20:13:35.000000Z'
                            updated_at: '2026-03-01T20:13:35.000000Z'
                properties:
                  type:
                    type: string
                    example: 'room[]'
                  data:
                    type: array
                    example:
                      -
                        name: 'Untitled Room'
                        is_public: true
                        bg_file_path: //images/environment/bg-4.webp
                        slug: EHW7UIl
                        passcode: ea
                        custom_slug: s2B5g4W
                        settings:
                          chat:
                            backgroundColor: 0
                            deleteAfter: 0
                            fadeAfter: 0
                            isDiceExpanded: false
                            isDiceSorted: false
                            isUsernameVisible: true
                            isVisible: true
                            textColor: 16777215
                            textSize: sm
                          lighting:
                            ambientColor: 16777215
                            ambientIntensity: 0.5
                            spotlightColor: 16777215
                            spotlightIntensity: 0.33
                          participant:
                            defaultDiceTrayToGM: false
                          physics:
                            gravity: 9.82
                            throwSpeed: 30
                          roll:
                            allowPlayerRollUpdates: false
                            allowPlayerMoveDice: false
                            autoClear: 10
                            defaultClickBehavior: reroll
                            diceSize: 1
                            diceLimit: 25
                            diceTrayColor: 0
                            disableDiceOutline: false
                            disableDiceShadows: false
                            disableShakingSound: false
                            pickUp: 1
                        updated_at: '2026-03-01T20:13:35.000000Z'
                        created_at: '2026-03-01T20:13:35.000000Z'
                        user:
                          username: darrin08
                          uuid: 0196d078-0687-380d-9b5e-739271a09a5c
                          name: 'Halle Kulas'
                          created_at: '2026-03-01T20:13:35.000000Z'
                          updated_at: '2026-03-01T20:13:35.000000Z'
                        participants:
                          -
                            id: 2
                            username: autem_quisquam
                            color: '#e92ae0'
                            position: 0
                            settings: null
                            created_at: '2026-03-01T20:13:35.000000Z'
                            updated_at: '2026-03-01T20:13:35.000000Z'
                            deleted_at: null
                            user:
                              username: vonrueden.alvina
                              uuid: 12b64f51-fad7-38b7-9e0e-05271dd57377
                              name: 'Hattie Hahn'
                              created_at: '2026-03-01T20:13:35.000000Z'
                              updated_at: '2026-03-01T20:13:35.000000Z'
                          -
                            id: 3
                            username: qui_vel
                            color: '#7fc26d'
                            position: 0
                            settings: null
                            created_at: '2026-03-01T20:13:35.000000Z'
                            updated_at: '2026-03-01T20:13:35.000000Z'
                            deleted_at: null
                            user:
                              username: effertz.herta
                              uuid: dab4bf54-56bd-3a76-bf58-5952bd1ec79b
                              name: 'Dr. Johnson Mueller'
                              created_at: '2026-03-01T20:13:35.000000Z'
                              updated_at: '2026-03-01T20:13:35.000000Z'
                      -
                        name: 'Untitled Room'
                        is_public: true
                        bg_file_path: //images/environment/bg-5.webp
                        slug: EqO20Gb
                        passcode: inventore
                        custom_slug: mivJJeL
                        settings:
                          chat:
                            backgroundColor: 0
                            deleteAfter: 0
                            fadeAfter: 0
                            isDiceExpanded: false
                            isDiceSorted: false
                            isUsernameVisible: true
                            isVisible: true
                            textColor: 16777215
                            textSize: sm
                          lighting:
                            ambientColor: 16777215
                            ambientIntensity: 0.5
                            spotlightColor: 16777215
                            spotlightIntensity: 0.33
                          participant:
                            defaultDiceTrayToGM: false
                          physics:
                            gravity: 9.82
                            throwSpeed: 30
                          roll:
                            allowPlayerRollUpdates: false
                            allowPlayerMoveDice: false
                            autoClear: 10
                            defaultClickBehavior: reroll
                            diceSize: 1
                            diceLimit: 25
                            diceTrayColor: 0
                            disableDiceOutline: false
                            disableDiceShadows: false
                            disableShakingSound: false
                            pickUp: 1
                        updated_at: '2026-03-01T20:13:35.000000Z'
                        created_at: '2026-03-01T20:13:35.000000Z'
                        user:
                          username: ymitchell
                          uuid: 9e24b692-a2a1-34f7-9482-02949d06be9b
                          name: 'Linnea Boyle'
                          created_at: '2026-03-01T20:13:35.000000Z'
                          updated_at: '2026-03-01T20:13:35.000000Z'
                        participants:
                          -
                            id: 4
                            username: doloribus_et
                            color: '#f965d6'
                            position: 0
                            settings: null
                            created_at: '2026-03-01T20:13:35.000000Z'
                            updated_at: '2026-03-01T20:13:35.000000Z'
                            deleted_at: null
                            user:
                              username: terry.nasir
                              uuid: de936995-43a2-3c5e-8b6d-bdbf5c66035b
                              name: 'Brock Hoppe'
                              created_at: '2026-03-01T20:13:35.000000Z'
                              updated_at: '2026-03-01T20:13:35.000000Z'
                          -
                            id: 5
                            username: rerum_excepturi
                            color: '#201b82'
                            position: 0
                            settings: null
                            created_at: '2026-03-01T20:13:35.000000Z'
                            updated_at: '2026-03-01T20:13:35.000000Z'
                            deleted_at: null
                            user:
                              username: eino21
                              uuid: f5851fdd-7bdd-34b4-8b42-203de3bcf0cb
                              name: 'Bettie Hickle'
                              created_at: '2026-03-01T20:13:35.000000Z'
                              updated_at: '2026-03-01T20:13:35.000000Z'
                    items:
                      type: object
                      properties:
                        name:
                          type: string
                          example: 'Untitled Room'
                        is_public:
                          type: boolean
                          example: true
                        bg_file_path:
                          type: string
                          example: //images/environment/bg-4.webp
                        slug:
                          type: string
                          example: EHW7UIl
                        passcode:
                          type: string
                          example: ea
                        custom_slug:
                          type: string
                          example: s2B5g4W
                        settings:
                          type: object
                          properties:
                            chat:
                              type: object
                              properties:
                                backgroundColor:
                                  type: integer
                                  example: 0
                                deleteAfter:
                                  type: integer
                                  example: 0
                                fadeAfter:
                                  type: integer
                                  example: 0
                                isDiceExpanded:
                                  type: boolean
                                  example: false
                                isDiceSorted:
                                  type: boolean
                                  example: false
                                isUsernameVisible:
                                  type: boolean
                                  example: true
                                isVisible:
                                  type: boolean
                                  example: true
                                textColor:
                                  type: integer
                                  example: 16777215
                                textSize:
                                  type: string
                                  example: sm
                            lighting:
                              type: object
                              properties:
                                ambientColor:
                                  type: integer
                                  example: 16777215
                                ambientIntensity:
                                  type: number
                                  example: 0.5
                                spotlightColor:
                                  type: integer
                                  example: 16777215
                                spotlightIntensity:
                                  type: number
                                  example: 0.33
                            participant:
                              type: object
                              properties:
                                defaultDiceTrayToGM:
                                  type: boolean
                                  example: false
                            physics:
                              type: object
                              properties:
                                gravity:
                                  type: number
                                  example: 9.82
                                throwSpeed:
                                  type: integer
                                  example: 30
                            roll:
                              type: object
                              properties:
                                allowPlayerRollUpdates:
                                  type: boolean
                                  example: false
                                allowPlayerMoveDice:
                                  type: boolean
                                  example: false
                                autoClear:
                                  type: integer
                                  example: 10
                                defaultClickBehavior:
                                  type: string
                                  example: reroll
                                diceSize:
                                  type: integer
                                  example: 1
                                diceLimit:
                                  type: integer
                                  example: 25
                                diceTrayColor:
                                  type: integer
                                  example: 0
                                disableDiceOutline:
                                  type: boolean
                                  example: false
                                disableDiceShadows:
                                  type: boolean
                                  example: false
                                disableShakingSound:
                                  type: boolean
                                  example: false
                                pickUp:
                                  type: integer
                                  example: 1
                        updated_at:
                          type: string
                          example: '2026-03-01T20:13:35.000000Z'
                        created_at:
                          type: string
                          example: '2026-03-01T20:13:35.000000Z'
                        user:
                          type: object
                          properties:
                            username:
                              type: string
                              example: darrin08
                            uuid:
                              type: string
                              example: 0196d078-0687-380d-9b5e-739271a09a5c
                            name:
                              type: string
                              example: 'Halle Kulas'
                            created_at:
                              type: string
                              example: '2026-03-01T20:13:35.000000Z'
                            updated_at:
                              type: string
                              example: '2026-03-01T20:13:35.000000Z'
                        participants:
                          type: array
                          example:
                            -
                              id: 2
                              username: autem_quisquam
                              color: '#e92ae0'
                              position: 0
                              settings: null
                              created_at: '2026-03-01T20:13:35.000000Z'
                              updated_at: '2026-03-01T20:13:35.000000Z'
                              deleted_at: null
                              user:
                                username: vonrueden.alvina
                                uuid: 12b64f51-fad7-38b7-9e0e-05271dd57377
                                name: 'Hattie Hahn'
                                created_at: '2026-03-01T20:13:35.000000Z'
                                updated_at: '2026-03-01T20:13:35.000000Z'
                            -
                              id: 3
                              username: qui_vel
                              color: '#7fc26d'
                              position: 0
                              settings: null
                              created_at: '2026-03-01T20:13:35.000000Z'
                              updated_at: '2026-03-01T20:13:35.000000Z'
                              deleted_at: null
                              user:
                                username: effertz.herta
                                uuid: dab4bf54-56bd-3a76-bf58-5952bd1ec79b
                                name: 'Dr. Johnson Mueller'
                                created_at: '2026-03-01T20:13:35.000000Z'
                                updated_at: '2026-03-01T20:13:35.000000Z'
                          items:
                            type: object
                            properties:
                              id:
                                type: integer
                                example: 2
                              username:
                                type: string
                                example: autem_quisquam
                              color:
                                type: string
                                example: '#e92ae0'
                              position:
                                type: integer
                                example: 0
                              settings:
                                type: string
                                example: null
                              created_at:
                                type: string
                                example: '2026-03-01T20:13:35.000000Z'
                              updated_at:
                                type: string
                                example: '2026-03-01T20:13:35.000000Z'
                              deleted_at:
                                type: string
                                example: null
                              user:
                                type: object
                                properties:
                                  username:
                                    type: string
                                    example: vonrueden.alvina
                                  uuid:
                                    type: string
                                    example: 12b64f51-fad7-38b7-9e0e-05271dd57377
                                  name:
                                    type: string
                                    example: 'Hattie Hahn'
                                  created_at:
                                    type: string
                                    example: '2026-03-01T20:13:35.000000Z'
                                  updated_at:
                                    type: string
                                    example: '2026-03-01T20:13:35.000000Z'
      tags:
        - Room
    post:
      summary: 'Create a Room'
      operationId: createARoom
      description: "Create a room and use the slug to perform actions in that room.\n\nIf `is_public` is set to `false`, the returned `passcode` will be required\nfor future requests to perform actions in this room.\n\nYou may optionally pass a valid `passcode` to generate your own code."
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    name: 'Untitled Room'
                    is_public: true
                    bg_file_path: //images/environment/bg-2.webp
                    slug: ClMFuSI
                    passcode: ut
                    custom_slug: 9uNy5ob
                    settings:
                      chat:
                        backgroundColor: 0
                        deleteAfter: 0
                        fadeAfter: 0
                        isDiceExpanded: false
                        isDiceSorted: false
                        isUsernameVisible: true
                        isVisible: true
                        textColor: 16777215
                        textSize: sm
                      lighting:
                        ambientColor: 16777215
                        ambientIntensity: 0.5
                        spotlightColor: 16777215
                        spotlightIntensity: 0.33
                      participant:
                        defaultDiceTrayToGM: false
                      physics:
                        gravity: 9.82
                        throwSpeed: 30
                      roll:
                        allowPlayerRollUpdates: false
                        allowPlayerMoveDice: false
                        autoClear: 10
                        defaultClickBehavior: reroll
                        diceSize: 1
                        diceLimit: 25
                        diceTrayColor: 0
                        disableDiceOutline: false
                        disableDiceShadows: false
                        disableShakingSound: false
                        pickUp: 1
                    updated_at: '2026-03-01T20:13:35.000000Z'
                    created_at: '2026-03-01T20:13:35.000000Z'
                    user:
                      username: kasandra.russel
                      uuid: eda8157a-4b22-3342-bfc0-ddb534e8bfaf
                      name: 'Dane Heathcote DDS'
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                    participants: []
                properties:
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                        example: 'Untitled Room'
                      is_public:
                        type: boolean
                        example: true
                      bg_file_path:
                        type: string
                        example: //images/environment/bg-2.webp
                      slug:
                        type: string
                        example: ClMFuSI
                      passcode:
                        type: string
                        example: ut
                      custom_slug:
                        type: string
                        example: 9uNy5ob
                      settings:
                        type: object
                        properties:
                          chat:
                            type: object
                            properties:
                              backgroundColor:
                                type: integer
                                example: 0
                              deleteAfter:
                                type: integer
                                example: 0
                              fadeAfter:
                                type: integer
                                example: 0
                              isDiceExpanded:
                                type: boolean
                                example: false
                              isDiceSorted:
                                type: boolean
                                example: false
                              isUsernameVisible:
                                type: boolean
                                example: true
                              isVisible:
                                type: boolean
                                example: true
                              textColor:
                                type: integer
                                example: 16777215
                              textSize:
                                type: string
                                example: sm
                          lighting:
                            type: object
                            properties:
                              ambientColor:
                                type: integer
                                example: 16777215
                              ambientIntensity:
                                type: number
                                example: 0.5
                              spotlightColor:
                                type: integer
                                example: 16777215
                              spotlightIntensity:
                                type: number
                                example: 0.33
                          participant:
                            type: object
                            properties:
                              defaultDiceTrayToGM:
                                type: boolean
                                example: false
                          physics:
                            type: object
                            properties:
                              gravity:
                                type: number
                                example: 9.82
                              throwSpeed:
                                type: integer
                                example: 30
                          roll:
                            type: object
                            properties:
                              allowPlayerRollUpdates:
                                type: boolean
                                example: false
                              allowPlayerMoveDice:
                                type: boolean
                                example: false
                              autoClear:
                                type: integer
                                example: 10
                              defaultClickBehavior:
                                type: string
                                example: reroll
                              diceSize:
                                type: integer
                                example: 1
                              diceLimit:
                                type: integer
                                example: 25
                              diceTrayColor:
                                type: integer
                                example: 0
                              disableDiceOutline:
                                type: boolean
                                example: false
                              disableDiceShadows:
                                type: boolean
                                example: false
                              disableShakingSound:
                                type: boolean
                                example: false
                              pickUp:
                                type: integer
                                example: 1
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      user:
                        type: object
                        properties:
                          username:
                            type: string
                            example: kasandra.russel
                          uuid:
                            type: string
                            example: eda8157a-4b22-3342-bfc0-ddb534e8bfaf
                          name:
                            type: string
                            example: 'Dane Heathcote DDS'
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                      participants:
                        type: array
                        example: []
      tags:
        - Room
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                is_public:
                  type: boolean
                  description: 'Public or private'
                  example: false
                name:
                  type: string
                  description: Name
                  example: accusamus
                passcode:
                  type: string
                  description: 'Passcode required for private rooms.'
                  example: null
  '/api/1.0/room/{room_slug}':
    get:
      summary: 'Get a Room'
      operationId: getARoom
      description: 'Get information about a room and active participants.'
      parameters:
        -
          in: query
          name: passcode
          description: 'Passcode required for private room'
          example: harum
          required: false
          schema:
            type: string
            description: 'Passcode required for private room'
            example: harum
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    name: 'Untitled Room'
                    is_public: true
                    bg_file_path: //images/environment/bg-3.webp
                    slug: K-oM4Eu
                    passcode: ipsam
                    custom_slug: H0Sg7VQ
                    settings:
                      chat:
                        backgroundColor: 0
                        deleteAfter: 0
                        fadeAfter: 0
                        isDiceExpanded: false
                        isDiceSorted: false
                        isUsernameVisible: true
                        isVisible: true
                        textColor: 16777215
                        textSize: sm
                      lighting:
                        ambientColor: 16777215
                        ambientIntensity: 0.5
                        spotlightColor: 16777215
                        spotlightIntensity: 0.33
                      participant:
                        defaultDiceTrayToGM: false
                      physics:
                        gravity: 9.82
                        throwSpeed: 30
                      roll:
                        allowPlayerRollUpdates: false
                        allowPlayerMoveDice: false
                        autoClear: 10
                        defaultClickBehavior: reroll
                        diceSize: 1
                        diceLimit: 25
                        diceTrayColor: 0
                        disableDiceOutline: false
                        disableDiceShadows: false
                        disableShakingSound: false
                        pickUp: 1
                    updated_at: '2026-03-01T20:13:35.000000Z'
                    created_at: '2026-03-01T20:13:35.000000Z'
                    user:
                      username: malachi49
                      uuid: 5bb02dd6-c907-3b60-97d8-febf376d11df
                      name: 'Clotilde Miller'
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                    participants: []
                properties:
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                        example: 'Untitled Room'
                      is_public:
                        type: boolean
                        example: true
                      bg_file_path:
                        type: string
                        example: //images/environment/bg-3.webp
                      slug:
                        type: string
                        example: K-oM4Eu
                      passcode:
                        type: string
                        example: ipsam
                      custom_slug:
                        type: string
                        example: H0Sg7VQ
                      settings:
                        type: object
                        properties:
                          chat:
                            type: object
                            properties:
                              backgroundColor:
                                type: integer
                                example: 0
                              deleteAfter:
                                type: integer
                                example: 0
                              fadeAfter:
                                type: integer
                                example: 0
                              isDiceExpanded:
                                type: boolean
                                example: false
                              isDiceSorted:
                                type: boolean
                                example: false
                              isUsernameVisible:
                                type: boolean
                                example: true
                              isVisible:
                                type: boolean
                                example: true
                              textColor:
                                type: integer
                                example: 16777215
                              textSize:
                                type: string
                                example: sm
                          lighting:
                            type: object
                            properties:
                              ambientColor:
                                type: integer
                                example: 16777215
                              ambientIntensity:
                                type: number
                                example: 0.5
                              spotlightColor:
                                type: integer
                                example: 16777215
                              spotlightIntensity:
                                type: number
                                example: 0.33
                          participant:
                            type: object
                            properties:
                              defaultDiceTrayToGM:
                                type: boolean
                                example: false
                          physics:
                            type: object
                            properties:
                              gravity:
                                type: number
                                example: 9.82
                              throwSpeed:
                                type: integer
                                example: 30
                          roll:
                            type: object
                            properties:
                              allowPlayerRollUpdates:
                                type: boolean
                                example: false
                              allowPlayerMoveDice:
                                type: boolean
                                example: false
                              autoClear:
                                type: integer
                                example: 10
                              defaultClickBehavior:
                                type: string
                                example: reroll
                              diceSize:
                                type: integer
                                example: 1
                              diceLimit:
                                type: integer
                                example: 25
                              diceTrayColor:
                                type: integer
                                example: 0
                              disableDiceOutline:
                                type: boolean
                                example: false
                              disableDiceShadows:
                                type: boolean
                                example: false
                              disableShakingSound:
                                type: boolean
                                example: false
                              pickUp:
                                type: integer
                                example: 1
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      user:
                        type: object
                        properties:
                          username:
                            type: string
                            example: malachi49
                          uuid:
                            type: string
                            example: 5bb02dd6-c907-3b60-97d8-febf376d11df
                          name:
                            type: string
                            example: 'Clotilde Miller'
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                      participants:
                        type: array
                        example: []
      tags:
        - Room
    patch:
      summary: 'Update a Room'
      operationId: updateARoom
      description: 'Update the name of a room'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    name: 'Untitled Room'
                    is_public: true
                    bg_file_path: //images/environment/bg-4.webp
                    slug: oTpBPqF
                    passcode: reiciendis
                    custom_slug: 018V4gi
                    settings:
                      chat:
                        backgroundColor: 0
                        deleteAfter: 0
                        fadeAfter: 0
                        isDiceExpanded: false
                        isDiceSorted: false
                        isUsernameVisible: true
                        isVisible: true
                        textColor: 16777215
                        textSize: sm
                      lighting:
                        ambientColor: 16777215
                        ambientIntensity: 0.5
                        spotlightColor: 16777215
                        spotlightIntensity: 0.33
                      participant:
                        defaultDiceTrayToGM: false
                      physics:
                        gravity: 9.82
                        throwSpeed: 30
                      roll:
                        allowPlayerRollUpdates: false
                        allowPlayerMoveDice: false
                        autoClear: 10
                        defaultClickBehavior: reroll
                        diceSize: 1
                        diceLimit: 25
                        diceTrayColor: 0
                        disableDiceOutline: false
                        disableDiceShadows: false
                        disableShakingSound: false
                        pickUp: 1
                    updated_at: '2026-03-01T20:13:35.000000Z'
                    created_at: '2026-03-01T20:13:35.000000Z'
                    user:
                      username: alice.zemlak
                      uuid: 0f9c39f3-86e2-3f84-9854-a3025c686276
                      name: 'Ubaldo Dooley'
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                    participants: []
                properties:
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                        example: 'Untitled Room'
                      is_public:
                        type: boolean
                        example: true
                      bg_file_path:
                        type: string
                        example: //images/environment/bg-4.webp
                      slug:
                        type: string
                        example: oTpBPqF
                      passcode:
                        type: string
                        example: reiciendis
                      custom_slug:
                        type: string
                        example: 018V4gi
                      settings:
                        type: object
                        properties:
                          chat:
                            type: object
                            properties:
                              backgroundColor:
                                type: integer
                                example: 0
                              deleteAfter:
                                type: integer
                                example: 0
                              fadeAfter:
                                type: integer
                                example: 0
                              isDiceExpanded:
                                type: boolean
                                example: false
                              isDiceSorted:
                                type: boolean
                                example: false
                              isUsernameVisible:
                                type: boolean
                                example: true
                              isVisible:
                                type: boolean
                                example: true
                              textColor:
                                type: integer
                                example: 16777215
                              textSize:
                                type: string
                                example: sm
                          lighting:
                            type: object
                            properties:
                              ambientColor:
                                type: integer
                                example: 16777215
                              ambientIntensity:
                                type: number
                                example: 0.5
                              spotlightColor:
                                type: integer
                                example: 16777215
                              spotlightIntensity:
                                type: number
                                example: 0.33
                          participant:
                            type: object
                            properties:
                              defaultDiceTrayToGM:
                                type: boolean
                                example: false
                          physics:
                            type: object
                            properties:
                              gravity:
                                type: number
                                example: 9.82
                              throwSpeed:
                                type: integer
                                example: 30
                          roll:
                            type: object
                            properties:
                              allowPlayerRollUpdates:
                                type: boolean
                                example: false
                              allowPlayerMoveDice:
                                type: boolean
                                example: false
                              autoClear:
                                type: integer
                                example: 10
                              defaultClickBehavior:
                                type: string
                                example: reroll
                              diceSize:
                                type: integer
                                example: 1
                              diceLimit:
                                type: integer
                                example: 25
                              diceTrayColor:
                                type: integer
                                example: 0
                              disableDiceOutline:
                                type: boolean
                                example: false
                              disableDiceShadows:
                                type: boolean
                                example: false
                              disableShakingSound:
                                type: boolean
                                example: false
                              pickUp:
                                type: integer
                                example: 1
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      user:
                        type: object
                        properties:
                          username:
                            type: string
                            example: alice.zemlak
                          uuid:
                            type: string
                            example: 0f9c39f3-86e2-3f84-9854-a3025c686276
                          name:
                            type: string
                            example: 'Ubaldo Dooley'
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                      participants:
                        type: array
                        example: []
      tags:
        - Room
      requestBody:
        required: false
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                is_public:
                  type: boolean
                  description: 'Public or private'
                  example: false
                name:
                  type: string
                  description: Name
                  example: qui
                passcode:
                  type: boolean
                  description: 'Passcode required for private rooms.'
                  example: null
                bg_file_path:
                  type: string
                  format: binary
                  description: 'Must be a file.'
                custom_slug:
                  type: string
                  description: 'Must not be greater than 32 characters.'
                  example: hypvxboevdmnfobqn
                settings:
                  type: string
                  description: ''
                  example: null
    delete:
      summary: 'Delete a Room'
      operationId: deleteARoom
      description: 'Delete a room you own.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        204:
          description: ''
      tags:
        - Room
    parameters:
      -
        in: path
        name: room_slug
        description: 'The slug of the room.'
        example: j82tr4
        required: true
        schema:
          type: string
  '/api/1.0/room/{room_slug}/roll':
    patch:
      summary: 'Update Room Rolls'
      operationId: updateRoomRolls
      description: 'Automatically pickup dice from the board or unhide dice to players for all rolls in a room and for the current player.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                nullable: true
      tags:
        - Room
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                dice:
                  type: object
                  description: 'Partial dice roll.'
                  example:
                    is_hidden: true
                  properties:
                    is_visible:
                      type: boolean
                      description: ''
                      example: false
                    is_cleared:
                      type: boolean
                      description: 'Roll value cleared'
                      example: true
                    is_hidden:
                      type: boolean
                      description: 'Roll value hidden'
                      example: false
              required:
                - dice
    parameters:
      -
        in: path
        name: room_slug
        description: 'The slug of the room.'
        example: 1
        required: true
        schema:
          type: integer
  '/api/1.0/room/{room_slug}/participant':
    post:
      summary: 'Join a Room'
      operationId: joinARoom
      description: 'Join a room as a participant'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    name: 'Untitled Room'
                    is_public: true
                    bg_file_path: //images/environment/bg-1.webp
                    slug: F3c2eZH
                    passcode: quod
                    custom_slug: XcnoYvK
                    settings:
                      chat:
                        backgroundColor: 0
                        deleteAfter: 0
                        fadeAfter: 0
                        isDiceExpanded: false
                        isDiceSorted: false
                        isUsernameVisible: true
                        isVisible: true
                        textColor: 16777215
                        textSize: sm
                      lighting:
                        ambientColor: 16777215
                        ambientIntensity: 0.5
                        spotlightColor: 16777215
                        spotlightIntensity: 0.33
                      participant:
                        defaultDiceTrayToGM: false
                      physics:
                        gravity: 9.82
                        throwSpeed: 30
                      roll:
                        allowPlayerRollUpdates: false
                        allowPlayerMoveDice: false
                        autoClear: 10
                        defaultClickBehavior: reroll
                        diceSize: 1
                        diceLimit: 25
                        diceTrayColor: 0
                        disableDiceOutline: false
                        disableDiceShadows: false
                        disableShakingSound: false
                        pickUp: 1
                    updated_at: '2026-03-01T20:13:35.000000Z'
                    created_at: '2026-03-01T20:13:35.000000Z'
                    user:
                      username: garret15
                      uuid: f36eebc6-f7b3-3f4b-a3c7-77c1bc614648
                      name: 'Ulises Metz'
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                    participants: []
                properties:
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                        example: 'Untitled Room'
                      is_public:
                        type: boolean
                        example: true
                      bg_file_path:
                        type: string
                        example: //images/environment/bg-1.webp
                      slug:
                        type: string
                        example: F3c2eZH
                      passcode:
                        type: string
                        example: quod
                      custom_slug:
                        type: string
                        example: XcnoYvK
                      settings:
                        type: object
                        properties:
                          chat:
                            type: object
                            properties:
                              backgroundColor:
                                type: integer
                                example: 0
                              deleteAfter:
                                type: integer
                                example: 0
                              fadeAfter:
                                type: integer
                                example: 0
                              isDiceExpanded:
                                type: boolean
                                example: false
                              isDiceSorted:
                                type: boolean
                                example: false
                              isUsernameVisible:
                                type: boolean
                                example: true
                              isVisible:
                                type: boolean
                                example: true
                              textColor:
                                type: integer
                                example: 16777215
                              textSize:
                                type: string
                                example: sm
                          lighting:
                            type: object
                            properties:
                              ambientColor:
                                type: integer
                                example: 16777215
                              ambientIntensity:
                                type: number
                                example: 0.5
                              spotlightColor:
                                type: integer
                                example: 16777215
                              spotlightIntensity:
                                type: number
                                example: 0.33
                          participant:
                            type: object
                            properties:
                              defaultDiceTrayToGM:
                                type: boolean
                                example: false
                          physics:
                            type: object
                            properties:
                              gravity:
                                type: number
                                example: 9.82
                              throwSpeed:
                                type: integer
                                example: 30
                          roll:
                            type: object
                            properties:
                              allowPlayerRollUpdates:
                                type: boolean
                                example: false
                              allowPlayerMoveDice:
                                type: boolean
                                example: false
                              autoClear:
                                type: integer
                                example: 10
                              defaultClickBehavior:
                                type: string
                                example: reroll
                              diceSize:
                                type: integer
                                example: 1
                              diceLimit:
                                type: integer
                                example: 25
                              diceTrayColor:
                                type: integer
                                example: 0
                              disableDiceOutline:
                                type: boolean
                                example: false
                              disableDiceShadows:
                                type: boolean
                                example: false
                              disableShakingSound:
                                type: boolean
                                example: false
                              pickUp:
                                type: integer
                                example: 1
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      user:
                        type: object
                        properties:
                          username:
                            type: string
                            example: garret15
                          uuid:
                            type: string
                            example: f36eebc6-f7b3-3f4b-a3c7-77c1bc614648
                          name:
                            type: string
                            example: 'Ulises Metz'
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                      participants:
                        type: array
                        example: []
      tags:
        - Room
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                passcode:
                  type: string
                  description: 'Passcode required for private room.'
                  example: null
    parameters:
      -
        in: path
        name: room_slug
        description: 'The slug of the room.'
        example: j82tr4
        required: true
        schema:
          type: string
  '/api/1.0/room/{room_slug}/participant/{id}':
    patch:
      summary: 'Update a Participant'
      operationId: updateAParticipant
      description: 'Update the username or color of the room participant.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    name: 'Untitled Room'
                    is_public: true
                    bg_file_path: //images/environment/bg-2.webp
                    slug: Xgk21J4
                    passcode: officiis
                    custom_slug: qnD_yOU
                    settings:
                      chat:
                        backgroundColor: 0
                        deleteAfter: 0
                        fadeAfter: 0
                        isDiceExpanded: false
                        isDiceSorted: false
                        isUsernameVisible: true
                        isVisible: true
                        textColor: 16777215
                        textSize: sm
                      lighting:
                        ambientColor: 16777215
                        ambientIntensity: 0.5
                        spotlightColor: 16777215
                        spotlightIntensity: 0.33
                      participant:
                        defaultDiceTrayToGM: false
                      physics:
                        gravity: 9.82
                        throwSpeed: 30
                      roll:
                        allowPlayerRollUpdates: false
                        allowPlayerMoveDice: false
                        autoClear: 10
                        defaultClickBehavior: reroll
                        diceSize: 1
                        diceLimit: 25
                        diceTrayColor: 0
                        disableDiceOutline: false
                        disableDiceShadows: false
                        disableShakingSound: false
                        pickUp: 1
                    updated_at: '2026-03-01T20:13:35.000000Z'
                    created_at: '2026-03-01T20:13:35.000000Z'
                    user:
                      username: rath.ova
                      uuid: dbbd29f4-bec6-31ee-a34d-cb485fb27ebd
                      name: 'Aniya Blick V'
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                    participants: []
                properties:
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                        example: 'Untitled Room'
                      is_public:
                        type: boolean
                        example: true
                      bg_file_path:
                        type: string
                        example: //images/environment/bg-2.webp
                      slug:
                        type: string
                        example: Xgk21J4
                      passcode:
                        type: string
                        example: officiis
                      custom_slug:
                        type: string
                        example: qnD_yOU
                      settings:
                        type: object
                        properties:
                          chat:
                            type: object
                            properties:
                              backgroundColor:
                                type: integer
                                example: 0
                              deleteAfter:
                                type: integer
                                example: 0
                              fadeAfter:
                                type: integer
                                example: 0
                              isDiceExpanded:
                                type: boolean
                                example: false
                              isDiceSorted:
                                type: boolean
                                example: false
                              isUsernameVisible:
                                type: boolean
                                example: true
                              isVisible:
                                type: boolean
                                example: true
                              textColor:
                                type: integer
                                example: 16777215
                              textSize:
                                type: string
                                example: sm
                          lighting:
                            type: object
                            properties:
                              ambientColor:
                                type: integer
                                example: 16777215
                              ambientIntensity:
                                type: number
                                example: 0.5
                              spotlightColor:
                                type: integer
                                example: 16777215
                              spotlightIntensity:
                                type: number
                                example: 0.33
                          participant:
                            type: object
                            properties:
                              defaultDiceTrayToGM:
                                type: boolean
                                example: false
                          physics:
                            type: object
                            properties:
                              gravity:
                                type: number
                                example: 9.82
                              throwSpeed:
                                type: integer
                                example: 30
                          roll:
                            type: object
                            properties:
                              allowPlayerRollUpdates:
                                type: boolean
                                example: false
                              allowPlayerMoveDice:
                                type: boolean
                                example: false
                              autoClear:
                                type: integer
                                example: 10
                              defaultClickBehavior:
                                type: string
                                example: reroll
                              diceSize:
                                type: integer
                                example: 1
                              diceLimit:
                                type: integer
                                example: 25
                              diceTrayColor:
                                type: integer
                                example: 0
                              disableDiceOutline:
                                type: boolean
                                example: false
                              disableDiceShadows:
                                type: boolean
                                example: false
                              disableShakingSound:
                                type: boolean
                                example: false
                              pickUp:
                                type: integer
                                example: 1
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      user:
                        type: object
                        properties:
                          username:
                            type: string
                            example: rath.ova
                          uuid:
                            type: string
                            example: dbbd29f4-bec6-31ee-a34d-cb485fb27ebd
                          name:
                            type: string
                            example: 'Aniya Blick V'
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                      participants:
                        type: array
                        example: []
      tags:
        - Room
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: "Update a participant's username."
                  example: 'Galstaff Sorcerer of Light'
                color:
                  type: string
                  description: "Update a participant's color."
                  example: '#FF0000'
                settings:
                  type: string
                  description: ''
                  example: null
                dice_tray:
                  type: object
                  description: "Save a participant's dice tray on the server"
                  example: []
                  properties: []
                passcode:
                  type: string
                  description: 'Passcode required for private room.'
                  example: null
    delete:
      summary: 'Leave a Room'
      operationId: leaveARoom
      description: "Remove a participant from a room. Participants can choose to leave a room\nusing this endpoint. Room owners have permission to remove any participant."
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        204:
          description: ''
      tags:
        - Room
    parameters:
      -
        in: path
        name: room_slug
        description: 'The slug of the room.'
        example: j82tr4
        required: true
        schema:
          type: string
      -
        in: path
        name: id
        description: 'Participant ID.'
        example: 1
        required: true
        schema:
          type: integer
  /api/1.0/roll:
    post:
      summary: 'Create a Roll'
      operationId: createARoll
      description: "Perform a dice roll and optionally send the result to a public or private room.\n\nDice roll values are calculated using the API but can optionally receive a\n`value` and/or `value_to_display` attribute to pass a predetermined value (i.e. when integrating with VTTs).\n\n**Operators**\nOperators allow one to manipulate the outcome of the dice roll. The syntax of operators is based on [Avrae](https://avrae.io/commands#roll) which\nimplements [d20 dice syntax](https://d20.readthedocs.io/en/latest/start.html#dice-syntax)."
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                nullable: true
      tags:
        - Roll
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                dice:
                  type: array
                  description: 'List of dice rolls.'
                  example:
                    -
                      type: d20
                      theme: dddice-red
                    -
                      type: d20
                      theme: dddice-red
                  items:
                    type: object
                    properties:
                      is_hidden:
                        type: boolean
                        description: ''
                        example: false
                      id:
                        type: string
                        description: ''
                        example: optio
                      type:
                        type: string
                        description: 'Type of dice. Standard types are d20, d12, d10, d10x, d8, d6, and d4. Some themes have custom types and should be looked up in the available_themes.'
                        example: d20
                      theme:
                        type: string
                        description: 'Theme ID.'
                        example: dddice-bees
                      label:
                        type: string
                        description: 'A human-readable string to label this dice of the roll with some meaning (ex fire damage vs slashing damage).'
                        example: null
                      value:
                        type: number
                        description: 'Dice value. If no value is provided, dddice will generate a value using our balanced random number generator.'
                        example: null
                      value_to_display:
                        type: string|object
                        description: 'This can be used to replace the numeric value. This is useful in cases where a d20 might contain letters instead of numbers or if a player is speaking in tongues or hieroglyphs.'
                        example: null
                      meta:
                        type: object
                        description: 'Optional data that is not critical to the functionality of a die roll but could be useful to store for display or informational purposes.'
                        example: null
                        properties: []
                    required:
                      - type
                      - theme
                external_id:
                  type: Used
                  description: 'to associate rolls in dddice with 3rd party integrated systems like VTTs.'
                  example: null
                operator:
                  type: object
                  description: 'Optional operators to manipulate the final value of the dice.'
                  example: null
                  properties:
                    k:
                      type: string
                      description: 'Keep all matched values. An integer value - for example, "6" - will keep all rolls of that value and sum them. l<n> will keep the lowest n, e.g. "l2" will keep the lowest two. h<n> will keep highest n, for example, "h3" will keep highest 3.'
                      example: null
                    d:
                      type: string
                      description: 'Drop all matched values. An integer value - for example, "6" - will drop all rolls of that value and sum them. l<n> will drop the lowest n, e.g. "l2" will drop the lowest two. h<n> will drop highest n, for example, "h3" will drop highest 3.'
                      example: null
                    '*':
                      type: integer
                      description: 'Multiply the result by an integer.'
                      example: null
                    /:
                      type: integer
                      description: 'Divide the result by an integer.'
                      example: null
                    round:
                      type: integer
                      description: 'Round the results, valid values are "up", "down", "nearest".'
                      example: null
                room:
                  type: string
                  description: 'Room slug.'
                  example: j82tr4
                whisper:
                  type: array
                  description: 'Participant IDs to whisper this roll to. Only participants specified will see this roll.'
                  example: null
                  items:
                    type: number
                label:
                  type: string
                  description: 'Optional label for this roll.'
                  example: "Longbow damage with Hunter's Mark"
              required:
                - dice
    get:
      summary: 'List rolls'
      operationId: listRolls
      description: 'Fetch rolls from a given room'
      parameters:
        -
          in: query
          name: room
          description: 'Room Slug.'
          example: j82tr4
          required: true
          schema:
            type: string
            description: 'Room Slug.'
            example: j82tr4
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                nullable: true
      tags:
        - Roll
    patch:
      summary: 'Bulk Update Rolls'
      operationId: bulkUpdateRolls
      description: "Pickup dice from the board or unhide dice to players for multiple rolls.\n\nAccepts an array of objects with the same parameters as `PATCH /api/1.0/roll/{id}`."
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                nullable: true
      tags:
        - Roll
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                rolls:
                  type: array
                  description: 'List of rolls.'
                  example:
                    -
                      uuid: '1'
                      dice:
                        -
                          uuid: '1'
                          is_hidden: true
                  items:
                    type: object
                    properties:
                      uuid:
                        type: required
                        description: 'Roll ID'
                        example: 15f8986c-af68-3c6c-b135-8a44956dbbaf
                      dice:
                        type: array
                        description: 'List of partial dice rolls.'
                        example:
                          -
                            uuid: '1'
                            is_hidden: true
                        items:
                          type: object
                          properties:
                            is_hidden:
                              type: boolean
                              description: 'Roll value hidden'
                              example: true
                            is_cleared:
                              type: boolean
                              description: 'Roll value cleared'
                              example: true
                    required:
                      - dice
              required:
                - rolls
    delete:
      summary: 'Delete rolls'
      operationId: deleteRolls
      description: 'Delete rolls from a given room'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        204:
          description: ''
      tags:
        - Roll
  '/api/1.0/roll/{uuid}':
    get:
      summary: 'Get a Roll'
      operationId: getARoll
      description: 'Fetch roll information including the user and optional room information'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                nullable: true
      tags:
        - Roll
    patch:
      summary: 'Update a Roll'
      operationId: updateARoll
      description: 'Pickup dice from the board or unhide dice to players'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                nullable: true
      tags:
        - Roll
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                label:
                  type: string
                  description: ''
                  example: rem
                dice:
                  type: array
                  description: 'List of partial dice rolls.'
                  example:
                    -
                      uuid: '1'
                      is_hidden: true
                  items:
                    type: object
                    properties:
                      uuid:
                        type: string
                        description: ''
                        example: 25d1f92d-2c4b-360f-863d-7cbd211e1715
                      is_cleared:
                        type: boolean
                        description: 'Roll value cleared'
                        example: true
                      is_dropped:
                        type: boolean
                        description: ''
                        example: false
                      is_hidden:
                        type: boolean
                        description: 'Roll value hidden'
                        example: false
                      meta:
                        type: object
                        description: 'Optional data that is not critical to the functionality of a die roll but could be useful to store for display or informational purposes.'
                        example: []
                        properties: []
              required:
                - dice
    parameters:
      -
        in: path
        name: uuid
        description: 'Roll ID.'
        example: c277c714-45c9-3d36-a93c-e09b2665ccc4
        required: true
        schema:
          type: string
  /api/1.0/share:
    post:
      summary: 'Create Share Request'
      operationId: createShareRequest
      description: 'Create a share request for a given theme.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    limit: 5
                    expires_at: '2026-03-01T20:13:35.000000Z'
                    uuid: 53c7baa8-38d5-36ac-be74-2035d52021ec
                    updated_at: '2026-03-01T20:13:35.000000Z'
                    created_at: '2026-03-01T20:13:35.000000Z'
                    user:
                      username: eschamberger
                      uuid: 0d6dcd35-2146-3b5d-8912-5a866b746b6a
                      name: 'Prof. Colten Pfeffer II'
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                    theme:
                      slug: tempora-saepe-quis
                      is_available: true
                      is_extendable: true
                      is_discoverable: true
                      name: Prof.
                      description: 'Pariatur voluptas aliquid et occaecati maxime. Quam non sint reprehenderit.'
                      form_state: null
                      deleted_at: null
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                properties:
                  data:
                    type: object
                    properties:
                      limit:
                        type: integer
                        example: 5
                      expires_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      uuid:
                        type: string
                        example: 53c7baa8-38d5-36ac-be74-2035d52021ec
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      user:
                        type: object
                        properties:
                          username:
                            type: string
                            example: eschamberger
                          uuid:
                            type: string
                            example: 0d6dcd35-2146-3b5d-8912-5a866b746b6a
                          name:
                            type: string
                            example: 'Prof. Colten Pfeffer II'
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                      theme:
                        type: object
                        properties:
                          slug:
                            type: string
                            example: tempora-saepe-quis
                          is_available:
                            type: boolean
                            example: true
                          is_extendable:
                            type: boolean
                            example: true
                          is_discoverable:
                            type: boolean
                            example: true
                          name:
                            type: string
                            example: Prof.
                          description:
                            type: string
                            example: 'Pariatur voluptas aliquid et occaecati maxime. Quam non sint reprehenderit.'
                          form_state:
                            type: string
                            example: null
                          deleted_at:
                            type: string
                            example: null
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
      tags:
        - 'Share Dice'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                slug:
                  type: string
                  description: 'Theme slug.'
                  example: dddice-bees
                limit:
                  type: integer
                  description: 'Number of times this share request can be accepted'
                  example: 8
                expires_at:
                  type: string
                  description: 'Expiration date or datetime'
                  example: et
              required:
                - slug
  '/api/1.0/share/{id}':
    post:
      summary: 'Accept Share Request'
      operationId: acceptShareRequest
      description: "Accept a user's share request which will add the specified theme to your **Digital Dice Box**.\n\nYou can retrieve and modify this theme from your **Digitial Dice Box** by using the [DiceBox](#dice-box) endpoints."
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    limit: 5
                    expires_at: '2026-03-01T20:13:35.000000Z'
                    uuid: e2128583-46f8-3fa5-b36d-dce280a02fc0
                    updated_at: '2026-03-01T20:13:35.000000Z'
                    created_at: '2026-03-01T20:13:35.000000Z'
                    user:
                      username: alexandria.schumm
                      uuid: 9735375f-b66e-35c8-9b72-d3b1843f54e6
                      name: 'Jon Bayer'
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                    theme:
                      slug: optio-et
                      is_available: true
                      is_extendable: true
                      is_discoverable: true
                      name: Prof.
                      description: 'Porro culpa a assumenda itaque sit. Quia et doloribus maiores provident. Voluptatem non iste esse. Et sed accusantium aut.'
                      form_state: null
                      deleted_at: null
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                properties:
                  data:
                    type: object
                    properties:
                      limit:
                        type: integer
                        example: 5
                      expires_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      uuid:
                        type: string
                        example: e2128583-46f8-3fa5-b36d-dce280a02fc0
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      user:
                        type: object
                        properties:
                          username:
                            type: string
                            example: alexandria.schumm
                          uuid:
                            type: string
                            example: 9735375f-b66e-35c8-9b72-d3b1843f54e6
                          name:
                            type: string
                            example: 'Jon Bayer'
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                      theme:
                        type: object
                        properties:
                          slug:
                            type: string
                            example: optio-et
                          is_available:
                            type: boolean
                            example: true
                          is_extendable:
                            type: boolean
                            example: true
                          is_discoverable:
                            type: boolean
                            example: true
                          name:
                            type: string
                            example: Prof.
                          description:
                            type: string
                            example: 'Porro culpa a assumenda itaque sit. Quia et doloribus maiores provident. Voluptatem non iste esse. Et sed accusantium aut.'
                          form_state:
                            type: string
                            example: null
                          deleted_at:
                            type: string
                            example: null
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
      tags:
        - 'Share Dice'
    parameters:
      -
        in: path
        name: id
        description: 'The ID of the share request'
        example: quasi
        required: true
        schema:
          type: string
  /api/1.0/user:
    get:
      summary: 'Get Authenticated User'
      operationId: getAuthenticatedUser
      description: 'Get the current authenticated user.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  type: user
                  data:
                    name: 'Dr. Marvin Kemmer'
                    username: kyra87
                    uuid: 01b6a984-2e41-32a8-aa96-65dc4d74b662
                    updated_at: '2026-03-01T20:13:36.000000Z'
                    created_at: '2026-03-01T20:13:36.000000Z'
                    subscription: false
                    is_merchant: false
                    is_registered: false
                properties:
                  type:
                    type: string
                    example: user
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                        example: 'Dr. Marvin Kemmer'
                      username:
                        type: string
                        example: kyra87
                      uuid:
                        type: string
                        example: 01b6a984-2e41-32a8-aa96-65dc4d74b662
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:36.000000Z'
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:36.000000Z'
                      subscription:
                        type: boolean
                        example: false
                      is_merchant:
                        type: boolean
                        example: false
                      is_registered:
                        type: boolean
                        example: false
      tags:
        - User
    post:
      summary: 'Create Guest User'
      operationId: createGuestUser
      description: "Create a guest user to communicate with other API endpoints. Returns a token that can be used to fetch a user.\n\nThis route is rate-limited to 3 accounts/per minute per IP."
      parameters: []
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  type: user
                  data:
                    name: 'Mrs. Tressie Pfeffer I'
                    username: johnathan.witting
                    uuid: 9e788cb3-d544-35a0-9f28-b213fca085d6
                    updated_at: '2026-03-01T20:13:36.000000Z'
                    created_at: '2026-03-01T20:13:36.000000Z'
                    subscription: false
                    is_merchant: false
                    is_registered: false
                properties:
                  type:
                    type: string
                    example: user
                  data:
                    type: object
                    properties:
                      name:
                        type: string
                        example: 'Mrs. Tressie Pfeffer I'
                      username:
                        type: string
                        example: johnathan.witting
                      uuid:
                        type: string
                        example: 9e788cb3-d544-35a0-9f28-b213fca085d6
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:36.000000Z'
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:36.000000Z'
                      subscription:
                        type: boolean
                        example: false
                      is_merchant:
                        type: boolean
                        example: false
                      is_registered:
                        type: boolean
                        example: false
      tags:
        - User
      security: []
  /api/1.0/user/token:
    post:
      summary: 'Create API Token'
      operationId: createAPIToken
      description: 'Returns a new API token for the authenticated user.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  type: token
                  data: '<your-new-api-token>'
                properties:
                  type:
                    type: string
                    example: token
                  data:
                    type: string
                    example: '<your-new-api-token>'
      tags:
        - User
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: ''
                  example: maxime
  '/api/1.0/user/token/{token}':
    delete:
      summary: 'Delete API Key'
      operationId: deleteAPIKey
      description: ''
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        204:
          description: ''
      tags:
        - User
    parameters:
      -
        in: path
        name: token
        description: Token
        example: natus
        required: true
        schema:
          type: string
  /api/1.0/dice-box:
    get:
      summary: 'List Dice Box Collection'
      operationId: listDiceBoxCollection
      description: 'Fetch a list of all dice in your **Digital Dice Box**.'
      parameters:
        -
          in: query
          name: filter
          description: 'Filter themes by name'
          example: amet
          required: false
          schema:
            type: string
            description: 'Filter themes by name'
            example: amet
        -
          in: query
          name: ids
          description: 'Comma seperated list of themes IDs to get'
          example: sequi
          required: false
          schema:
            type: string
            description: 'Comma seperated list of themes IDs to get'
            example: sequi
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  type: 'theme[]'
                  data:
                    -
                      meshes:
                        d4: /mesh/d04.fbx
                        d6: /mesh/d06.fbx
                        d8: /mesh/d08.fbx
                        d10: /mesh/d10.fbx
                        d10x: /mesh/d10.fbx
                        d12: /mesh/d12.fbx
                        d20: /mesh/d20.fbx
                      available_dice:
                        - d4
                        - d6
                        - d8
                        - d10
                        - d10x
                        - d12
                        - d20
                      physics:
                        inertia:
                          d4: 5
                          d6: 12
                          d8: 10
                          d10: 9
                          d10x: 9
                          d12: 8
                          d20: 6
                        weight:
                          d4: 300
                          d6: 300
                          d8: 340
                          d10: 350
                          d10x: 350
                          d12: 350
                          d20: 400
                      sizes:
                        d4: 1
                        d6: 1
                        d8: 1
                        d10: 1
                        d10x: 1
                        d12: 1
                        d20: 1
                      sounds:
                        -
                          src: /sounds/roll-1.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-2.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-3.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-loading-sm.mp3
                          'on': roll.loading
                          value: 2
                        -
                          src: /sounds/roll-loading-lg.mp3
                          'on': roll.loading
                          value: '>=3'
                      uniforms:
                        number:
                          type: color
                          value:
                            b: 0
                            g: 0.424
                            r: 0.463
                        diffuse:
                          type: color
                          value:
                            b: 0
                            g: 0.929
                            r: 1
                      values:
                        d4:
                          - 1
                          - 2
                          - 3
                          - 4
                        d6:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                        d8:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                        d10:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                        d12:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                          - 11
                          - 12
                        d20:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                          - 11
                          - 12
                          - 13
                          - 14
                          - 15
                          - 16
                          - 17
                          - 18
                          - 19
                          - 20
                        d10x:
                          - 10
                          - 20
                          - 30
                          - 40
                          - 50
                          - 60
                          - 70
                          - 80
                          - 90
                          - 0
                      id: autem-labore-quia
                      name: Mr.
                      label:
                        color: '#000000'
                        background_color: '#e3d12d'
                      version: 1.0.0
                      textures:
                        -
                          src:
                            d4: u_numberMap.png
                            d6: u_numberMap.png
                            d8: u_numberMap.png
                            d10: u_numberMap.png
                            d12: u_numberMap.png
                            d20: u_numberMap.png
                            d10x: u_numberMap_d10x.png
                          binding: u_numberMap
                      api_version: '1.0'
                      description: 'Et perspiciatis dicta animi pariatur illum facere quisquam. Eius cupiditate unde commodi id nobis totam sunt autem. Tenetur eveniet natus dolores culpa.'
                      user:
                        username: mrobel
                        uuid: a0ef1639-d5e3-3d85-94cc-e02a84bf3856
                        name: 'Lavonne Bergstrom'
                        created_at: '2026-03-01T20:13:35.000000Z'
                        updated_at: '2026-03-01T20:13:35.000000Z'
                        subscription: false
                        is_merchant: false
                        is_registered: false
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                    -
                      meshes:
                        d4: /mesh/d04.fbx
                        d6: /mesh/d06.fbx
                        d8: /mesh/d08.fbx
                        d10: /mesh/d10.fbx
                        d10x: /mesh/d10.fbx
                        d12: /mesh/d12.fbx
                        d20: /mesh/d20.fbx
                      available_dice:
                        - d4
                        - d6
                        - d8
                        - d10
                        - d10x
                        - d12
                        - d20
                      physics:
                        inertia:
                          d4: 5
                          d6: 12
                          d8: 10
                          d10: 9
                          d10x: 9
                          d12: 8
                          d20: 6
                        weight:
                          d4: 300
                          d6: 300
                          d8: 340
                          d10: 350
                          d10x: 350
                          d12: 350
                          d20: 400
                      sizes:
                        d4: 1
                        d6: 1
                        d8: 1
                        d10: 1
                        d10x: 1
                        d12: 1
                        d20: 1
                      sounds:
                        -
                          src: /sounds/roll-1.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-2.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-3.mp3
                          'on': die.collide
                        -
                          src: /sounds/roll-loading-sm.mp3
                          'on': roll.loading
                          value: 2
                        -
                          src: /sounds/roll-loading-lg.mp3
                          'on': roll.loading
                          value: '>=3'
                      uniforms:
                        number:
                          type: color
                          value:
                            b: 0
                            g: 0.424
                            r: 0.463
                        diffuse:
                          type: color
                          value:
                            b: 0
                            g: 0.929
                            r: 1
                      values:
                        d4:
                          - 1
                          - 2
                          - 3
                          - 4
                        d6:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                        d8:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                        d10:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                        d12:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                          - 11
                          - 12
                        d20:
                          - 1
                          - 2
                          - 3
                          - 4
                          - 5
                          - 6
                          - 7
                          - 8
                          - 9
                          - 10
                          - 11
                          - 12
                          - 13
                          - 14
                          - 15
                          - 16
                          - 17
                          - 18
                          - 19
                          - 20
                        d10x:
                          - 10
                          - 20
                          - 30
                          - 40
                          - 50
                          - 60
                          - 70
                          - 80
                          - 90
                          - 0
                      id: hic-eius
                      name: Mr.
                      label:
                        color: '#000000'
                        background_color: '#e3d12d'
                      version: 1.0.0
                      textures:
                        -
                          src:
                            d4: u_numberMap.png
                            d6: u_numberMap.png
                            d8: u_numberMap.png
                            d10: u_numberMap.png
                            d12: u_numberMap.png
                            d20: u_numberMap.png
                            d10x: u_numberMap_d10x.png
                          binding: u_numberMap
                      api_version: '1.0'
                      description: 'Et et et modi molestiae facere quibusdam. Id ab distinctio vero nemo tempore rem laboriosam. Dolor est nostrum et harum iste iusto totam. Velit beatae qui ut ab.'
                      user:
                        username: angus83
                        uuid: 2a5014d1-18a6-30f9-9bfc-64b50f451ae5
                        name: 'Jacques Lang'
                        created_at: '2026-03-01T20:13:35.000000Z'
                        updated_at: '2026-03-01T20:13:35.000000Z'
                        subscription: false
                        is_merchant: false
                        is_registered: false
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                properties:
                  type:
                    type: string
                    example: 'theme[]'
                  data:
                    type: array
                    example:
                      -
                        meshes:
                          d4: /mesh/d04.fbx
                          d6: /mesh/d06.fbx
                          d8: /mesh/d08.fbx
                          d10: /mesh/d10.fbx
                          d10x: /mesh/d10.fbx
                          d12: /mesh/d12.fbx
                          d20: /mesh/d20.fbx
                        available_dice:
                          - d4
                          - d6
                          - d8
                          - d10
                          - d10x
                          - d12
                          - d20
                        physics:
                          inertia:
                            d4: 5
                            d6: 12
                            d8: 10
                            d10: 9
                            d10x: 9
                            d12: 8
                            d20: 6
                          weight:
                            d4: 300
                            d6: 300
                            d8: 340
                            d10: 350
                            d10x: 350
                            d12: 350
                            d20: 400
                        sizes:
                          d4: 1
                          d6: 1
                          d8: 1
                          d10: 1
                          d10x: 1
                          d12: 1
                          d20: 1
                        sounds:
                          -
                            src: /sounds/roll-1.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-2.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-3.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-loading-sm.mp3
                            'on': roll.loading
                            value: 2
                          -
                            src: /sounds/roll-loading-lg.mp3
                            'on': roll.loading
                            value: '>=3'
                        uniforms:
                          number:
                            type: color
                            value:
                              b: 0
                              g: 0.424
                              r: 0.463
                          diffuse:
                            type: color
                            value:
                              b: 0
                              g: 0.929
                              r: 1
                        values:
                          d4:
                            - 1
                            - 2
                            - 3
                            - 4
                          d6:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                          d8:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                          d10:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                          d12:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                            - 11
                            - 12
                          d20:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                            - 11
                            - 12
                            - 13
                            - 14
                            - 15
                            - 16
                            - 17
                            - 18
                            - 19
                            - 20
                          d10x:
                            - 10
                            - 20
                            - 30
                            - 40
                            - 50
                            - 60
                            - 70
                            - 80
                            - 90
                            - 0
                        id: autem-labore-quia
                        name: Mr.
                        label:
                          color: '#000000'
                          background_color: '#e3d12d'
                        version: 1.0.0
                        textures:
                          -
                            src:
                              d4: u_numberMap.png
                              d6: u_numberMap.png
                              d8: u_numberMap.png
                              d10: u_numberMap.png
                              d12: u_numberMap.png
                              d20: u_numberMap.png
                              d10x: u_numberMap_d10x.png
                            binding: u_numberMap
                        api_version: '1.0'
                        description: 'Et perspiciatis dicta animi pariatur illum facere quisquam. Eius cupiditate unde commodi id nobis totam sunt autem. Tenetur eveniet natus dolores culpa.'
                        user:
                          username: mrobel
                          uuid: a0ef1639-d5e3-3d85-94cc-e02a84bf3856
                          name: 'Lavonne Bergstrom'
                          created_at: '2026-03-01T20:13:35.000000Z'
                          updated_at: '2026-03-01T20:13:35.000000Z'
                          subscription: false
                          is_merchant: false
                          is_registered: false
                        created_at: '2026-03-01T20:13:35.000000Z'
                        updated_at: '2026-03-01T20:13:35.000000Z'
                      -
                        meshes:
                          d4: /mesh/d04.fbx
                          d6: /mesh/d06.fbx
                          d8: /mesh/d08.fbx
                          d10: /mesh/d10.fbx
                          d10x: /mesh/d10.fbx
                          d12: /mesh/d12.fbx
                          d20: /mesh/d20.fbx
                        available_dice:
                          - d4
                          - d6
                          - d8
                          - d10
                          - d10x
                          - d12
                          - d20
                        physics:
                          inertia:
                            d4: 5
                            d6: 12
                            d8: 10
                            d10: 9
                            d10x: 9
                            d12: 8
                            d20: 6
                          weight:
                            d4: 300
                            d6: 300
                            d8: 340
                            d10: 350
                            d10x: 350
                            d12: 350
                            d20: 400
                        sizes:
                          d4: 1
                          d6: 1
                          d8: 1
                          d10: 1
                          d10x: 1
                          d12: 1
                          d20: 1
                        sounds:
                          -
                            src: /sounds/roll-1.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-2.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-3.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-loading-sm.mp3
                            'on': roll.loading
                            value: 2
                          -
                            src: /sounds/roll-loading-lg.mp3
                            'on': roll.loading
                            value: '>=3'
                        uniforms:
                          number:
                            type: color
                            value:
                              b: 0
                              g: 0.424
                              r: 0.463
                          diffuse:
                            type: color
                            value:
                              b: 0
                              g: 0.929
                              r: 1
                        values:
                          d4:
                            - 1
                            - 2
                            - 3
                            - 4
                          d6:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                          d8:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                          d10:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                          d12:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                            - 11
                            - 12
                          d20:
                            - 1
                            - 2
                            - 3
                            - 4
                            - 5
                            - 6
                            - 7
                            - 8
                            - 9
                            - 10
                            - 11
                            - 12
                            - 13
                            - 14
                            - 15
                            - 16
                            - 17
                            - 18
                            - 19
                            - 20
                          d10x:
                            - 10
                            - 20
                            - 30
                            - 40
                            - 50
                            - 60
                            - 70
                            - 80
                            - 90
                            - 0
                        id: hic-eius
                        name: Mr.
                        label:
                          color: '#000000'
                          background_color: '#e3d12d'
                        version: 1.0.0
                        textures:
                          -
                            src:
                              d4: u_numberMap.png
                              d6: u_numberMap.png
                              d8: u_numberMap.png
                              d10: u_numberMap.png
                              d12: u_numberMap.png
                              d20: u_numberMap.png
                              d10x: u_numberMap_d10x.png
                            binding: u_numberMap
                        api_version: '1.0'
                        description: 'Et et et modi molestiae facere quibusdam. Id ab distinctio vero nemo tempore rem laboriosam. Dolor est nostrum et harum iste iusto totam. Velit beatae qui ut ab.'
                        user:
                          username: angus83
                          uuid: 2a5014d1-18a6-30f9-9bfc-64b50f451ae5
                          name: 'Jacques Lang'
                          created_at: '2026-03-01T20:13:35.000000Z'
                          updated_at: '2026-03-01T20:13:35.000000Z'
                          subscription: false
                          is_merchant: false
                          is_registered: false
                        created_at: '2026-03-01T20:13:35.000000Z'
                        updated_at: '2026-03-01T20:13:35.000000Z'
                    items:
                      type: object
                      properties:
                        meshes:
                          type: object
                          properties:
                            d4:
                              type: string
                              example: /mesh/d04.fbx
                            d6:
                              type: string
                              example: /mesh/d06.fbx
                            d8:
                              type: string
                              example: /mesh/d08.fbx
                            d10:
                              type: string
                              example: /mesh/d10.fbx
                            d10x:
                              type: string
                              example: /mesh/d10.fbx
                            d12:
                              type: string
                              example: /mesh/d12.fbx
                            d20:
                              type: string
                              example: /mesh/d20.fbx
                        available_dice:
                          type: array
                          example:
                            - d4
                            - d6
                            - d8
                            - d10
                            - d10x
                            - d12
                            - d20
                          items:
                            type: string
                        physics:
                          type: object
                          properties:
                            inertia:
                              type: object
                              properties:
                                d4:
                                  type: integer
                                  example: 5
                                d6:
                                  type: integer
                                  example: 12
                                d8:
                                  type: integer
                                  example: 10
                                d10:
                                  type: integer
                                  example: 9
                                d10x:
                                  type: integer
                                  example: 9
                                d12:
                                  type: integer
                                  example: 8
                                d20:
                                  type: integer
                                  example: 6
                            weight:
                              type: object
                              properties:
                                d4:
                                  type: integer
                                  example: 300
                                d6:
                                  type: integer
                                  example: 300
                                d8:
                                  type: integer
                                  example: 340
                                d10:
                                  type: integer
                                  example: 350
                                d10x:
                                  type: integer
                                  example: 350
                                d12:
                                  type: integer
                                  example: 350
                                d20:
                                  type: integer
                                  example: 400
                        sizes:
                          type: object
                          properties:
                            d4:
                              type: integer
                              example: 1
                            d6:
                              type: integer
                              example: 1
                            d8:
                              type: integer
                              example: 1
                            d10:
                              type: integer
                              example: 1
                            d10x:
                              type: integer
                              example: 1
                            d12:
                              type: integer
                              example: 1
                            d20:
                              type: integer
                              example: 1
                        sounds:
                          type: array
                          example:
                            -
                              src: /sounds/roll-1.mp3
                              'on': die.collide
                            -
                              src: /sounds/roll-2.mp3
                              'on': die.collide
                            -
                              src: /sounds/roll-3.mp3
                              'on': die.collide
                            -
                              src: /sounds/roll-loading-sm.mp3
                              'on': roll.loading
                              value: 2
                            -
                              src: /sounds/roll-loading-lg.mp3
                              'on': roll.loading
                              value: '>=3'
                          items:
                            type: object
                            properties:
                              src:
                                type: string
                                example: /sounds/roll-1.mp3
                              'on':
                                type: string
                                example: die.collide
                        uniforms:
                          type: object
                          properties:
                            number:
                              type: object
                              properties:
                                type:
                                  type: string
                                  example: color
                                value:
                                  type: object
                                  properties:
                                    b:
                                      type: integer
                                      example: 0
                                    g:
                                      type: number
                                      example: 0.424
                                    r:
                                      type: number
                                      example: 0.463
                            diffuse:
                              type: object
                              properties:
                                type:
                                  type: string
                                  example: color
                                value:
                                  type: object
                                  properties:
                                    b:
                                      type: integer
                                      example: 0
                                    g:
                                      type: number
                                      example: 0.929
                                    r:
                                      type: integer
                                      example: 1
                        values:
                          type: object
                          properties:
                            d4:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                              items:
                                type: integer
                            d6:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                              items:
                                type: integer
                            d8:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                              items:
                                type: integer
                            d10:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                                - 9
                                - 10
                              items:
                                type: integer
                            d12:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                                - 9
                                - 10
                                - 11
                                - 12
                              items:
                                type: integer
                            d20:
                              type: array
                              example:
                                - 1
                                - 2
                                - 3
                                - 4
                                - 5
                                - 6
                                - 7
                                - 8
                                - 9
                                - 10
                                - 11
                                - 12
                                - 13
                                - 14
                                - 15
                                - 16
                                - 17
                                - 18
                                - 19
                                - 20
                              items:
                                type: integer
                            d10x:
                              type: array
                              example:
                                - 10
                                - 20
                                - 30
                                - 40
                                - 50
                                - 60
                                - 70
                                - 80
                                - 90
                                - 0
                              items:
                                type: integer
                        id:
                          type: string
                          example: autem-labore-quia
                        name:
                          type: string
                          example: Mr.
                        label:
                          type: object
                          properties:
                            color:
                              type: string
                              example: '#000000'
                            background_color:
                              type: string
                              example: '#e3d12d'
                        version:
                          type: string
                          example: 1.0.0
                        textures:
                          type: array
                          example:
                            -
                              src:
                                d4: u_numberMap.png
                                d6: u_numberMap.png
                                d8: u_numberMap.png
                                d10: u_numberMap.png
                                d12: u_numberMap.png
                                d20: u_numberMap.png
                                d10x: u_numberMap_d10x.png
                              binding: u_numberMap
                          items:
                            type: object
                            properties:
                              src:
                                type: object
                                properties:
                                  d4:
                                    type: string
                                    example: u_numberMap.png
                                  d6:
                                    type: string
                                    example: u_numberMap.png
                                  d8:
                                    type: string
                                    example: u_numberMap.png
                                  d10:
                                    type: string
                                    example: u_numberMap.png
                                  d12:
                                    type: string
                                    example: u_numberMap.png
                                  d20:
                                    type: string
                                    example: u_numberMap.png
                                  d10x:
                                    type: string
                                    example: u_numberMap_d10x.png
                              binding:
                                type: string
                                example: u_numberMap
                        api_version:
                          type: string
                          example: '1.0'
                        description:
                          type: string
                          example: 'Et perspiciatis dicta animi pariatur illum facere quisquam. Eius cupiditate unde commodi id nobis totam sunt autem. Tenetur eveniet natus dolores culpa.'
                        user:
                          type: object
                          properties:
                            username:
                              type: string
                              example: mrobel
                            uuid:
                              type: string
                              example: a0ef1639-d5e3-3d85-94cc-e02a84bf3856
                            name:
                              type: string
                              example: 'Lavonne Bergstrom'
                            created_at:
                              type: string
                              example: '2026-03-01T20:13:35.000000Z'
                            updated_at:
                              type: string
                              example: '2026-03-01T20:13:35.000000Z'
                            subscription:
                              type: boolean
                              example: false
                            is_merchant:
                              type: boolean
                              example: false
                            is_registered:
                              type: boolean
                              example: false
                        created_at:
                          type: string
                          example: '2026-03-01T20:13:35.000000Z'
                        updated_at:
                          type: string
                          example: '2026-03-01T20:13:35.000000Z'
      tags:
        - 'Dice Box'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                limit:
                  type: number
                  description: ''
                  example: 0.0129362
                filter:
                  type: string
                  description: ''
                  example: debitis
    post:
      summary: 'Add Theme to Dice Box'
      operationId: addThemeToDiceBox
      description: 'Add a theme to your **Digital Dice Box**.'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    meshes:
                      d4: /mesh/d04.fbx
                      d6: /mesh/d06.fbx
                      d8: /mesh/d08.fbx
                      d10: /mesh/d10.fbx
                      d10x: /mesh/d10.fbx
                      d12: /mesh/d12.fbx
                      d20: /mesh/d20.fbx
                    available_dice:
                      - d4
                      - d6
                      - d8
                      - d10
                      - d10x
                      - d12
                      - d20
                    physics:
                      inertia:
                        d4: 5
                        d6: 12
                        d8: 10
                        d10: 9
                        d10x: 9
                        d12: 8
                        d20: 6
                      weight:
                        d4: 300
                        d6: 300
                        d8: 340
                        d10: 350
                        d10x: 350
                        d12: 350
                        d20: 400
                    sizes:
                      d4: 1
                      d6: 1
                      d8: 1
                      d10: 1
                      d10x: 1
                      d12: 1
                      d20: 1
                    sounds:
                      -
                        src: /sounds/roll-1.mp3
                        'on': die.collide
                      -
                        src: /sounds/roll-2.mp3
                        'on': die.collide
                      -
                        src: /sounds/roll-3.mp3
                        'on': die.collide
                      -
                        src: /sounds/roll-loading-sm.mp3
                        'on': roll.loading
                        value: 2
                      -
                        src: /sounds/roll-loading-lg.mp3
                        'on': roll.loading
                        value: '>=3'
                    uniforms:
                      number:
                        type: color
                        value:
                          b: 0
                          g: 0.424
                          r: 0.463
                      diffuse:
                        type: color
                        value:
                          b: 0
                          g: 0.929
                          r: 1
                    values:
                      d4:
                        - 1
                        - 2
                        - 3
                        - 4
                      d6:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                      d8:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                      d10:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                      d12:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                        - 11
                        - 12
                      d20:
                        - 1
                        - 2
                        - 3
                        - 4
                        - 5
                        - 6
                        - 7
                        - 8
                        - 9
                        - 10
                        - 11
                        - 12
                        - 13
                        - 14
                        - 15
                        - 16
                        - 17
                        - 18
                        - 19
                        - 20
                      d10x:
                        - 10
                        - 20
                        - 30
                        - 40
                        - 50
                        - 60
                        - 70
                        - 80
                        - 90
                        - 0
                    id: adipisci-praesentium-atque
                    name: Prof.
                    label:
                      color: '#000000'
                      background_color: '#e3d12d'
                    version: 1.0.0
                    textures:
                      -
                        src:
                          d4: u_numberMap.png
                          d6: u_numberMap.png
                          d8: u_numberMap.png
                          d10: u_numberMap.png
                          d12: u_numberMap.png
                          d20: u_numberMap.png
                          d10x: u_numberMap_d10x.png
                        binding: u_numberMap
                    api_version: '1.0'
                    description: 'Consequuntur ullam dolorem expedita neque sequi. Amet pariatur minus sint iste quo dolores eveniet omnis. Autem nihil quidem placeat quibusdam eos.'
                    user:
                      username: kenyatta25
                      uuid: c3434b0a-5d3b-37cc-92ff-504da2ccdf88
                      name: 'Lambert Kovacek'
                      created_at: '2026-03-01T20:13:35.000000Z'
                      updated_at: '2026-03-01T20:13:35.000000Z'
                      subscription: false
                      is_merchant: false
                      is_registered: false
                    created_at: '2026-03-01T20:13:35.000000Z'
                    updated_at: '2026-03-01T20:13:35.000000Z'
                properties:
                  data:
                    type: object
                    properties:
                      meshes:
                        type: object
                        properties:
                          d4:
                            type: string
                            example: /mesh/d04.fbx
                          d6:
                            type: string
                            example: /mesh/d06.fbx
                          d8:
                            type: string
                            example: /mesh/d08.fbx
                          d10:
                            type: string
                            example: /mesh/d10.fbx
                          d10x:
                            type: string
                            example: /mesh/d10.fbx
                          d12:
                            type: string
                            example: /mesh/d12.fbx
                          d20:
                            type: string
                            example: /mesh/d20.fbx
                      available_dice:
                        type: array
                        example:
                          - d4
                          - d6
                          - d8
                          - d10
                          - d10x
                          - d12
                          - d20
                        items:
                          type: string
                      physics:
                        type: object
                        properties:
                          inertia:
                            type: object
                            properties:
                              d4:
                                type: integer
                                example: 5
                              d6:
                                type: integer
                                example: 12
                              d8:
                                type: integer
                                example: 10
                              d10:
                                type: integer
                                example: 9
                              d10x:
                                type: integer
                                example: 9
                              d12:
                                type: integer
                                example: 8
                              d20:
                                type: integer
                                example: 6
                          weight:
                            type: object
                            properties:
                              d4:
                                type: integer
                                example: 300
                              d6:
                                type: integer
                                example: 300
                              d8:
                                type: integer
                                example: 340
                              d10:
                                type: integer
                                example: 350
                              d10x:
                                type: integer
                                example: 350
                              d12:
                                type: integer
                                example: 350
                              d20:
                                type: integer
                                example: 400
                      sizes:
                        type: object
                        properties:
                          d4:
                            type: integer
                            example: 1
                          d6:
                            type: integer
                            example: 1
                          d8:
                            type: integer
                            example: 1
                          d10:
                            type: integer
                            example: 1
                          d10x:
                            type: integer
                            example: 1
                          d12:
                            type: integer
                            example: 1
                          d20:
                            type: integer
                            example: 1
                      sounds:
                        type: array
                        example:
                          -
                            src: /sounds/roll-1.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-2.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-3.mp3
                            'on': die.collide
                          -
                            src: /sounds/roll-loading-sm.mp3
                            'on': roll.loading
                            value: 2
                          -
                            src: /sounds/roll-loading-lg.mp3
                            'on': roll.loading
                            value: '>=3'
                        items:
                          type: object
                          properties:
                            src:
                              type: string
                              example: /sounds/roll-1.mp3
                            'on':
                              type: string
                              example: die.collide
                      uniforms:
                        type: object
                        properties:
                          number:
                            type: object
                            properties:
                              type:
                                type: string
                                example: color
                              value:
                                type: object
                                properties:
                                  b:
                                    type: integer
                                    example: 0
                                  g:
                                    type: number
                                    example: 0.424
                                  r:
                                    type: number
                                    example: 0.463
                          diffuse:
                            type: object
                            properties:
                              type:
                                type: string
                                example: color
                              value:
                                type: object
                                properties:
                                  b:
                                    type: integer
                                    example: 0
                                  g:
                                    type: number
                                    example: 0.929
                                  r:
                                    type: integer
                                    example: 1
                      values:
                        type: object
                        properties:
                          d4:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                            items:
                              type: integer
                          d6:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                            items:
                              type: integer
                          d8:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                            items:
                              type: integer
                          d10:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                              - 9
                              - 10
                            items:
                              type: integer
                          d12:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                              - 9
                              - 10
                              - 11
                              - 12
                            items:
                              type: integer
                          d20:
                            type: array
                            example:
                              - 1
                              - 2
                              - 3
                              - 4
                              - 5
                              - 6
                              - 7
                              - 8
                              - 9
                              - 10
                              - 11
                              - 12
                              - 13
                              - 14
                              - 15
                              - 16
                              - 17
                              - 18
                              - 19
                              - 20
                            items:
                              type: integer
                          d10x:
                            type: array
                            example:
                              - 10
                              - 20
                              - 30
                              - 40
                              - 50
                              - 60
                              - 70
                              - 80
                              - 90
                              - 0
                            items:
                              type: integer
                      id:
                        type: string
                        example: adipisci-praesentium-atque
                      name:
                        type: string
                        example: Prof.
                      label:
                        type: object
                        properties:
                          color:
                            type: string
                            example: '#000000'
                          background_color:
                            type: string
                            example: '#e3d12d'
                      version:
                        type: string
                        example: 1.0.0
                      textures:
                        type: array
                        example:
                          -
                            src:
                              d4: u_numberMap.png
                              d6: u_numberMap.png
                              d8: u_numberMap.png
                              d10: u_numberMap.png
                              d12: u_numberMap.png
                              d20: u_numberMap.png
                              d10x: u_numberMap_d10x.png
                            binding: u_numberMap
                        items:
                          type: object
                          properties:
                            src:
                              type: object
                              properties:
                                d4:
                                  type: string
                                  example: u_numberMap.png
                                d6:
                                  type: string
                                  example: u_numberMap.png
                                d8:
                                  type: string
                                  example: u_numberMap.png
                                d10:
                                  type: string
                                  example: u_numberMap.png
                                d12:
                                  type: string
                                  example: u_numberMap.png
                                d20:
                                  type: string
                                  example: u_numberMap.png
                                d10x:
                                  type: string
                                  example: u_numberMap_d10x.png
                            binding:
                              type: string
                              example: u_numberMap
                      api_version:
                        type: string
                        example: '1.0'
                      description:
                        type: string
                        example: 'Consequuntur ullam dolorem expedita neque sequi. Amet pariatur minus sint iste quo dolores eveniet omnis. Autem nihil quidem placeat quibusdam eos.'
                      user:
                        type: object
                        properties:
                          username:
                            type: string
                            example: kenyatta25
                          uuid:
                            type: string
                            example: c3434b0a-5d3b-37cc-92ff-504da2ccdf88
                          name:
                            type: string
                            example: 'Lambert Kovacek'
                          created_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                          updated_at:
                            type: string
                            example: '2026-03-01T20:13:35.000000Z'
                          subscription:
                            type: boolean
                            example: false
                          is_merchant:
                            type: boolean
                            example: false
                          is_registered:
                            type: boolean
                            example: false
                      created_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
                      updated_at:
                        type: string
                        example: '2026-03-01T20:13:35.000000Z'
      tags:
        - 'Dice Box'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: Theme
                  description: ID
                  example: ratione
  '/api/1.0/dice-box/{slug}':
    delete:
      summary: 'Delete Dice Box Theme'
      operationId: deleteDiceBoxTheme
      description: 'Delete a share request which will invalidate any shared URLs'
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        204:
          description: ''
      tags:
        - 'Dice Box'
    parameters:
      -
        in: path
        name: slug
        description: 'The slug of the dice box.'
        example: autem
        required: true
        schema:
          type: string
      -
        in: path
        name: id
        description: 'The ID of the theme.'
        example: dddice-bees
        required: true
        schema:
          type: string
  /api/1.0/activate:
    post:
      summary: 'Create activation code'
      operationId: createActivationCode
      description: "When setting up an integration, it is advised to present a potential user with a \"code\"\nand then have the user enter that code on the official dddice website.\n\nThis is not only easy for the user to interact with, it also helps prevent odd handshakes\nand security barriers when trying to authenticate with cookies and/or other mechanisms,\nespecially when trying to authenticate inside an `iframe`.\n\nCall this endpoint and receive an activation code in 'code' and an authentication secret in 'secret'.\n\nDisplay the code to the user and ask them to navigate to [https://dddice.com/activate](https://dddice.com/activate)\nwhere they will be prompted to login/register (as needed) and then enter the code.\n\nYour integration can poll GET /activate/{code} to be notified when the user completes the activation flow. See\nthat endpoint's documentation for more details."
      parameters: []
      responses:
        201:
          description: ''
          content:
            application/json:
              schema:
                type: object
                nullable: true
      tags:
        - 'Integration Authentication'
      security: []
  '/api/1.0/activate/{code}':
    get:
      summary: 'Read activation code'
      operationId: readActivationCode
      description: "While waiting for the user to authenticate, this endpoint can be used to retrieve the latest\nstatus of the activation code. We recommend you poll this endpoint no more frequently than\nevery 5 seconds\n\nOne the user has completed the login/registration process and approved the code for activation\nyou will receive an API key in the 'token' field.\n\nThis can then be used to authenticate all future requests as that user.\n\nThe Secret in the headers is the secret you received along with the code from POST /authenticate"
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Authorization: Secret secret-value'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                nullable: true
      tags:
        - 'Integration Authentication'
      security: []
    post:
      summary: 'Authenticate activation code'
      operationId: authenticateActivationCode
      description: "After a user is prompted to enter a code, this (protected) endpoint is used to sync the\nrequesting user and secret/code together to activate the integration.\n\nThis request is typically not used directly when integrating with dddice."
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                nullable: true
      tags:
        - 'Integration Authentication'
    parameters:
      -
        in: path
        name: code
        description: 'Activation code'
        example: porro
        required: true
        schema:
          type: string
  /api/1.0/wishlist:
    get:
      summary: 'List Wishlist'
      operationId: listWishlist
      description: "List all products in a user's wishlist."
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  type: 'wishlist[]'
                  data:
                    - []
                    - []
                properties:
                  type:
                    type: string
                    example: 'wishlist[]'
                  data:
                    type: array
                    example:
                      - []
                      - []
                    items:
                      type: array
      tags:
        - Wishlists
  '/api/1.0/wishlist/{product_sku}':
    get:
      summary: 'Get from Wishlist'
      operationId: getFromWishlist
      description: "Get a particular product from a user's wishlist."
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data: []
                properties:
                  data:
                    type: array
                    example: []
      tags:
        - Wishlists
    post:
      summary: 'Add to Wishlist'
      operationId: addToWishlist
      description: "Add a product to a user's wishlist."
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        200:
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data: []
                properties:
                  data:
                    type: array
                    example: []
      tags:
        - Wishlists
    delete:
      summary: 'Delete from Wishlist'
      operationId: deleteFromWishlist
      description: "Remove a product from a user's wishlist."
      parameters:
        -
          in: header
          name: Authorization
          description: ''
          example: 'Bearer {YOUR_AUTH_KEY}'
          schema:
            type: string
      responses:
        204:
          description: ''
      tags:
        - Wishlists
    parameters:
      -
        in: path
        name: product_sku
        description: ''
        example: 19
        required: true
        schema:
          type: integer
tags:
  -
    name: Theme
    description: "\nAPI for managing themes."
  -
    name: Room
    description: "\nAPI for managing rooms."
  -
    name: Roll
    description: "\nAPI for creating and managing dice rolls."
  -
    name: 'Share Dice'
    description: "\nAPI for managing share requests."
  -
    name: User
    description: "\nAPI for managing users."
  -
    name: 'Dice Box'
    description: "\nAPI for managing themes in your **Digital Dice Box**."
  -
    name: 'Integration Authentication'
    description: "\nAPI for authenticating with third-party applications and integrations"
  -
    name: Wishlists
    description: "\nAPI for managing wishlists."
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: ''
security:
  -
    default: []
