# Scene JSON

> Reference the Vaelis scene serialization format.

- Source: docs/v1.0.0/reference/scene-format.html
- Engine version: Vaelis 1.0.0

## Top-level shape

```
{
  "sceneName": "Level1",
  "hierarchyFolders": [],
  "entities": []
}
```

## Entity shape

```
{
  "id": "e12",
  "name": "Target",
  "tag": "Target",
  "active": true,
  "folderId": null,
  "prefabId": null,
  "prefabOverrides": {},
  "components": {
    "Transform": { "x": 0, "y": 0, "z": 0, "rotation": 0, "scaleX": 1, "scaleY": 1 }
  }
}
```

## Component registry

SceneSerializer recognizes the runtime component types: Transform, Camera, SpriteRenderer, ShapeRenderer, StrokePath, TextRenderer, SpeechBubble, ChatLog, TextInput, Joystick, Rigidbody2D, Collider2D, Joint2D, Light, ShadowCaster, CharacterController, LightingSettings, SpriteAnimation, AudioSource, AudioListener, Tileset, Tilemap, NavWorld2D, NavAgent2D and Script.

## Authoring rules

Scene files are plain JSON and can be authored by the editor, generated by tools or hand-written. The serializer deep-copies folder/prefab override data so saved snapshots do not alias live state.

## Default camera

A fresh/default scene uses a **Main Camera** entity with tag `MainCamera`, active state enabled, Transform at 0,0 and a main Camera flag.
