game.json
The project manifest and the package limits.
Every project has a game.json at its root.
Keys
| Key | Required | Rule |
|---|---|---|
schemaVersion | yes | The integer 1. |
game | to publish | The game address, <namespace>/<slug>. disko publish --dry-run and local rooms work without it. |
version | yes | A SemVer 2.0.0 version without build metadata (+…), at most 64 bytes, for example 1.4.2 or 2.0.0-beta.1. |
entry | yes | The package path of the entry module, a .js or .ts file. Its extension selects the language of the project. |
$schema | no | Any string, for editor support. Ignored. |
Any other key is an error (
manifest_invalid).The file is UTF-8 JSON, at most 4 KiB, with no duplicate keys.
There are no name, description, icon or asset keys. Display metadata lives in the Creator Portal, and assets are found through imports.
The published archive holds a rewritten
game.jsonwith onlyentry(the emitted.jspath),schemaVersionandversion, so one archive is valid under any address.
Package paths
Paths are ASCII, /-separated, at most 128 bytes and 8 segments. Each segment
is 1–64 bytes, matches ^[A-Za-z0-9_][A-Za-z0-9._-]*$, does not end in .
and is not a Windows reserved name such as con or lpt1. Hidden files
cannot be imported, and no two paths may differ only in case.
Limits
Generated from the release checks.
| Limit | Value |
|---|---|
| Maximum compressed archive length in bytes. | 10 MiB (10,485,760 bytes) |
| Maximum uncompressed tar length in bytes, headers included. | 64 MiB (67,108,864 bytes) |
Maximum game.json length in bytes. | 4 KiB (4,096 bytes) |
| Maximum number of module files. | 512 |
| Maximum length of one module in bytes. | 2 MiB (2,097,152 bytes) |
| Maximum combined length of all modules in bytes. | 8 MiB (8,388,608 bytes) |
| Maximum number of asset files. | 512 |
| Maximum length of one asset in bytes. | 16 MiB (16,777,216 bytes) |
| Minimum image side in pixels. | 1 |
| Maximum image side in pixels. | 4 KiB (4,096 bytes) |