# Ark Nova

# Ark Nova

> _Dernière mise à jour : 2026-05-10_

Jeu de société (zoo), pas un TCG. Traité avec base de cartes pour l'autocomplete `@` et l'enrichissement RAG.

## Source

- **JSON local + sprite sheets** : extraction one-shot
- **Collection Qdrant** : `ark-nova-cards`
- **Data dir** : `ARK_NOVA_CARDS_DATA_DIR` (défaut `/app/data/ark-nova-cards`)
  - `cards.json` : extrait
  - `images/animals/`, `images/sponsors/` : PNG découpées via sprite-slicing

## Code

| Fichier | Rôle |
|---|---|
| `src/services/cards/sources/ark-nova.ts` | CardSource |
| `scripts/ark-nova-cards/extract-cards.ts` | Parse JSON local |
| `scripts/ark-nova-cards/slice-sprites.ts` | Découpe sprite sheets en PNG individuelles |
| `scripts/ark-nova-cards/ingest.ts` | Push Qdrant |
| `scripts/ark-nova-cards/link-game.ts` | Lie ligne `games` |

## Payload Qdrant `ark-nova-cards`

```typescript
{
  id: pointId,
  name: string,
  category: 'animal' | 'sponsor',
  latin_name: string,         // pour les animaux
  size: 'small' | 'medium' | 'large',
  conservation_point: number,  // points conservation
  endangered: boolean,
  image_url: string,          // chemin local PNG découpé
  text: string,               // texte des effets
}
```

## Pas de méta ni deckbuilding

Ark Nova n'a pas de format compétitif constructed. Le mode deckbuilding ne s'applique pas — retrieval synergy seul.

## Pas de symboles UI dédiés

Les pictos (taille, conservation, abreuvoir, partenaire scientifique…) restent dans le texte descriptif des cartes. Si tu veux ajouter des PNG : créer `frontend/src/lib/ark-nova-symbols.ts` + assets `frontend/public/ark-nova-icons/`.

## Mise à jour

Quasi-statique. Si une nouvelle extension sort :

1. Mettre à jour le JSON local et/ou les sprites
2. `docker exec boardgame-referee npm run cards:ark-nova:slice` (re-découpe sprites)
3. `docker exec boardgame-referee npm run cards:ark-nova:extract` (re-parse JSON)
4. `docker exec boardgame-referee npm run cards:ark-nova:ingest` (push Qdrant)
5. `/admin` → Resync ARK NOVA cards (optionnel)

## Cas d'usage typique

- "Quels animaux donnent le plus de points conservation ?" → retrieval cartes + tri par `conservation_point`
- "Quelle synergie avec les small animals ?" → retrieval avec filter `size='small'`
- Citation `@Tiger` dans une question → carte injectée en bloc CARTES CITÉES