# thenoiselessnoise/raylib_dartified_unhinged architecture

> Architecture diagram of the GitHub repository thenoiselessnoise/raylib_dartified_unhinged, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-10). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/thenoiselessnoise/raylib_dartified_unhinged
- Repository: https://github.com/thenoiselessnoise/raylib_dartified_unhinged

## Overview

UNHINGED is a Dart ECS-like framework for assembling and running deterministic application worlds, rather than a standalone game engine. Its documented model centers on an App containing Scenes and Entities, with Components supplying state and behavior. Queries inspect that structure; Events and Tasks represent propagation and deferred work. The framework also documents cloning and snapshots, a collection of ready-made components, a widget-based layout layer, and selectable native/web backends. No source excerpts were provided, so edges below are limited to relationships stated in the README; implementation-level call flow is not verified.

Main entry points: [`lib/core/ecs/entity.dart`](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/entity.dart) (Entity), [`lib/core/ecs/components.dart`](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/components.dart) (Components), [`lib/core/ecs/app.dart`](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/app.dart) (App), [`lib/core/ecs/scene.dart`](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/scene.dart) (Scene)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["World Runtime"]
  node_app["App<br/>[app.dart]"]
  node_app_system["AppSystem<br/>[app_system.dart]"]
  node_scene["Scene<br/>[scene.dart]"]
  node_scene_system["SceneSystem<br/>[scene_system.dart]"]
  node_entity["Entity<br/>[entity.dart]"]
  node_component["Components<br/>[components.dart]"]
end

subgraph group_behavior["Behavior and State"]
  node_query["Queries<br/>[query.dart]"]
  node_events["Events<br/>[events.dart]"]
  node_tasks["Tasks<br/>[tasks.dart]"]
  node_snapshots["Snapshots<br/>[base.dart]"]
  node_cloning["Cloning<br/>[clone.dart]"]
  node_component_catalog["Built-in Components"]
end

subgraph group_presentation["Presentation"]
  node_widget_scene["Widget Scene<br/>[scene.dart]"]
  node_widget_controls["Widget Controls"]
  node_drawers["Raw Drawers<br/>[drawers.dart]"]
end

subgraph group_platform["Platform"]
  node_backend_selection["Backend Selection"]
  node_raylib_backend["Raylib Backend<br/>[backend.dart]"]
end

node_developer(("Application author"))
node_raylib_family["raylib_dartified"]

node_app -->|"contains worlds"| node_scene
node_app -->|"governs first"| node_app_system
node_scene -->|"hosts entities"| node_entity
node_scene -->|"scopes laws"| node_scene_system
node_entity -->|"attaches facts"| node_component
node_component -->|"nests components"| node_component
node_query -->|"queries entities"| node_scene
node_query -->|"queries components"| node_entity
node_query -->|"queries components"| node_component
node_events -->|"propagates events"| node_entity
node_tasks -->|"accesses reality"| node_entity
node_snapshots -->|"snapshots state"| node_component
node_snapshots -->|"snapshots state"| node_app
node_cloning -->|"clones objects"| node_component
node_cloning -->|"clones objects"| node_entity
node_cloning -->|"clones objects"| node_app
node_component_catalog -->|"adds behaviors"| node_entity
node_widget_scene -->|"lays out controls"| node_widget_controls
node_widget_scene -->|"layers over ECS"| node_app
node_widget_scene -->|"can use raw draws"| node_drawers
node_backend_selection -->|"selects backend"| node_raylib_backend
node_raylib_backend -->|"built on"| node_raylib_family

