# IDEAS / Vision — flightplanner Cible produit à long terme : une appli de **briefing de vol** complète, dans l'esprit de SkyNexus / SimBrief / PFPX (voir maquettes fournies). Ce document capture les idées **au-delà du MVP** ; il ne remet pas en cause l'ordre de travail défini dans [`TODO.md`]. > ⚠️ **Tension à assumer.** Le MVP est *offline-first* (navdata X-Plane locale, > zéro dépendance cloud). La plupart des écrans ci-dessous reposent sur des > **données temps réel / online** (météo, NOTAM, réseau VATSIM, cartes ChartFox). > Ils appartiennent donc à une **phase post-MVP**, et seront branchés via une > couche *providers* **optionnelle** : chaque source a une implémentation > « offline / vide » par défaut, et une implémentation « online » activable. > Le cœur (parsing, routing, perf, export) reste utilisable sans réseau. ## Impact architecture (prévoir tôt, coder plus tard) - **`crates/providers`** — traits abstraits + implémentations : `WeatherProvider` (METAR/TAF/SIGMET/WAFS), `NotamProvider`, `ChartProvider` (ChartFox), `NetworkProvider` (VATSIM online ATC/traffic). Chaque trait a une impl `Null`/offline. Aucune de ces deps ne remonte dans `core`. - **`crates/web`** — UI locale (Axum + front simple) qui héberge les écrans Briefing / DEP-ARR-ALT / Enroute / Charts. Consomme `core` + `providers`. - **`OFP builder`** dans `core` : agrège route + perf + météo en un objet « briefing » sérialisable (base commune CLI ↔ web ↔ export PDF/texte). - **Modèle de vol enrichi** : callsign, type OACI (ex. BCS3/A220), CI, step climbs, ZFW/TOW/LDW, bloc carburant détaillé, alternates multiples. --- ## 1. Écran BRIEFING (OFP / dashboard) - **Bandeau global** (toutes pages) : callsign, type avion + moteur, dep→arr, heures OFF/ON + temps bloc, cycle AIRAC, version OFP, sync multi-appareils, actions PAD / OFP / REFRESH. - **Couverture ATC** : timeline des FIR traversés avec état online (VATSIM). - **Weights** : ZFW / TOW / LDW. - **Fuel** : bloc total + décomposition TAXI / TRIP / CONT / ALTN / FINRES (barre empilée visuelle). - **Load** : PAX, cargo, payload, Cost Index, CRZ FL / temp, Mach. - **Step climbs** : profil d'altitude par étape. - **Cartes départ / arrivée** condensées : RWY, SID/STAR, QNH, vent, METAR. - **Route** : chaîne complète SID … DCT/airways … STAR, + bouton « File on VATSIM ». - **Alternates** : FL, distance, fuel, ETE, route de déroutement. - **Cruise level impact** : Δ trip fuel / Δ temps pour FL ±2000/4000/6000 vs FL choisi. ## 2. Écrans DEP / ARR / ALT (briefing terrain) - **En-tête terrain** : nom, ELEV, TA (transition alt), TL (transition level), RWY active + « change RWY », sélecteur SID/STAR. - **Météo** : rose des vents (orientation piste + vecteur vent + composantes), tuiles WIND / VIS / QNH / TEMP-DEW, METAR + TAF (mise en évidence des changements/éléments importants), refresh. - **ATIS** décodé, avec source (SayIntentions / VATSIM / réel). - **NOTAMs** : compteur total + CRITICAL/IMPORTANT, filtre « n'affectant que mon vol », regroupement (YOUR FLIGHT / TAXIWAYS & GROUND / NAVAIDS & LIGHTING / GENERAL), tags CHANGED / NOT AVAILABLE, dépliables. - **NADP** (profil anti-bruit) + **EOSID** (engine-out SID). - **Table pistes** : HDG, type d'approche, dimensions, THR ELEV, TORA/TODA/ASDA/LDA, marge. - **Operational notes** : infos arrivée/départ/taxi spécifiques au terrain. - **Crew briefing** : catégorie d'approche (CAT), threats (TEM). - **ALT (déroutement)** : Divert plan — niveau, distance, fuel, ETE, route. ## 3. Écran ENROUTE (carte + profil vertical) - **Carte mobile** avec la route tracée et les waypoints. - **Couches** : - Flight plan (route + waypoints) - Météo : METARs, SIGMET, conditions de vol, vents ≥15kt, **radar de précip** - Prévision WAFS : jet stream, turbulence, givrage, fronts - Réseau online : ATC VATSIM, trafic, ma position - Catégories de vol (VFR / MVFR / IFR / LIFR) avec compteurs + légende - Vent surface (légende barbules) - **Time scrubber** : LIVE + prévision (+6h … +36h). - **Badges météo aéroports** (dispo GA/TAF/ATIS). - **Profil vertical (type EWAS)** : bandes FL, vent/temp le long de la route, terrain, waypoints avec distances cumulées, axe temps, FL de croisière surligné. ## 4. Écran CHARTS - Intégration **ChartFox** (ou équivalent). - Par terrain (DEP/ARR/ALT + ajout ICAO) : cartes groupées TAXI / SID / STAR / APPROACH avec alternatives, tags « ON PLAN » / « GEO » (géo-référencé), épinglage. - **Visionneuse** : zoom/fit/rotation/luminosité, overlay position live, download, ouverture externe, barre d'onglets des cartes ouvertes. --- ## Validation IFPS (Eurocontrol) — « check IFPS fiable » Objectif : savoir si une route serait **acceptée par l'IFPS** (Eurocontrol NM, espace IFPZ européen). C'est demandé comme fonctionnalité *fiable*. **Réalité à assumer :** un check IFPS *fiable* est **forcément online et autoritatif**. Les règles à respecter incluent la connectivité point/airway, le sens et la bande de FL des airways, les **RAD** (Route Availability Document : routings obligatoires, DCT interdits, restrictions de flux, contraintes de niveau par zone/horaire — change à chaque cycle AIRAC), les limites DCT en FRA, la connexion SID/STAR au réseau, RVSM, etc. Reproduire tout cela **hors ligne** ne peut pas être « fiable » : on courrait derrière le ruleset Eurocontrol. **Conception en deux couches :** 1. **Validateur autoritatif (online, post-MVP)** — la seule source *fiable* : - **Eurocontrol NM B2B** service `flightPlanValidation` (nécessite un compte NM + certificat, réservé AO/CFSP) — référence absolue. - Alternative : **Autorouter** (fait une vraie validation IFPS) ou portail NOP (manuel). Renvoie accepté/refusé + messages IFPS (ERROUTxxx, PROF…). - Exposé via un trait `providers::IfpsValidator` ; impl online activable. 2. **Pré-validateur structurel (offline, faisable dans `core`)** — *best-effort, non autoritatif*, pour attraper les erreurs évidentes avant soumission : - chaque point de la route existe et est bien sur l'airway cité ; - sens d'airway (N/F/B) respecté ; - FL de croisière dans la bande `base_fl…top_fl` du segment ; - DCT « raisonnables » (longueur, hors FRA) ; - continuité de la séquence (pas de trou entre segments). Résultat étiqueté clairement « pré-check local, non IFPS-officiel ». > Décision requise : cible du validateur autoritatif (NM B2B vs Autorouter) et > accès/credentials disponibles. En attendant, le pré-validateur offline apporte > déjà de la valeur et alimentera la même API `IfpsResult { accepted, errors, > warnings }`. ## Priorisation suggérée (post-MVP) 1. **OFP builder + écran Briefing texte** (n'a besoin que de core : route + perf). Faisable offline, prolonge directement l'étape 5 (OFP). 2. **UI web locale** (Axum) réutilisant l'OFP builder — pages statiques d'abord. 3. **Providers online optionnels** : météo (METAR/TAF) → NOTAM → WAFS → réseau VATSIM → ChartFox, dans cet ordre de valeur/effort. 4. **Écran Enroute (carte + profil vertical)** — le plus lourd, en dernier. [`TODO.md`]: ./TODO.md