# Granada Nazarí — Guía de importación a UEFN

> POC: Alhambra con 4 POIs (Mexuar, Arrayanes, Comares, Patio Leones). Megagrants $77K solicitados para reconstrucción completa siglo XIV. ~16h trabajo level designer.

## 0 · Pre-requisitos

- [ ] UEFN 35.0+ con cuenta Epic
- [ ] Proyecto vacío: `granada-nazari-startidea`
- [ ] Backend (API + bridge): `curl https://api-andalus.hubstartidea.es/health` + `curl https://bridge-granada.hubstartidea.es/health`
- [ ] Asesoría académica firmada (Patronato Alhambra + UGR Historia Medieval) — `_operations/letters/`
- [ ] Repertorio andalusí licenciado (Eduardo Paniagua, Hespèrion XXI, etc.)

---

## 1 · Verse import (45 min)

```
Content/granada_nazari/
  ├── granada_nazari.verse
  ├── poi_explorer.verse              (entrypoint POIs)
  ├── live_concert.verse              (gestión conciertos andalusíes)
  └── modules/
       ├── poi_node.verse             (cada POI = un node)
       ├── mission_validator.verse    (valida cumplimiento misión)
       ├── app_sync_bridge.verse      (UEFN ↔ app móvil via Redis bridge)
       ├── language_router.verse      (es/en/fr/ar dinámico)
       ├── school_session.verse       (modo aula con código)
       └── live_concert.verse         (operador OSC → triggers in-game)
```

Build + tests (`poi_test` + `mission_test` → 14 tests pasados).

---

## 2 · Plaza Bib-Rambla (spawn + onboarding) — 60 min

Filtrar `level-blueprint.csv` por `zone=Plaza`:
- Spawn central
- Mostrador profe (school_session)
- 4 banderas (selector idioma)
- 3 portales (Alhambra/Albaicín/Alcaicería — solo Alhambra activo en POC)
- App Sync QR billboard
- NPC guía Yusuf

**Wiring crítico**:
- `plaza_bandera_X.OnTouch` → `language_router.verse:set_language(X)`
- `plaza_app_sync_qr` muestra QR con `https://andalus.hubstartidea.es/link?token=<player_epic_id>`
  - Cuando el usuario abre la app móvil y escanea, el bridge marca el link en Redis
- `plaza_mostrador_profe.OnActivate` → `school_session.verse:create_session()` → genera código 6 letras

---

## 3 · Alhambra — 4 POIs (4 × 90 min)

Construir en orden de Z creciente (de sur a norte):

### POI 1 — Patio del Mexuar (Y=5500)
- Sala de audiencias administrativas
- 2 inscripciones cúficas reales (mat: foto-fidelidad fotogramétrica)
- NPC Alarife (rol)
- Misión: "Reproduce el patrón geométrico de esta yesería"

### POI 2 — Patio Arrayanes + Alberca (Y=7500)
- Alberca 34×7m con agua animada Niagara
- Setos de mirto (decoración icónica)
- Torre Comares visible al fondo
- NPC Comerciante de Seda
- Misión: "Encuentra los 3 detalles que diferencian a una alberca nazarí de una romana"

### POI 3 — Salón de Comares (Y=9500)
- Cúpula estrellada 8017 piezas (mesh hierarchical instanced)
- Trono del sultán
- NPC Sultán Muhammad V
- Quiz: "¿Cuántas estrellas tiene este techo?" (validable con foto in-game)

### POI 4 — Patio de los Leones (Y=11500)
- 124 columnas (instanced static mesh)
- Fuente con 12 leones de mármol
- **CRÍTICO**: zona configurada para conciertos en vivo (live_concert.verse)
- Sala-audiencia 64 jugadores

---

## 4 · Sistema de roles (35 min)

Al spawnar, el jugador elige (o se asigna):
- **Alarife de la Alhambra** — geometría, epigrafía
- **Comerciante de Seda** — zocos, comercio
- **Maestro de Aguas** — aljibes, baños

Verse `poi_node.verse` filtra misiones por rol. Un POI puede tener 1-3 misiones dependiendo del rol.

Endpoint API: `GET https://api-andalus.hubstartidea.es/api/v1/routes/plan?n_hitos=4&rol=alarife`

---

## 5 · Live Concert system (90 min)

El Patio de los Leones es un **espacio reservable para conciertos andalusíes en vivo**.

### Setup
- `concert_master_device` (Verse: `live_concert.verse`) recibe webhook del bridge externo
- Bridge: `https://bridge-granada.hubstartidea.es` (mismo bridge de OSC + Redis)
- Operador externo (humano en sala de control) emite OSC desde DAW → bridge → UEFN

### Flujo de evento típico (90 min)
1. T-30min: Operador inicia sesión en bridge, conecta Resolume + DAW
2. T-10min: Audiencia recibe link → entra al mapa con código sesión
3. T+0: Música comienza, OSC dispara strobes/smoke en escena
4. T+45min: Intermedio
5. T+90min: Cierre