click node_app "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/app.dart"
click node_app_system "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/app_system.dart"
click node_scene "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/scene.dart"
click node_scene_system "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/scene_system.dart"
click node_entity "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/entity.dart"
click node_component "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/components.dart"
click node_query "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/query.dart"
click node_events "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/events.dart"
click node_tasks "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/tasks.dart"
click node_snapshots "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/base.dart"
click node_cloning "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/clone.dart"
click node_component_catalog "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/tree/main/lib/core/ecs/components"
click node_widget_scene "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/widget/scene.dart"
click node_widget_controls "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/tree/main/lib/core/widget/controls"
click node_drawers "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/drawers.dart"
click node_backend_selection "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/tree/main/lib/core/ecs/backends"
click node_raylib_backend "https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/backends/raylib/backend.dart"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_app_system,node_scene,node_scene_system,node_entity,node_component toneBlue
class node_query,node_events,node_tasks,node_snapshots,node_cloning,node_component_catalog toneAmber
class node_widget_scene,node_widget_controls,node_drawers toneMint
class node_backend_selection,node_raylib_backend toneRose
class node_developer,node_raylib_family toneIndigo
```

## Components

### World Runtime

- [App](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/app.dart): `lib/core/ecs/app.dart`
- [AppSystem](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/app_system.dart): `lib/core/ecs/app_system.dart`
- [Scene](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/scene.dart): `lib/core/ecs/scene.dart`
- [SceneSystem](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/scene_system.dart): `lib/core/ecs/scene_system.dart`
- [Entity](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/entity.dart): `lib/core/ecs/entity.dart`
- [Components](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/components.dart): `lib/core/ecs/components.dart`

### Behavior and State

- [Queries](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/query.dart): `lib/core/ecs/query.dart`
- [Events](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/events.dart): `lib/core/ecs/events.dart`
- [Tasks](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/tasks.dart): `lib/core/ecs/tasks.dart`
- [Snapshots](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/base.dart): `lib/core/ecs/base.dart`
- [Cloning](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/clone.dart): `lib/core/ecs/clone.dart`
- [Built-in Components](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/tree/main/lib/core/ecs/components): `lib/core/ecs/components`

### Presentation

- [Widget Scene](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/widget/scene.dart): `lib/core/widget/scene.dart`
- [Widget Controls](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/tree/main/lib/core/widget/controls): `lib/core/widget/controls`
- [Raw Drawers](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/core/ecs/drawers.dart): `lib/core/ecs/drawers.dart`

### Platform

- [Backend Selection](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/tree/main/lib/core/ecs/backends): `lib/core/ecs/backends`
- [Raylib Backend](https://github.com/thenoiselessnoise/raylib_dartified_unhinged/blob/main/lib/backends/raylib/backend.dart): `lib/backends/raylib/backend.dart`

### Other components

- **Application author**
- **raylib_dartified**

## Connections

- App → Scene: contains worlds (evidence: `README.md`)
- App → AppSystem: governs first (evidence: `README.md`)
- Scene → Entity: hosts entities (evidence: `README.md`)
- Scene → SceneSystem: scopes laws (evidence: `README.md`)
- Entity → Components: attaches facts (evidence: `README.md`)
- Components → Components: nests components (evidence: `README.md`)
- Queries → Scene: queries entities (evidence: `README.md`)
- Queries → Entity: queries components (evidence: `README.md`)
- Queries → Components: queries components (evidence: `README.md`)
- Events → Entity: propagates events (evidence: `README.md`)
- Tasks → Entity: accesses reality (evidence: `README.md`)
- Snapshots → Components: snapshots state (evidence: `README.md`)
- Snapshots → App: snapshots state (evidence: `README.md`)
- Cloning → Components: clones objects (evidence: `README.md`)
- Cloning → Entity: clones objects (evidence: `README.md`)
- Cloning → App: clones objects (evidence: `README.md`)
- Built-in Components → Entity: adds behaviors (evidence: `README.md`)
- Widget Scene → Widget Controls: lays out controls (evidence: `README.md`)
- Widget Scene → App: layers over ECS (evidence: `README.md`)
- Widget Scene → Raw Drawers: can use raw draws (evidence: `README.md`)
- Backend Selection → Raylib Backend: selects backend (evidence: `README.md`)
- Raylib Backend → raylib_dartified: built on (evidence: `README.md`)
