# Quest Vertical Slice (APK de teste)

## O que esta build entrega
Um fluxo curto e “real” dentro de `QuestPresentation` (sem CRM/web):
- abre a app e entra na apresentação
- navega por etapas (2 passos)
- abre hotspot e micro-narrativa
- abre comparação entre 2 opções e troca lados
- abre fechamento comercial (CTA) e registra resultado
- salva snapshot local e tenta restaurar (para validar persistência)

## Pré-requisitos no Unity
1. Versão do Unity: `2022.3.0f1` (ver em `ProjectSettings/ProjectVersion.txt`)
2. Build Target: `Android`
3. Arquitetura: `ARM64`
4. Módulos Unity Hub (para build Android):
   - `Android Build Support` (SDK/NDK + OpenJDK)
5. XR real: habilitar **OpenXR** no editor via `XR Plug-in Management` (já adicionamos `com.unity.xr.openxr` e `com.unity.xr.management` no `Packages/manifest.json`).  
   - O runtime tenta inicializar o loader no runtime e usa pose/head tracking via `InputTracking` quando o device estiver em `RealXR`.
6. Scenes no Build:
   - `Assets/Presentation/Scenes/QuestPresentation.unity`

## Gerar APK debug (batchmode)
1. Ajuste a variável de ambiente `UNITY_EXECUTABLE` apontando para o executável do Unity:
```bash
export UNITY_EXECUTABLE="/caminho/para/Unity.app/Contents/MacOS/Unity"
```
2. Rode:
```bash
./scripts/build_android_quest_apk_batchmode.zsh
```

Saída esperada (padrão): `builds/android/quest-debug.apk`.
Log Unity esperado: `builds/android/android-quest-build.log`.

## Instalar no Meta Quest
### Via ADB
1. Ative `Developer Mode` e `USB debugging` no Quest.
2. Conecte no cabo USB.
3. No computador:
```bash
adb devices
adb -d install -r "/caminho/para/seu/apk-debug.apk"
```

Se o `adb devices` listar mais de um dispositivo, substitua `-d` pelo `-s <serial>`.

### Via SideQuest (alternativa)
1. Abra o SideQuest.
2. Arraste/solte o APK de debug para instalar.

## O que validar no headset (checklist)
1. A cena principal abre direto em `QuestPresentation` (sem cair no `Main`/CRM).
2. Painéis world-space aparecem visíveis de imediato (sem precisar apertar tecla “U”).
3. HUD/painéis mostram progresso e permitem:
   - navegar por alguns passos
   - abrir hotspot + micro-narrativa
4. Comparação abre, troca lados e depois fecha.
5. Fechamento comercial abre e o CTA registra (a UI atualiza; e o snapshot local fica salvo).
6. Após recarregar a app, se existir snapshot, a corrotina restaura automaticamente e reabre o closing (se estava aberto).

## Limitações / “mockados” nesta etapa
1. Se OpenXR/Meta XR ainda não estiver configurado no seu Unity/Player Settings, o runtime entra em fallback/simulação (mas a UI e o fluxo de navegação continuam funcionando para validar o core).
2. Conteúdo ainda é mock (mock services) por design desta vertical slice.

