# TODO v14 — Compatibilité Foundry VTT

## ✅ Bloquant — terminé

### 1. ✅ Sheets acteur V1 → V2
- V1 déplacés vers `_deprecated/module/actor/` (10 fichiers `.js`)
- V2 dans `module/applications/sheets/` (fichiers `.mjs`)

### 2. ✅ Sheet journal V1 → V2
- `module/journal/journal-sheet.mjs` → `extends JournalEntryPageProseMirrorSheet`
- `_prepareContentContext` override → `RdDTextEditor.enrichHTML()`
- `_onRender` → roll-text/chat-roll-text click listeners

### 3. ✅ 24 classes `extends Dialog` → V2
- Toutes converties en `extends foundry.applications.api.DialogV2`
- `module/tirage/fenetre-recherche-tirage.js` — `FenetreRechercheTirage` migré V1 App → V2 ApplicationV2
- `module/sommeil/dialog-nouveau-repos-cd.js` — `new Dialog(...)` direct → `DialogV2.wait()`

### 4. ✅ 3 classes `extends Application` → V2
- `module/tirage/fenetre-recherche-tirage.js` — FAIT (ApplicationV2)
- `module/time/rdd-calendrier.js` (RdDCalendrier) — FAIT (ApplicationV2)
- `module/sommeil/app-astrologie.js` (AppAstrologie) — FAIT (ApplicationV2)

### 5. ✅ 1 classe `extends FormApplication` → V2
- `module/actor/random/app-personnage-aleatoire.js` — FAIT (ApplicationV2)

### 6. ✅ 7 appels `new Dialog({...})` directs → DialogV2
Tous convertis. +3 autres dans `module/applications/sheets/base-actor-sheet.mjs` & `personnage-sheet.mjs`.

## 🟠 Haute priorité

### 7. ✅ `_id` dans `updateEmbeddedDocuments` → utiliser `.id` — **FAIT** (10 occ. changées, 2 déjà OK, 1 string param)

### 8. ✅ `bringToFront()` sur apps V1 → adapter
Rétrocompatibilité V2 gère. Pas d'erreur constatée (les apps converties utilisent V2).

### 9. ✅ `_onClose()` sans `super._onClose()` → **FAIT**
- `module/dialog-gerer-potions.js:45-49`
- `module/dialog-gerer-ingredients.js:45-49`
- `module/dialog-gerer-herbes.js:47-51`

## 🟡 Priorité moyenne

### 10. ✅ `foundry.utils.duplicate()` → `deepClone()` — **FAIT** (36 fichiers)

### 11. ✅ `._id` en lecture → `.id` — **FAIT** (21 occ. changées, 11 conservées sur objets de données)
~45 occurrences : `item._id`, `actor._id`, `combatant._id`, `token._id`…

### 12. `render(true)` sur apps V2 → `render({force: true})`
Rétrocompatibilité V2 normalise booléen → pas prioritaire.
~60 occurrences dans module/ — nos fichiers convertis l'utilisent déjà.

### 13. ✅ Incohérence registration sheets
`module/applications/sheets/common-item-sheet.mjs` — `Items.registerSheet()` → `foundry.documents.collections.Items.registerSheet()`

## 🟢 Basse priorité / Info

### 14. ✅ `canvas` sans vérification `ready`
27 occurrences dans 11 fichiers sécurisées avec `?.`

### 15. ✅ `element[0]` jQuery
`module/tirage/fenetre-recherche-tirage.js:213` — déjà résolu par refacto antérieur

### 16. ✅ `_warnedAppV1 = true`
Supprimé de `rdd-calendrier.js`; restant dans `_deprecated/` ignoré

### 17. ✅ `system.json` — nom de langue
`"name": "English"` → `"Français"` pour ne pas tromper sur `lang/fr.json`
