# game.json config

Every game you upload to GameSnacks must have a `game.json` configuration file.
You use the configuration file to provide GameSnacks with all of the required
information about your game, including the marketing assets required to display
your game in the game center catalog.

## Fields

### Descriptive \& marketing information

`name`: String --- **required**   

The name of the game as it is usually displayed to the user.

- Must be between 2 and 25 characters.
- Must be unique across all games.

`version`: String --- **required**   

The version of the uploaded instance of the game.

- Must be unique for each uploaded version of the game.

`description`: String --- **required**   

Description of the game.

- Must be a maximum of 150 characters.

`genres`: Array of String --- **required**   

The genres that the game belongs to.

- Each genre must be one of the following: Action, Adventure, Arcade, Board, Card, Casino, Educational, Music, Puzzle, Racing, Role playing, Simulation, Sports, Strategy, Trivia, Word.

`marketingAssets`: [Marketing](https://developers.google.com/gamesnacks/developer/marketing) --- **required**   

The game's visual assets.

`developer`: [Developer](https://developers.google.com/gamesnacks/developer/developer) --- **required**   

Metadata about the game developer.

`publisher`: [Publisher](https://developers.google.com/gamesnacks/developer/publisher) --- default: `{}`   

Metadata about the publisher.

`aboutUrl`: String --- default: `undefined`   

The URL of the game's about page.

- Must be a valid HTTP or HTTPS URL.

`privacyPolicyUrl`: String --- default: `undefined`   

The URL of the game's privacy policy.

- Must be a valid HTTP or HTTPS URL.

`alternativePlatforms`: Array of [Platform](https://developers.google.com/gamesnacks/developer/platform) --- default: `[]`   

Versions of the game available on alternative platforms.

### Game configuration \& capabilities

`allowOfflineUse`: Boolean --- default: `false`   

Whether the game should be discoverable offline. If this field is `true`, the
game can be listed as an offline game and be discoverable in offline-specific
UIs where they exist on GameSnacks distribution partners. Allowing offline use
of your game may increase total engagement, however monetization of offline
games is not supported and ads won't show during offline play.

Note that GameSnacks may always cache your game to enable continued play during
an intermittent loss of connectivity.

`entrypoint`: [File](https://developers.google.com/gamesnacks/developer/file) --- default: `"index.html"`   

Entrypoint to the game.

- Entrypoint must also be included in `files`.

`files`: Array of [File](https://developers.google.com/gamesnacks/developer/file) --- **required**   

A list of the files that are required for the game.

- Must only include assets that are required to run the game. Don't include marketing assets such as banners and icons.

`orientation`: String --- default: `"Any"`   

The default orientation for the game.

- Each orientation must be one of the following: Any, Landscape, Portrait.

`supportsLowEndDevices`: Boolean --- default: `false`   

Whether the game is supported on low end devices.

## Example

    {
      "name": "Test game",
      "version": "1.0",
      "description": "The test game! ...",
      "genres": ["Card", "Puzzle"],
      "developer": {
        "name": "GameSnacks developer name",
        "logo": [
          {
            "size": {
              "width": 512,
              "height": 512
            },
            "src": "images/developer-logo.png"
          },
          ...
        ]
      },
      "marketingAssets": {
        "horizontalBanners": [
          {
            "size": {
              "width": 1920,
              "height": 1080
            },
            "src": "images/testgame-horizontal-banner.png"
          },
          ...
        ],
        "verticalBanners": [
          {
            "size": {
              "width": 1080,
              "height": 1920
            },
            "src": "images/testgame-vertical-banner.png"
          },
          ...
        ],
        "screenshots": [
          {
            "size": {
              "height": 1920,
              "width": 1080
            },
            "src": "images/testgame-screenshot-1.png"
          },
          ...
        ],
        "gameIcons": [
          {
            "size": {
              "width": 512,
              "height": 512
            },
            "src": "images/testgame-icon.png"
          },
          ...
        ]
      },
      "files": ["src/**"],
      "orientation": "ANY",
    }