Clean-room reproduction of PFPX: route generation + IFPS validation + OFP. Independent design — official ICAO/EUROCONTROL data only (RAD, FRA points, IFPUV oracle); no community FPL sources. Workspace crates: core (routing/discover/rad/navdata/perf/export), cli, server, rad (Annex parser), gui (Tauri v2 + React + MapLibre). Route discovery: oracle-in-the-loop repair against Eurocontrol IFPUV. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7.2 KiB
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 implNull/offline. Aucune de ces deps ne remonte danscore.crates/web— UI locale (Axum + front simple) qui héberge les écrans Briefing / DEP-ARR-ALT / Enroute / Charts. Consommecore+providers.OFP builderdanscore: 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 :
-
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.
- Eurocontrol NM B2B service
-
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_fldu 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)
- OFP builder + écran Briefing texte (n'a besoin que de core : route + perf). Faisable offline, prolonge directement l'étape 5 (OFP).
- UI web locale (Axum) réutilisant l'OFP builder — pages statiques d'abord.
- Providers online optionnels : météo (METAR/TAF) → NOTAM → WAFS → réseau VATSIM → ChartFox, dans cet ordre de valeur/effort.
- Écran Enroute (carte + profil vertical) — le plus lourd, en dernier.