# willieumk/mementomori-charapage architecture

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

- Interactive diagram: https://gitdiagram.com/willieumk/mementomori-charapage
- Repository: https://github.com/willieumk/mementomori-charapage

## Overview

This is a static, browser-based MementoMori reference site: users browse usage and gacha summaries, query game data, inspect PvP teams, or explore character skills. The README documents the page capabilities and data sources; sampled code additionally confirms skill-data generation and a cross-page music player with browser-persisted playback. The tree does not include page scripts for most features, so those connections are limited to documented behavior rather than inferred calls.

Main entry points: [`index.html`](https://github.com/willieumk/mementomori-charapage/blob/main/index.html) (Usage & Pool Page), [`player-bar.js`](https://github.com/willieumk/mementomori-charapage/blob/main/player-bar.js) (Shared Player), [`monsters.html`](https://github.com/willieumk/mementomori-charapage/blob/main/monsters.html) (Monster Lookup), [`openpvp.html`](https://github.com/willieumk/mementomori-charapage/blob/main/openpvp.html) (PvP Explorer)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_analytics["Usage &amp; Gacha"]
  node_home["Usage &amp; Pool Page<br/>[index.html]"]
end

subgraph group_reference["Game Reference"]
  node_monsters["Monster Lookup<br/>[monsters.html]"]
  node_pvp["PvP Explorer<br/>[openpvp.html]"]
  node_skills["Character Skills<br/>[skill.html]"]
end

subgraph group_music["Music Player"]
  node_musicroom["Music Room<br/>[art.html]"]
  node_player["Shared Player<br/>[player-bar.js]"]
end

subgraph group_assets["Data Assets"]
  node_usage["Usage Data<br/>[usage.json]"]
  node_pool["Gacha Data<br/>[card0.json]"]
  node_quest["Quest Data<br/>[quest.json]"]
  node_tower["Tower Data<br/>[tower.json]"]
  node_pvpdata["PvP Mappings"]
  node_skilldata["Skill Mappings"]
  node_skillgen["Skill Data Generator<br/>[skill_gen.py]"]
  node_tracks["Track List<br/>[music.json]"]
end

node_visitor(("Site visitor"))
node_sheets[("Google Sheets")]
node_masterdata[("Official Game Data")]
node_browserstate[("Browser Storage")]
node_audio["Audio Hosting"]

node_visitor -->|"opens"| node_home
node_visitor -->|"opens"| node_monsters
node_visitor -->|"opens"| node_pvp
node_visitor -->|"opens"| node_skills
node_visitor -->|"opens"| node_musicroom
node_home -->|"reads live"| node_sheets
node_home -->|"loads cached"| node_usage
node_home -->|"loads cached"| node_pool
node_monsters -->|"queries"| node_quest
node_monsters -->|"queries"| node_tower
node_pvp -->|"loads mappings"| node_pvpdata
node_skills -->|"loads mappings"| node_skilldata
node_masterdata -->|"provides source"| node_skillgen
node_skillgen -->|"generates"| node_skilldata
node_musicroom -->|"hosts player"| node_player
node_player -->|"loads tracks"| node_tracks
node_player -->|"persists session"| node_browserstate
node_player -->|"plays tracks"| node_audio

click node_home "https://github.com/willieumk/mementomori-charapage/blob/main/index.html"
click node_usage "https://github.com/willieumk/mementomori-charapage/blob/main/data/usage.json"
click node_pool "https://github.com/willieumk/mementomori-charapage/blob/main/data/card0.json"
click node_monsters "https://github.com/willieumk/mementomori-charapage/blob/main/monsters.html"
click node_quest "https://github.com/willieumk/mementomori-charapage/blob/main/data/quest.json"
click node_tower "https://github.com/willieumk/mementomori-charapage/blob/main/data/tower.json"
click node_pvp "https://github.com/willieumk/mementomori-charapage/blob/main/openpvp.html"
click node_pvpdata "https://github.com/willieumk/mementomori-charapage/tree/main/data"
click node_skills "https://github.com/willieumk/mementomori-charapage/blob/main/skill.html"
click node_skilldata "https://github.com/willieumk/mementomori-charapage/tree/main/data"
click node_skillgen "https://github.com/willieumk/mementomori-charapage/blob/main/skill_gen.py"
click node_musicroom "https://github.com/willieumk/mementomori-charapage/blob/main/art.html"
click node_player "https://github.com/willieumk/mementomori-charapage/blob/main/player-bar.js"
click node_tracks "https://github.com/willieumk/mementomori-charapage/blob/main/data/music.json"

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_home toneBlue
class node_monsters,node_pvp,node_skills,node_sheets,node_masterdata,node_browserstate toneAmber
class node_musicroom,node_player toneMint
class node_usage,node_pool,node_quest,node_tower,node_pvpdata,node_skilldata,node_skillgen,node_tracks toneRose
class node_visitor,node_audio toneIndigo
```

## Components

### Usage & Gacha

- [Usage & Pool Page](https://github.com/willieumk/mementomori-charapage/blob/main/index.html): `index.html`

### Game Reference

- [Monster Lookup](https://github.com/willieumk/mementomori-charapage/blob/main/monsters.html): `monsters.html`
- [PvP Explorer](https://github.com/willieumk/mementomori-charapage/blob/main/openpvp.html): `openpvp.html`
- [Character Skills](https://github.com/willieumk/mementomori-charapage/blob/main/skill.html): `skill.html`

### Music Player

- [Music Room](https://github.com/willieumk/mementomori-charapage/blob/main/art.html): `art.html`
- [Shared Player](https://github.com/willieumk/mementomori-charapage/blob/main/player-bar.js): `player-bar.js`

### Data Assets

- [Usage Data](https://github.com/willieumk/mementomori-charapage/blob/main/data/usage.json): `data/usage.json`
- [Gacha Data](https://github.com/willieumk/mementomori-charapage/blob/main/data/card0.json): `data/card0.json`
- [Quest Data](https://github.com/willieumk/mementomori-charapage/blob/main/data/quest.json): `data/quest.json`
- [Tower Data](https://github.com/willieumk/mementomori-charapage/blob/main/data/tower.json): `data/tower.json`
- [PvP Mappings](https://github.com/willieumk/mementomori-charapage/tree/main/data): `data`
- [Skill Mappings](https://github.com/willieumk/mementomori-charapage/tree/main/data): `data`
- [Skill Data Generator](https://github.com/willieumk/mementomori-charapage/blob/main/skill_gen.py): `skill_gen.py`
- [Track List](https://github.com/willieumk/mementomori-charapage/blob/main/data/music.json): `data/music.json`

### Other components

- **Site visitor**
- **Google Sheets**
- **Official Game Data**
- **Browser Storage**
- **Audio Hosting**

## Connections

- Site visitor → Usage & Pool Page: opens (evidence: `README.md`)
- Site visitor → Monster Lookup: opens (evidence: `README.md`)
- Site visitor → PvP Explorer: opens (evidence: `README.md`)
- Site visitor → Character Skills: opens (evidence: `README.md`)
- Site visitor → Music Room: opens
- Usage & Pool Page → Google Sheets: reads live (evidence: `README.md`)
- Usage & Pool Page → Usage Data: loads cached (evidence: `README.md`)
- Usage & Pool Page → Gacha Data: loads cached (evidence: `README.md`)
- Monster Lookup → Quest Data: queries (evidence: `README.md`)
- Monster Lookup → Tower Data: queries (evidence: `README.md`)
- PvP Explorer → PvP Mappings: loads mappings (evidence: `README.md`)
- Character Skills → Skill Mappings: loads mappings (evidence: `README.md`)
- Official Game Data → Skill Data Generator: provides source (evidence: `skill_gen.py`)
- Skill Data Generator → Skill Mappings: generates (evidence: `skill_gen.py`)
- Music Room → Shared Player: hosts player (evidence: `player-bar.js`)
- Shared Player → Track List: loads tracks (evidence: `player-bar.js`)
- Shared Player → Browser Storage: persists session (evidence: `player-bar.js`)
- Shared Player → Audio Hosting: plays tracks (evidence: `player-bar.js`)