### Repertorio andalusí (curado UGR)
- Eduardo Paniagua — Sephardic and Andalusi music
- Hespèrion XXI (Jordi Savall) — Diáspora sefardí
- Aziz Samsaoui — repertorio actual con instrumentación histórica

Licenciamiento: contactar con sellos (Pneuma, Alia Vox) para uso in-game (~$3K para 6 tracks).

---

## 6 · School Session mode (45 min)

Para uso educativo. Granada.hubstartidea.es (portal docente) genera códigos de sesión.

Flujo:
1. Profe reserva slot en `https://granada.hubstartidea.es`
2. Backend genera código 6 letras
3. Profe va al mapa, va al `plaza_mostrador_profe`, introduce código
4. Sus alumnos entran al mapa, también van al mostrador, mismo código → marcados como "alumno"
5. Profe selecciona POIs a visitar → todos los alumnos se teleportan
6. Al final, quiz → resultados se envían al portal docente

Implementado en `school_session.verse`. Tests cubren los 4 estados (idle, lobby, active, quiz).

---

## 7 · App móvil sync (30 min)

La app `andalus.hubstartidea.es` (versión web) y la app nativa Expo se sincronizan con el mapa:
- En mapa: visitas POI → `bridge-granada.hubstartidea.es/sync/poi-visited` lo registra
- En app: ves tu progreso unificado de in-situ (Granada real) + remoto (Fortnite)

Wiring Verse `app_sync_bridge.verse`:
- `poi.OnVisit` → `WebRequest("POST bridge-granada.hubstartidea.es/sync/poi-visited", {epicId, slug})`
- Bearer auth: `SHARED_TOKEN` en `.env` del proyecto UEFN

---

## 8 · Assets externos

### 3D Models — los más críticos
| Asset | Origen | Coste |
|-------|--------|-------|
| Cúpula Comares (8017 piezas) | Fotogrametría real Alhambra + simplificación 5K tris | $1,500 |
| 124 columnas Leones | Modelar 4 variantes únicas, instanciar | $400 |
| 12 leones mármol | Modelar uno + replicar con rotaciones | $300 |
| Alberca + setos Arrayanes | Marketplace "Mediterranean Garden" + custom | $200 |
| Yeserías inscripciones | Foto-textura directamente de fotos UGR (CC) | $0 |
| Torre Comares fachada | Modelar custom 8h | $320 |
| NPCs (Yusuf, Alarife, Comerciante, Sultán) | 4 NPCs custom outfits nazaríes | $400 |

**Total 3D**: ~$3,120.

### Audio
- 6 tracks andalusíes licenciados | ~$3,000
- Voz narradora 4 idiomas × 4 POIs × 60s = 16 narraciones | ~$1,600
- Ambient (agua, viento, pájaros) | ~$200

**Total audio**: ~$4,800.

### Asesoría académica
- Patronato Alhambra: validación arquitectónica | $1,500
- UGR Historia Medieval: validación narrativas + epigrafía | $800
- Casa Árabe: revisión traducción árabe | $500

**Total académico**: ~$2,800.

### Coste total POC (Fase 1, solo Alhambra POIs)
**~$10,720** del presupuesto Megagrants $77K total.

---

## 9 · Roadmap completo (Megagrants $77K total)

Las 7 zonas de Granada nazarí:

| Zona | Mes objetivo | Coste estimado |
|------|--------------|----------------|
| 1. Alhambra (POC, 4 POIs) | Julio 2026 | $11K |
| 2. Generalife (palacio + jardines + huertas) | Sept 2026 | $12K |
| 3. Albaicín (mezquitas, casas, miradores) | Dic 2026 | $14K |
| 4. Alcaicería (zocos, alhóndigas) | Marzo 2027 | $11K |
| 5. Cartuja + Realejo (extramuros) | Junio 2027 | $10K |
| 6. Sacromonte + caminos al Albaicín | Sept 2027 | $10K |
| 7. Eventos en vivo (4 conciertos andalusíes anuales) | continuo | $9K (sala + músicos + producción) |

---

## 10 · Tests críticos pre-Megagrants

- [ ] 4 POIs validan visita correctamente (con o sin sesión escolar)
- [ ] Sistema de roles cambia las misiones correctamente
- [ ] Selector de idioma re-renderiza TODOS los textos (ES/EN/FR/AR)
- [ ] App sync confirma con bridge-granada (verificar Redis)
- [ ] School session mode: profe + 4 alumnos completan flujo
- [ ] Live concert: webhook OSC dispara FX en escena
- [ ] Audio espacial funciona en Patio Leones (concierto)
- [ ] Foto-validable funciona (jugador hace screenshot → OCR → verifica visita)

---

## 11 · Compromisos con Patronato Alhambra

(En el documento de asesoría académica)

- No representar elementos no documentados arqueológicamente
- Citar fuentes en cada POI (Bermúdez Pareja, Torres Balbás, etc.)
- Logo + URL de Patronato visible en cinemática inicial
- Compartir 100% de los ingresos derivados con Patronato (educational use)
