# ZXDB Explorer — Missing Features & Gaps

Audit of the `/zxdb` pages against the ZXDB schema and existing data. Everything listed below is backed by tables already present in the Drizzle schema (`src/server/schema/zxdb.ts`) but not yet surfaced in the UI.

---

## Current Coverage

| Section        | List page | Detail page | Facets/Filters                  |
|----------------|-----------|-------------|---------------------------------|
| Entries        | Search    | Full detail | genre, language, machinetype    |
| Releases       | Search    | Downloads, scraps, files, magazine refs | — |
| Labels         | Search    | Authored/published entries, permissions, licenses | — |
| Magazines      | Search    | Issues list | —                               |
| Issues         | via magazine | Magazine refs (reviews/references) | —              |
| Genres         | List      | Entries by genre   | —                      |
| Languages      | List      | Entries by language | —                     |
| Machine Types  | List      | Entries by type    | —                      |

---

## Missing Top-Level Browse Pages

### 1. Countries
- **Tables:** `countries`, `labels.country_id`
- **Value:** Browse by country ("all software from Spain", "UK publishers").

### 2. Tools
- **Tables:** `tools`, `tooltypes`
- **Value:** Utilities, emulators, and development tools catalogued in ZXDB.

### 3. Features
- **Tables:** `features`
- **Value:** Hardware/software features (Multiface, Kempston joystick, etc.).

### 4. Topics
- **Tables:** `topics`, `topictypes`
- **Value:** Editorial/thematic groupings used by magazines.

### 5. Tags / Collections
- **Tables:** `tags`, `tagtypes`, `members`
- **Value:** Tags are shown per-entry but there is no top-level "browse by tag" page (e.g. all CSSCGC entries, compilations).

### 6. Licenses
- **Tables:** `licenses`, `licensetypes`, `relatedlicenses`, `licensors`
- **Value:** Shown per-entry detail but no "browse all licenses" hub (e.g. all games based on a Marvel license).

---

## Missing Cross-Links & Facets on Existing Pages

### 7. Magazine reviews on Entry detail
- Release detail shows magazine refs, but entry detail does **not** aggregate them.
- A user viewing an entry cannot see "reviewed in Crash #42, p.34" without drilling into each release.

### 8. Year / date filter on Entries
- ZXDB has `release_year` on releases. No year facet on the entries explorer.
- Users cannot browse "all games from 1985".

### 9. Availability type filter on Entries
- `availabletypes` API route exists but is not a facet on the entries explorer.
- Would allow filtering by "Never released", "MIA", etc.

### 10. Max players filter on Entries
- `entries.max_players` exists but is not filterable.
- Would enable "all multiplayer games".

### 11. Label type filter on Labels page
- `labeltypes` table exists and `roletypes` API is served.
- Cannot filter the labels list by type (person / company / team / magazine).

### 12. Country filter on Labels page
- Labels have `country_id` but no filter on the list page.

### 13. Country / language filter on Magazines page
- Magazine list has search but no country or language filter chips.

---

## Missing Data on Detail Pages

### 14. Entry detail: magazine reviews section
- `search_by_magrefs` is used in release detail but entry detail does not aggregate magazine references across all releases.
- Same issue as #7 — the entry page should show a combined reviews/references panel.

### 15. Label detail: country display
- Labels have `country_id` / `country2_id` but the detail page does not show them.

### 16. Label detail: Wikipedia / website links
- `labels.link_wikipedia` and `labels.link_site` exist but are not displayed on the label detail page.

### 17. Entry detail: related entries via same license
- Licenses are shown per-entry but there is no click-through to "other games with this license".

---

## Entirely Unsurfaced Datasets

### 18. NVGs
- **Table:** `nvgs`
- Historical download archive metadata. Not exposed anywhere.

### 19. SPEX entries / authors
- **Tables:** `spex_entries`, `spex_authors`
- No UI.

### 20. Awards
- **Table:** `zxsr_awards`, referenced by `magrefs.award_id`
- No awards browsing or display.

### 21. Review text
- **Table:** `zxsr_reviews` (`intro_text`, `review_text`)
- Magazine refs link to reviews by ID but the actual review text is never rendered.

### 22. Articles
- **Tables:** `articles`, `articletypes`
- No articles browsing.

---

## Navigation / UX Gaps

### 23. No discovery mechanism
- No "random entry", "on this day", or "featured" section. Common for large historic databases.

### 24. No stats / dashboard
- No summary counts ("ZXDB has X entries, Y labels, Z magazines"). Would anchor the landing page.

---

## Suggested Priority

| Priority | Items | Rationale |
|----------|-------|-----------|
| High     | 7/14 (magazine refs on entry detail), 8 (year filter), 15-16 (label country + links) | Data exists, just not wired up. High user value. |
| Medium   | 1 (countries), 5 (tags browse), 6 (licenses browse), 9 (availability filter), 24 (stats) | New pages but straightforward queries. |
| Low      | 2-4 (tools/features/topics), 10-13 (additional filters), 17-22 (unsurfaced datasets), 23 (discovery) | Useful but niche or requires more design work. |
