# Juliet\include\Engine\Engine

## Source Files
- Header: `Juliet\include\Engine\Engine.h`
- Source: `Juliet\src\Engine\Engine.cpp`

## AI Description
The `Engine` class in the Juliet project serves as a central hub for managing and coordinating various components of the game engine. It encapsulates the initialization, shutdown, loading, and running of the application. The class manages resources such as the platform arena, logging system, filesystem, and graphics device. It also initializes and shuts down dependent systems like mesh rendering and skybox rendering, ensuring that all necessary systems are ready for use during runtime. The `RunEngine` method is responsible for orchestrating the game loop, which includes updating the application logic and rendering frames.

## Symbols

### Namespace `Juliet`

#### Classes, Structs & Unions
- `struct Engine`

#### Enums
- `enum class JulietInit_Flags`

#### Functions & Methods
- `void InitializeEngine(JulietInit_Flags flags)`
- `void ShutdownEngine()`
- `void LoadApplication(IApplication& app)`
- `void UnloadApplication()`
- `void RunEngine()`

