# ProjectManifest

> Talos 0.7 · Since 0.6; changed in 0.7

`argus.project.json`: versioned project settings, separate from any scene.

## Fields

| Field | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
| `schemaVersion` | `number` | yes |  |  | Manifest schema version. Not the application version and not the engine version. |
| `projectId` | `string` | yes |  |  | Stable project identity: a lowercase RFC 9562 UUID, generated once, never derived from a name. |
| `engineVersion` | `string` | no |  |  | The engine series that opens this project, `major.minor` such as `0.5`: which installed engine the Talos Launcher starts it with. Not a compatibility claim, and no engine reads it. Absent: the newest installed engine. |
| `savedWith` | `string` | no |  |  | The engine version that last wrote this file, `major.minor.patch` such as `0.5.2`; the engine sets it when it saves the manifest. The launcher reads it to warn before an older engine is chosen and to offer an upgrade. Not a compatibility claim, and it never changes how the project loads. Absent: not saved by an engine that records it. |
| `kind` | `string` | no |  |  | What sort of game the project is: `3d` (the default when absent) or `2d`. A 2D project draws through the same renderer. The kind drives the editor (its 2D viewport and tools); it does not change how a scene runs, so a 2D scene sets its own orthographic camera and planar bodies. Changing it never rewrites scenes. Independent of render.profile. |
| `application` | `ProjectApplication` | yes |  |  |  |
| `startupScene` | `string` | yes |  |  | Project-relative path to the scene the game starts in. Must exist and validate as a scene. |
| `window` | `ProjectWindow` | no |  |  |  |
| `export` | `ProjectExport` | no |  |  | Export settings shared by every platform (the store app id). Absent: every export setting takes its default. |
| `settings` | `ProjectSettings` | no |  |  |  |
| `render` | `ProjectRender` | no |  |  |  |
| `physics` | `ProjectPhysics` | no |  |  |  |
| `graphics` | `ProjectGraphics` | no |  |  |  |
| `input` | `SceneInput` | no |  |  | Input contexts and actions every scene has, in a scene's meta.input shape. A scene's context of the same name merges action by action, and its action replaces the project's. |
| `audio` | `ProjectAudio` | no |  |  |  |
| `assets` | `ProjectAssets` | no |  |  | Asset generation for this project: off by default; providers, style, budgets and spend. |
| `layers` | `LayerDef[]` | no |  |  | The project's layers, in bit order, at most 32: what collides with what, and what each camera draws. The first is "default". Entities name one with `layer`. Absent: the one layer "default". |
| `experimental` | `string[]` | no |  |  | The Experimental features this project opts into, as ids from the engine's feature list: a part (`water/waterfall`) or a whole package (`water`). Experimental features may change or be removed, with no compatibility promise; a game that uses one without opting in is warned at export. Absent: none. |
