# jp16d/myriad architecture

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

- Interactive diagram: https://gitdiagram.com/jp16d/myriad
- Repository: https://github.com/jp16d/myriad

## Overview

Myriad is a Mindustry Java development-support library. In Acari, mod initialization installs a runtime panel; the panel displays registered debug entries, while the Debugger API parses identities, registers annotated fields, and creates viewable or writable entries for live inspection and experimentation. Papilio separately supplies Arc UI layout extensions, notably a coordinate-and-span grid. The sampled sources show Acari's main control path and Papilio's grid implementation; README documents the broader monitoring and experimentation goals, but no external storage or service is shown.

Main entry points: [`modules/acari/src/acari/tool/Debugger.java`](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/tool/Debugger.java) (Debugger API), [`modules/acari/src/acari/Acari.java`](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/Acari.java) (Acari mod entry), [`modules/acari/src/acari/ui/DebugField.java`](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/ui/DebugField.java) (Entry widgets), [`modules/acari/src/acari/tool/Viewable.java`](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/tool/Viewable.java) (View entries)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_acari["Acari runtime tools"]
  node_acari_mod["Acari mod entry<br/>[Acari.java]"]
  node_debugger["Debugger API<br/>[Debugger.java]"]
  node_identity["Identity parser<br/>[Identity.java]"]
  node_parse["Value parser<br/>[ParseUtil.java]"]
  node_viewable["View entries<br/>[Viewable.java]"]
  node_writable["Writable entries<br/>[Writable.java]"]
  node_main_panel["Debug panel<br/>[MainPanel.java]"]
  node_debug_field["Entry widgets<br/>[DebugField.java]"]
  node_builder["Builder stub<br/>[Builder.java]"]
  node_warn["Warning helper<br/>[Warn.java]"]
end

subgraph group_papilio["Papilio UI extensions"]
  node_spotlight["Spotlight utility<br/>[Spotlight.java]"]
  node_grid["Coordinate grid<br/>[Grid.java]"]
  node_grid_item["Grid constraints<br/>[GridItem.java]"]
end

node_developer(("Mod developer"))
node_mindustry["Mindustry runtime"]

node_mindustry -->|"loads mod"| node_acari_mod
node_acari_mod -->|"installs panel"| node_main_panel
node_acari_mod -->|"registers debug data"| node_debugger
node_developer -.->|"marks values"| node_debugger
node_debugger -->|"parses identity"| node_identity
node_debugger -->|"parses defaults"| node_parse
node_debugger -->|"creates view entries"| node_viewable
node_debugger -->|"creates edit entries"| node_writable
node_main_panel -->|"reads entries"| node_debugger
node_viewable -->|"renders entry"| node_debug_field
node_writable -->|"renders edits"| node_debug_field
node_debug_field -->|"parses edits"| node_parse
node_grid -->|"creates constraints"| node_grid_item

click node_acari_mod "https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/Acari.java"
click node_debugger "https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/tool/Debugger.java"
click node_identity "https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/util/Identity.java"
click node_parse "https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/util/ParseUtil.java"
click node_viewable "https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/tool/Viewable.java"
click node_writable "https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/tool/Writable.java"
click node_main_panel "https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/ui/MainPanel.java"
click node_debug_field "https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/ui/DebugField.java"
click node_builder "https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/tool/Builder.java"
click node_warn "https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/util/Warn.java"
click node_spotlight "https://github.com/jp16d/myriad/blob/master/modules/papilio/src/papilio/Spotlight.java"
click node_grid "https://github.com/jp16d/myriad/blob/master/modules/papilio/src/papilio/layout/Grid.java"
click node_grid_item "https://github.com/jp16d/myriad/blob/master/modules/papilio/src/papilio/layout/GridItem.java"

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_acari_mod,node_debugger,node_identity,node_parse,node_viewable,node_writable,node_main_panel,node_debug_field,node_builder,node_warn toneBlue
class node_spotlight,node_grid,node_grid_item toneAmber
class node_developer,node_mindustry toneIndigo
```

## Components

### Acari runtime tools

- [Acari mod entry](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/Acari.java): `modules/acari/src/acari/Acari.java`
- [Debugger API](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/tool/Debugger.java): `modules/acari/src/acari/tool/Debugger.java`
- [Identity parser](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/util/Identity.java): `modules/acari/src/acari/util/Identity.java`
- [Value parser](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/util/ParseUtil.java): `modules/acari/src/acari/util/ParseUtil.java`
- [View entries](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/tool/Viewable.java): `modules/acari/src/acari/tool/Viewable.java`
- [Writable entries](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/tool/Writable.java): `modules/acari/src/acari/tool/Writable.java`
- [Debug panel](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/ui/MainPanel.java): `modules/acari/src/acari/ui/MainPanel.java`
- [Entry widgets](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/ui/DebugField.java): `modules/acari/src/acari/ui/DebugField.java`
- [Builder stub](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/tool/Builder.java): `modules/acari/src/acari/tool/Builder.java`
- [Warning helper](https://github.com/jp16d/myriad/blob/master/modules/acari/src/acari/util/Warn.java): `modules/acari/src/acari/util/Warn.java`

### Papilio UI extensions

- [Spotlight utility](https://github.com/jp16d/myriad/blob/master/modules/papilio/src/papilio/Spotlight.java): `modules/papilio/src/papilio/Spotlight.java`
- [Coordinate grid](https://github.com/jp16d/myriad/blob/master/modules/papilio/src/papilio/layout/Grid.java): `modules/papilio/src/papilio/layout/Grid.java`
- [Grid constraints](https://github.com/jp16d/myriad/blob/master/modules/papilio/src/papilio/layout/GridItem.java): `modules/papilio/src/papilio/layout/GridItem.java`

### Other components

- **Mod developer**
- **Mindustry runtime**

## Connections

- Mindustry runtime → Acari mod entry: loads mod (evidence: `modules/acari/src/acari/Acari.java`)
- Acari mod entry → Debug panel: installs panel (evidence: `modules/acari/src/acari/Acari.java`)
- Acari mod entry → Debugger API: registers debug data (evidence: `modules/acari/src/acari/Acari.java`)
- Mod developer → Debugger API: marks values (evidence: `README.md`)
- Debugger API → Identity parser: parses identity (evidence: `modules/acari/src/acari/tool/Debugger.java`)
- Debugger API → Value parser: parses defaults (evidence: `modules/acari/src/acari/tool/Debugger.java`)
- Debugger API → View entries: creates view entries (evidence: `modules/acari/src/acari/tool/Debugger.java`)
- Debugger API → Writable entries: creates edit entries (evidence: `modules/acari/src/acari/tool/Debugger.java`)
- Debug panel → Debugger API: reads entries (evidence: `modules/acari/src/acari/ui/MainPanel.java`)
- View entries → Entry widgets: renders entry (evidence: `modules/acari/src/acari/tool/Viewable.java`)
- Writable entries → Entry widgets: renders edits (evidence: `modules/acari/src/acari/tool/Writable.java`)
- Entry widgets → Value parser: parses edits (evidence: `modules/acari/src/acari/ui/DebugField.java`)
- Coordinate grid → Grid constraints: creates constraints (evidence: `modules/papilio/src/papilio/layout/Grid.java`)
