# manifest_invalid

> game.json is missing, too large, not valid JSON, or has a missing, unknown or invalid key.

game.json is missing, too large, not valid JSON, or has a missing, unknown or invalid key.

| | |
| --- | --- |
| Kind | Build or validation problem |
| Reported by | Archive and source validation |
| `disko` exit code | 1 (problems) |

`game.json` could not be used. It is missing, larger than 4 KiB, not valid
UTF-8 JSON, has a duplicate key, or a key is missing, unknown or has an
invalid value. The message names the key.

## Why it happens

- There is no `game.json` in the project directory (or the `--project`
  directory does not exist).
- `schemaVersion` is not the integer `1`.
- `version` is not valid SemVer, or it has build metadata (`+…`).
- `entry` is not a `.js` or `.ts` package path. (In an archive, `entry` must
  be a `.js` file the archive contains. A project whose `entry` file is
  missing gets [`source_file_missing`](/errors/source_file_missing).)
- `game` is not a valid `namespace/slug` address.
- A key other than `schemaVersion`, `game`, `version`, `entry` and `$schema`
  is present, such as `name` or `assets`.

## Wrong

```json title="game.json"
{
  "schemaVersion": 1,
  "name": "Arena",
  "version": "1.0",
  "entry": "src/main"
}
```

## Right

```json title="game.json"
{
  "schemaVersion": 1,
  "game": "gabriel/arena",
  "version": "1.0.0",
  "entry": "src/main.ts"
}
```

## See also

- [game.json reference](/reference/game-json)
- [`manifest_not_canonical`](/errors/manifest_not_canonical)
