> ## Documentation Index
> Fetch the complete documentation index at: https://docs.summerengine.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Begin a Build's client pack

> Requires builds.write for the Game and a ready Build.



## OpenAPI

````yaml scripts/reference/sources/openapi/management.json POST /v1/management/games/{gameId}/builds/{buildId}/client-packages
openapi: 3.1.0
info:
  title: Summer Creator Management API
  version: summer.management.creator/v1
  description: >-
    Create and manage your Summer Games store games: store page drafts,
    revisions, preview links, media, builds and releases, and the owner approval
    that publishes them.
servers:
  - url: https://api.summer.games
security:
  - developerBearer: []
tags:
  - name: Games
  - name: Items
  - name: Media
paths:
  /v1/management/games/{gameId}/builds/{buildId}/client-packages:
    parameters:
      - $ref: '#/components/parameters/GameID'
      - name: buildId
        in: path
        required: true
        schema:
          type: string
    post:
      tags:
        - Games
      summary: Begin a Build's client pack
      description: >-
        Requires builds.write for the Game and a ready Build. A Build has one
        client pack for every platform it declares: export one PCK whose
        textures every declared platform can read. Every declared platform must
        have a client template in the Build's selected set, and the scene and
        composition must pair with the Build's server (a Build without a host
        names no composition) before any bytes are sent. Identical declarations
        return the same upload. Packs up to 40 GiB upload straight to storage in
        the returned fixed-size parts; request part grants from :signParts. Part
        URLs are private credentials; upload bytes without account
        authorization, cookies or redirects.
      operationId: beginClientPackageUpload
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientPackageUploadRequest'
      responses:
        '200':
          description: Retained upload identity and, while bytes are awaited, its part plan
          content:
            application/json:
              schema:
                type: object
                required:
                  - package
                properties:
                  package:
                    $ref: '#/components/schemas/ClientPackageUpload'
                  upload:
                    $ref: '#/components/schemas/ClientPackageUploadPlan'
        '404':
          description: Game or Build unavailable to this creator
        '409':
          description: >-
            Build not ready, scene and composition do not pair with its server,
            its template set lacks a declared platform, or the client version
            names other bytes
        '422':
          description: Invalid declaration
        '503':
          description: Package storage unavailable
components:
  parameters:
    GameID:
      name: gameId
      in: path
      required: true
      schema:
        type: string
        pattern: ^game_[A-Za-z0-9_-]{8,123}$
  schemas:
    ClientPackageUploadRequest:
      type: object
      additionalProperties: false
      required:
        - clientSha256
        - clientSize
        - mainScene
        - version
      description: >-
        A Build's one client pack. Its declaration is immutable; a client
        version names exactly one pack for the Game.
      properties:
        clientSha256:
          type: string
          pattern: ^sha256:[0-9a-f]{64}$
        clientSize:
          type: integer
          minimum: 100
          maximum: 42949672960
        mainScene:
          type: string
          description: >-
            Exact res:// .tscn scene: in a Build WorldDefinition for a game with
            a host, or the Build client entry point for one without.
        compositionPath:
          type: string
          description: >-
            Exact res:// .tres composition in the same WorldDefinition. Required
            for a game with a host; omitted for one without.
        version:
          type: string
          description: >-
            Client version: canonical vMAJOR.MINOR.PATCH with optional positive
            -rREVISION. Independent of the server version.
    ClientPackageUpload:
      type: object
      required:
        - id
        - gameId
        - buildId
        - clientSha256
        - clientSize
        - mainScene
        - version
        - declarationSha256
        - state
        - createdAt
      properties:
        id:
          type: string
        gameId:
          type: string
        buildId:
          type: string
        clientSha256:
          type: string
          pattern: ^sha256:[0-9a-f]{64}$
        clientSize:
          type: integer
          minimum: 100
          maximum: 42949672960
        mainScene:
          type: string
        compositionPath:
          type: string
        version:
          type: string
        declarationSha256:
          type: string
          description: >-
            Digest of the pack's bytes, scene, composition and version. A
            qualification binds to it.
        state:
          type: string
          enum:
            - awaiting_upload
            - verifying
            - uploaded
            - rejected
          description: >-
            verifying means storage sealed the bytes and Platform has not
            finished reading them; uploaded means Platform inspected them and
            queued its checks.
        verificationError:
          type: string
          enum:
            - package_not_verified
          description: >-
            Present when background verification permanently rejected the stored
            bytes.
        verifications:
          type: array
          description: The latest check of this pack for each platform its Build declares.
          items:
            $ref: '#/components/schemas/ClientVerificationJob'
        createdAt:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
    ClientPackageUploadPlan:
      type: object
      required:
        - partSizeBytes
        - partCount
      description: >-
        Every part except the last is exactly partSizeBytes long; the last holds
        the remainder.
      properties:
        partSizeBytes:
          type: integer
          const: 67108864
        partCount:
          type: integer
          minimum: 1
          maximum: 640
    ClientVerificationJob:
      type: object
      required:
        - id
        - gameId
        - buildId
        - uploadId
        - platform
        - state
        - createdAt
        - updatedAt
      properties:
        id:
          type: string
        gameId:
          type: string
        buildId:
          type: string
        platform:
          type: string
          enum:
            - android
            - ios
            - macos
            - windows
        uploadId:
          type: string
        state:
          type: string
          enum:
            - checking
            - ready
            - failed
        qualificationId:
          type: string
        errorCode:
          type: string
        errorMessage:
          type: string
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        completedAt:
          type: string
          format: date-time
  securitySchemes:
    developerBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Your Summer account token. An agent gets it by signing in with OAuth:
        `summer login --store` in the Summer CLI, or the Summer connector in an
        AI app. Agent tokens can call only the operations on these pages.
        Publishing needs an approval from the game's owner first.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.