# erorus/shatari-data architecture

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

- Interactive diagram: https://gitdiagram.com/erorus/shatari-data
- Repository: https://github.com/erorus/shatari-data

## Overview

Project Shatari - Data is a developer-run DB2 extraction and JSON packaging layer for Undermine Exchange’s auction-pricing stack. The workflow is to run a focused PHP extractor against current localized game data, then copy its JSON outputs to the back end or front end. The graph preserves documented item, bonus, auction-category, battle-pet, crafting-quality, and localized-string outputs. Edges reflect only shown calls or README relationships; the full categories and items pipelines and some output-writing details were not sampled.

Main entry points: [`src/incl.php`](https://github.com/erorus/shatari-data/blob/master/src/incl.php) (DB2 reader helpers), [`src/items.php`](https://github.com/erorus/shatari-data/blob/master/src/items.php) (Item extraction), [`src/battlepets.php`](https://github.com/erorus/shatari-data/blob/master/src/battlepets.php) (Battle pet extraction), [`src/bonuses.php`](https://github.com/erorus/shatari-data/blob/master/src/bonuses.php) (Bonus analysis)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["DB2 access"]
  node_shared["DB2 reader helpers<br/>[incl.php]"]
  node_coldata["Column compactor<br/>[coldata.php]"]
  node_jsondiff["JSON diff<br/>[jsondiff.php]"]
end

subgraph group_catalog["Game catalog"]
  node_items["Item extraction<br/>[items.php]"]
  node_pets["Battle pet extraction<br/>[battlepets.php]"]
  node_crafting["Crafting quality"]
  node_expansion["Expansion item updater"]
end

subgraph group_auction["Auction metadata"]
  node_bonuses["Bonus analysis<br/>[bonuses.php]"]
  node_categories["Auction categories<br/>[categories.php]"]
  node_decode["Bonus decoder<br/>[bonus-decode.php]"]
end

subgraph group_localization["Localization"]
  node_strings["Global strings<br/>[globalstrings.php]"]
end

subgraph group_delivery["JSON handoff"]
  node_outputs["Generated JSON"]
end

node_developer(("Developer"))
node_db2[("Game DB2 files")]
node_downstream["Back end and front end"]

node_developer -->|"runs"| node_items
node_developer -->|"runs"| node_pets
node_developer -->|"runs"| node_bonuses
node_developer -->|"runs"| node_categories
node_items -->|"uses readers"| node_shared
node_pets -->|"uses readers"| node_shared
node_bonuses -->|"uses readers"| node_shared
node_categories -->|"uses readers"| node_shared
node_crafting -->|"uses readers"| node_shared
node_strings -->|"uses readers"| node_shared
node_decode -->|"uses readers"| node_shared
node_shared -->|"reads"| node_db2
node_items -->|"writes JSON"| node_outputs
node_pets -->|"writes JSON"| node_outputs
node_bonuses -->|"writes JSON"| node_outputs
node_crafting -->|"writes JSON"| node_outputs
node_strings -->|"writes JSON"| node_outputs
node_decode -->|"writes JSON"| node_outputs
node_coldata -->|"emits JSON"| node_outputs
node_jsondiff -->|"compares files"| node_outputs
node_expansion -->|"updates mapping"| node_outputs
node_outputs -->|"copied to"| node_downstream

click node_shared "https://github.com/erorus/shatari-data/blob/master/src/incl.php"
click node_items "https://github.com/erorus/shatari-data/blob/master/src/items.php"
click node_pets "https://github.com/erorus/shatari-data/blob/master/src/battlepets.php"
click node_bonuses "https://github.com/erorus/shatari-data/blob/master/src/bonuses.php"
click node_categories "https://github.com/erorus/shatari-data/blob/master/src/categories.php"
click node_crafting "https://github.com/erorus/shatari-data/blob/master/src/crafting-quality.php"
click node_strings "https://github.com/erorus/shatari-data/blob/master/src/globalstrings.php"
click node_decode "https://github.com/erorus/shatari-data/blob/master/src/non-patch/bonus-decode.php"
click node_coldata "https://github.com/erorus/shatari-data/blob/master/src/non-patch/coldata.php"
click node_jsondiff "https://github.com/erorus/shatari-data/blob/master/src/non-patch/jsondiff.php"
click node_expansion "https://github.com/erorus/shatari-data/blob/master/src/non-patch/update-expansion-items.php"

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_shared,node_coldata,node_jsondiff toneBlue
class node_items,node_pets,node_crafting,node_expansion,node_db2 toneAmber
class node_bonuses,node_categories,node_decode toneMint
class node_strings toneRose
class node_outputs,node_developer,node_downstream toneIndigo
```

## Components

### DB2 access

- [DB2 reader helpers](https://github.com/erorus/shatari-data/blob/master/src/incl.php): `src/incl.php`
- [Column compactor](https://github.com/erorus/shatari-data/blob/master/src/non-patch/coldata.php): `src/non-patch/coldata.php`
- [JSON diff](https://github.com/erorus/shatari-data/blob/master/src/non-patch/jsondiff.php): `src/non-patch/jsondiff.php`

### Game catalog

- [Item extraction](https://github.com/erorus/shatari-data/blob/master/src/items.php): `src/items.php`
- [Battle pet extraction](https://github.com/erorus/shatari-data/blob/master/src/battlepets.php): `src/battlepets.php`
- [Crafting quality](https://github.com/erorus/shatari-data/blob/master/src/crafting-quality.php): `src/crafting-quality.php`
- [Expansion item updater](https://github.com/erorus/shatari-data/blob/master/src/non-patch/update-expansion-items.php): `src/non-patch/update-expansion-items.php`

### Auction metadata

- [Bonus analysis](https://github.com/erorus/shatari-data/blob/master/src/bonuses.php): `src/bonuses.php`
- [Auction categories](https://github.com/erorus/shatari-data/blob/master/src/categories.php): `src/categories.php`
- [Bonus decoder](https://github.com/erorus/shatari-data/blob/master/src/non-patch/bonus-decode.php): `src/non-patch/bonus-decode.php`

### Localization

- [Global strings](https://github.com/erorus/shatari-data/blob/master/src/globalstrings.php): `src/globalstrings.php`

### JSON handoff

- **Generated JSON**

### Other components

- **Developer**
- **Game DB2 files**
- **Back end and front end**

## Connections

- Developer → Item extraction: runs (evidence: `README.md`)
- Developer → Battle pet extraction: runs (evidence: `README.md`)
- Developer → Bonus analysis: runs (evidence: `README.md`)
- Developer → Auction categories: runs (evidence: `README.md`)
- Item extraction → DB2 reader helpers: uses readers (evidence: `src/items.php`)
- Battle pet extraction → DB2 reader helpers: uses readers (evidence: `src/battlepets.php`)
- Bonus analysis → DB2 reader helpers: uses readers (evidence: `src/bonuses.php`)
- Auction categories → DB2 reader helpers: uses readers (evidence: `src/categories.php`)
- Crafting quality → DB2 reader helpers: uses readers (evidence: `src/crafting-quality.php`)
- Global strings → DB2 reader helpers: uses readers (evidence: `src/globalstrings.php`)
- Bonus decoder → DB2 reader helpers: uses readers (evidence: `src/non-patch/bonus-decode.php`)
- DB2 reader helpers → Game DB2 files: reads (evidence: `src/incl.php`)
- Item extraction → Generated JSON: writes JSON (evidence: `src/items.php`)
- Battle pet extraction → Generated JSON: writes JSON (evidence: `src/battlepets.php`)
- Bonus analysis → Generated JSON: writes JSON (evidence: `src/bonuses.php`)
- Crafting quality → Generated JSON: writes JSON (evidence: `src/crafting-quality.php`)
- Global strings → Generated JSON: writes JSON (evidence: `src/globalstrings.php`)
- Bonus decoder → Generated JSON: writes JSON (evidence: `src/non-patch/bonus-decode.php`)
- Column compactor → Generated JSON: emits JSON (evidence: `src/non-patch/coldata.php`)
- JSON diff → Generated JSON: compares files (evidence: `src/non-patch/jsondiff.php`)
- Expansion item updater → Generated JSON: updates mapping (evidence: `src/non-patch/update-expansion-items.php`)
- Generated JSON → Back end and front end: copied to (evidence: `README.md`)
