{
  "name": "TAF",
  "version": "1.0.0",
  "description": "TAF: Prévision d'aérodrome",
  "identifier": "TAF",
  "tokens": {
    "identifier": {
      "pattern": "^TAF$",
      "category": "keyword",
      "description": "Indicatif du type de prévision"
    },
    "amendment": {
      "pattern": "^AMD$",
      "category": "keyword",
      "description": "Indicateur d'amendement pour prévision modifiée"
    },
    "correction": {
      "pattern": "^COR$",
      "category": "keyword",
      "description": "Indicateur de correction pour prévision corrigée"
    },
    "icao": {
      "pattern": "^[A-Z]{4}$",
      "category": "location",
      "description": "Indicateur d'emplacement OACI CCCC",
      "placeholder": {
        "value": "AAAA",
        "editable": [
          {
            "start": 0,
            "end": 4
          }
        ]
      }
    },
    "issueTime": {
      "pattern": "^\\d{6}Z$",
      "category": "datetime",
      "description": "Jour et heure d'émission en UTC",
      "validator": "DDHHmmZ",
      "placeholder": { "value": "000000Z", "editable": [{ "start": 0, "end": 2 }, { "start": 2, "end": 4 }, { "start": 4, "end": 6 }] }
    },
    "nil": {
      "pattern": "^NIL$",
      "category": "keyword",
      "description": "Indicateur de prévision manquante"
    },
    "validityPeriod": {
      "pattern": "^\\d{4}\\/\\d{4}$",
      "category": "datetime",
      "description": "Période de validité Y1Y1G1G1/Y2Y2G2G2 (jour+heure début/fin)",
      "validator": "DDHH/DDHH",
      "placeholder": {
        "value": "0000/0000",
        "editable": [
          {
            "start": 0,
            "end": 2
          },
          {
            "start": 2,
            "end": 4
          },
          {
            "start": 5,
            "end": 7
          },
          {
            "start": 7,
            "end": 9
          }
        ]
      }
    },
    "cnl": {
      "pattern": "^CNL$",
      "category": "keyword",
      "description": "Indicateur de prévision annulée"
    },
    "wind": {
      "pattern": "^(VRB|\\d{3})(\\d{2,3}|P(99|49))(G\\d{2,3})?(KT|MPS)$|^00000(KT|MPS)$",
      "category": "measurement",
      "description": "Vent en surface dddff[Gfmfm]{KT|MPS}, P99/P49 pour vitesses >99kt/>49mps"
    },
    "cavok": {
      "pattern": "^CAVOK$",
      "category": "status",
      "description": "Plafond et visibilité OK - vis >=10km, pas de nuages <1500m/MSA, pas de CB/TCU, pas de temps significatif"
    },
    "visibility": {
      "pattern": "^\\d{4}$|^9999$|^0000$",
      "category": "measurement",
      "description": "Visibilité dominante VVVV en mètres",
      "placeholder": {
        "value": "0000",
        "editable": [
          {
            "start": 0,
            "end": 4
          }
        ]
      }
    },
    "weather": {
      "pattern": "^[-+]?(VC)?(MI|PR|BC|DR|BL|SH|TS|FZ)?(DZ|RA|SN|SG|IC|PL|GR|GS|UP)*(BR|FG|FU|VA|DU|SA|HZ|PY)?(PO|SQ|FC|SS|DS)?$",
      "category": "phenomenon",
      "description": "Temps prévu w'w' - intensité/proximité + descripteur + phénomènes (Table de code 4678)"
    },
    "nsw": {
      "pattern": "^NSW$",
      "category": "phenomenon",
      "description": "Pas de temps significatif - fin des phénomènes météo dans groupe de changement"
    },
    "cloud": {
      "pattern": "^(FEW|SCT|BKN|OVC)(\\d{3})(CB|TCU)?$",
      "category": "measurement",
      "description": "Couche nuageuse NsNsNshshshs - nébulosité + hauteur en centaines de pieds + type",
      "appendToPrevious": true
    },
    "verticalVisibility": {
      "pattern": "^VV(\\d{3}|\\/\\/\\/)$",
      "category": "measurement",
      "description": "Visibilité verticale VVhshshs en centaines de pieds quand ciel obscurci",
      "placeholder": {
        "value": "VV000",
        "editable": [
          {
            "start": 2,
            "end": 5
          }
        ]
      }
    },
    "nsc": {
      "pattern": "^NSC$",
      "category": "status",
      "description": "Pas de nuages significatifs - pas de nuages <1500m/MSA, pas de CB/TCU"
    },
    "skyClear": {
      "pattern": "^(SKC|CLR)$",
      "category": "status",
      "description": "Ciel dégagé (usage régional)"
    },
    "temperatureMax": {
      "pattern": "^TXM?\\d{2}\\/\\d{4}Z$",
      "category": "measurement",
      "description": "Température maximale TXTFTF/YFYFGFGFZ (optionnel, régional)"
    },
    "temperatureMin": {
      "pattern": "^TNM?\\d{2}\\/\\d{4}Z$",
      "category": "measurement",
      "description": "Température minimale TNTFTF/YFYFGFGFZ (optionnel, régional)"
    },
    "prob": {
      "pattern": "^PROB(30|40)$",
      "category": "trend",
      "description": "Indicateur de probabilité PROB30 ou PROB40"
    },
    "tempo": {
      "pattern": "^TEMPO$",
      "category": "trend",
      "description": "Fluctuations temporaires - changements <1h chacun, <50% de la période"
    },
    "becmg": {
      "pattern": "^BECMG$",
      "category": "trend",
      "description": "Devenant - changement attendu à rythme régulier/irrégulier"
    },
    "fm": {
      "pattern": "^FM\\d{6}$",
      "category": "trend",
      "description": "À partir de - nouvelle période de prévision autonome"
    },
    "changeTime": {
      "pattern": "^\\d{4}\\/\\d{4}$",
      "category": "datetime",
      "description": "Période du groupe de changement YYGG/YeYeGeGe",
      "placeholder": {
        "value": "0000/0000",
        "editable": [
          {
            "start": 0,
            "end": 2
          },
          {
            "start": 2,
            "end": 4
          },
          {
            "start": 5,
            "end": 7
          },
          {
            "start": 7,
            "end": 9
          }
        ]
      }
    }
  },
  "structure": [
    {
      "id": "identifier",
      "cardinality": [
        1,
        1
      ]
    },
    {
      "id": "modifierGroup",
      "cardinality": [
        1,
        1
      ],
      "oneOf": [
        {
          "id": "amendment",
          "cardinality": [
            0,
            1
          ]
        },
        {
          "id": "correction",
          "cardinality": [
            0,
            1
          ]
        }
      ]
    },
    {
      "id": "icao",
      "cardinality": [
        1,
        1
      ]
    },
    {
      "id": "issueTime",
      "cardinality": [
        1,
        1
      ]
    },
    {
      "id": "mainContent",
      "cardinality": [
        1,
        1
      ],
      "oneOf": [
        {
          "id": "nil",
          "terminal": true,
          "cardinality": [
            1,
            1
          ]
        },
        {
          "id": "forecastBody",
          "cardinality": [
            1,
            1
          ],
          "sequence": [
            {
              "id": "validityPeriod",
              "cardinality": [
                1,
                1
              ]
            },
            {
              "id": "forecastContent",
              "cardinality": [
                1,
                1
              ],
              "oneOf": [
                {
                  "id": "cnl",
                  "terminal": true,
                  "cardinality": [
                    1,
                    1
                  ]
                },
                {
                  "id": "fullForecast",
                  "cardinality": [
                    1,
                    1
                  ],
                  "sequence": [
                    {
                      "id": "wind",
                      "cardinality": [
                        1,
                        1
                      ]
                    },
                    {
                      "id": "visibilityGroup",
                      "cardinality": [
                        1,
                        1
                      ],
                      "oneOf": [
                        {
                          "id": "cavok",
                          "cardinality": [
                            1,
                            1
                          ]
                        },
                        {
                          "id": "visibilityDetails",
                          "cardinality": [
                            1,
                            1
                          ],
                          "sequence": [
                            {
                              "id": "visibility",
                              "cardinality": [
                                1,
                                1
                              ]
                            },
                            {
                              "id": "weather",
                              "cardinality": [
                                0,
                                3
                              ]
                            },
                            {
                              "id": "cloudGroup",
                              "cardinality": [
                                1,
                                1
                              ],
                              "oneOf": [
                                {
                                  "id": "nsc",
                                  "cardinality": [
                                    1,
                                    1
                                  ]
                                },
                                {
                                  "id": "skyClear",
                                  "cardinality": [
                                    1,
                                    1
                                  ]
                                },
                                {
                                  "id": "verticalVisibility",
                                  "cardinality": [
                                    1,
                                    1
                                  ]
                                },
                                {
                                  "id": "cloud",
                                  "cardinality": [
                                    1,
                                    4
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "id": "temperatureMax",
                      "cardinality": [
                        0,
                        1
                      ]
                    },
                    {
                      "id": "temperatureMin",
                      "cardinality": [
                        0,
                        1
                      ]
                    },
                    {
                      "id": "changeGroups",
                      "cardinality": [
                        0,
                        null
                      ],
                      "oneOf": [
                        {
                          "id": "tempoGroup",
                          "cardinality": [
                            1,
                            1
                          ],
                          "sequence": [
                            {
                              "id": "prob",
                              "cardinality": [
                                0,
                                1
                              ]
                            },
                            {
                              "id": "tempo",
                              "cardinality": [
                                1,
                                1
                              ]
                            },
                            {
                              "id": "changeTime",
                              "cardinality": [
                                1,
                                1
                              ]
                            },
                            {
                              "id": "wind",
                              "cardinality": [
                                0,
                                1
                              ]
                            },
                            {
                              "id": "tempoVisGroup",
                              "cardinality": [
                                0,
                                1
                              ],
                              "oneOf": [
                                {
                                  "id": "cavok",
                                  "cardinality": [
                                    1,
                                    1
                                  ]
                                },
                                {
                                  "id": "tempoVisDetails",
                                  "cardinality": [
                                    1,
                                    1
                                  ],
                                  "sequence": [
                                    {
                                      "id": "visibility",
                                      "cardinality": [
                                        0,
                                        1
                                      ]
                                    },
                                    {
                                      "id": "tempoWeatherGroup",
                                      "cardinality": [
                                        0,
                                        1
                                      ],
                                      "oneOf": [
                                        {
                                          "id": "weather",
                                          "cardinality": [
                                            1,
                                            3
                                          ]
                                        },
                                        {
                                          "id": "nsw",
                                          "cardinality": [
                                            1,
                                            1
                                          ]
                                        }
                                      ]
                                    },
                                    {
                                      "id": "tempoCloudGroup",
                                      "cardinality": [
                                        0,
                                        1
                                      ],
                                      "oneOf": [
                                        {
                                          "id": "nsc",
                                          "cardinality": [
                                            1,
                                            1
                                          ]
                                        },
                                        {
                                          "id": "verticalVisibility",
                                          "cardinality": [
                                            1,
                                            1
                                          ]
                                        },
                                        {
                                          "id": "cloud",
                                          "cardinality": [
                                            1,
                                            4
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "id": "becmgGroup",
                          "cardinality": [
                            1,
                            1
                          ],
                          "sequence": [
                            {
                              "id": "becmg",
                              "cardinality": [
                                1,
                                1
                              ]
                            },
                            {
                              "id": "changeTime",
                              "cardinality": [
                                1,
                                1
                              ]
                            },
                            {
                              "id": "wind",
                              "cardinality": [
                                0,
                                1
                              ]
                            },
                            {
                              "id": "becmgVisGroup",
                              "cardinality": [
                                0,
                                1
                              ],
                              "oneOf": [
                                {
                                  "id": "cavok",
                                  "cardinality": [
                                    1,
                                    1
                                  ]
                                },
                                {
                                  "id": "becmgVisDetails",
                                  "cardinality": [
                                    1,
                                    1
                                  ],
                                  "sequence": [
                                    {
                                      "id": "visibility",
                                      "cardinality": [
                                        0,
                                        1
                                      ]
                                    },
                                    {
                                      "id": "becmgWeatherGroup",
                                      "cardinality": [
                                        0,
                                        1
                                      ],
                                      "oneOf": [
                                        {
                                          "id": "weather",
                                          "cardinality": [
                                            1,
                                            3
                                          ]
                                        },
                                        {
                                          "id": "nsw",
                                          "cardinality": [
                                            1,
                                            1
                                          ]
                                        }
                                      ]
                                    },
                                    {
                                      "id": "becmgCloudGroup",
                                      "cardinality": [
                                        0,
                                        1
                                      ],
                                      "oneOf": [
                                        {
                                          "id": "nsc",
                                          "cardinality": [
                                            1,
                                            1
                                          ]
                                        },
                                        {
                                          "id": "verticalVisibility",
                                          "cardinality": [
                                            1,
                                            1
                                          ]
                                        },
                                        {
                                          "id": "cloud",
                                          "cardinality": [
                                            1,
                                            4
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "id": "fmGroup",
                          "cardinality": [
                            1,
                            1
                          ],
                          "sequence": [
                            {
                              "id": "fm",
                              "cardinality": [
                                1,
                                1
                              ]
                            },
                            {
                              "id": "wind",
                              "cardinality": [
                                1,
                                1
                              ]
                            },
                            {
                              "id": "fmVisGroup",
                              "cardinality": [
                                1,
                                1
                              ],
                              "oneOf": [
                                {
                                  "id": "cavok",
                                  "cardinality": [
                                    1,
                                    1
                                  ]
                                },
                                {
                                  "id": "fmVisDetails",
                                  "cardinality": [
                                    1,
                                    1
                                  ],
                                  "sequence": [
                                    {
                                      "id": "visibility",
                                      "cardinality": [
                                        1,
                                        1
                                      ]
                                    },
                                    {
                                      "id": "weather",
                                      "cardinality": [
                                        0,
                                        3
                                      ]
                                    },
                                    {
                                      "id": "fmCloudGroup",
                                      "cardinality": [
                                        1,
                                        1
                                      ],
                                      "oneOf": [
                                        {
                                          "id": "nsc",
                                          "cardinality": [
                                            1,
                                            1
                                          ]
                                        },
                                        {
                                          "id": "verticalVisibility",
                                          "cardinality": [
                                            1,
                                            1
                                          ]
                                        },
                                        {
                                          "id": "cloud",
                                          "cardinality": [
                                            1,
                                            4
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "id": "probGroup",
                          "cardinality": [
                            1,
                            1
                          ],
                          "sequence": [
                            {
                              "id": "prob",
                              "cardinality": [
                                1,
                                1
                              ]
                            },
                            {
                              "id": "changeTime",
                              "cardinality": [
                                1,
                                1
                              ]
                            },
                            {
                              "id": "wind",
                              "cardinality": [
                                0,
                                1
                              ]
                            },
                            {
                              "id": "probVisGroup",
                              "cardinality": [
                                0,
                                1
                              ],
                              "oneOf": [
                                {
                                  "id": "cavok",
                                  "cardinality": [
                                    1,
                                    1
                                  ]
                                },
                                {
                                  "id": "probVisDetails",
                                  "cardinality": [
                                    1,
                                    1
                                  ],
                                  "sequence": [
                                    {
                                      "id": "visibility",
                                      "cardinality": [
                                        0,
                                        1
                                      ]
                                    },
                                    {
                                      "id": "probWeatherGroup",
                                      "cardinality": [
                                        0,
                                        1
                                      ],
                                      "oneOf": [
                                        {
                                          "id": "weather",
                                          "cardinality": [
                                            1,
                                            3
                                          ]
                                        },
                                        {
                                          "id": "nsw",
                                          "cardinality": [
                                            1,
                                            1
                                          ]
                                        }
                                      ]
                                    },
                                    {
                                      "id": "probCloudGroup",
                                      "cardinality": [
                                        0,
                                        1
                                      ],
                                      "oneOf": [
                                        {
                                          "id": "nsc",
                                          "cardinality": [
                                            1,
                                            1
                                          ]
                                        },
                                        {
                                          "id": "verticalVisibility",
                                          "cardinality": [
                                            1,
                                            1
                                          ]
                                        },
                                        {
                                          "id": "cloud",
                                          "cardinality": [
                                            1,
                                            4
                                          ]
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "suggestions": {
    "items": {
      "identifier": [
        {
          "text": "AMD",
          "description": "Amendement"
        },
        {
          "text": "COR",
          "description": "Correction"
        },
        {
          "text": "NIL",
          "description": "Prévision manquante"
        },
        {
          "text": "CNL",
          "description": "Prévision annulée"
        }
      ],
      "taf_short": [
        {
          "type": "switchGrammar",
          "text": "TAF Court (≤12h) ▶",
          "description": "Prévision courte durée",
          "target": "fc"
        }
      ],
      "taf_long": [
        {
          "type": "switchGrammar",
          "text": "TAF Long (12-30h) ▶",
          "description": "Prévision longue durée",
          "target": "ft"
        }
      ],
      "icao": [],
      "issueTime": [],
      "wind": [
        { "text": "VRB02KT", "description": "Vent variable 2 kt" },
        { "text": "VRB01MPS", "description": "Vent variable 1 m/s" },
        { "text": "00000KT", "description": "Vent calme" },
        { "text": "KT", "description": "Noeuds" },
        { "text": "MPS", "description": "Mètres par seconde" }
      ],
      "cavok": [
        { "text": "CAVOK", "description": "Plafond et visibilité OK" },
        { "text": "9999", "description": "10km ou plus" },
        { "text": "3000", "description": "Visibilité 3000m" }
      ],
      "cloud": [
        { "text": "NSC", "description": "Pas de nuages significatifs" },
        { "text": "FEW", "description": "Quelques nuages (1-2 octas)" },
        { "text": "SCT", "description": "Épars (3-4 octas)" },
        { "text": "BKN", "description": "Fragmenté (5-7 octas)" },
        { "text": "OVC", "description": "Couvert (8 octas)" },
        { "text": "CB", "description": "Cumulonimbus" },
        { "text": "TCU", "description": "Cumulus bourgeonnant" }
      ],
      "weather": [
        {
          "text": "-RA",
          "description": "Pluie faible"
        },
        {
          "text": "RA",
          "description": "Pluie modérée"
        },
        {
          "text": "+RA",
          "description": "Pluie forte"
        },
        {
          "text": "-DZ",
          "description": "Bruine faible"
        },
        {
          "text": "DZ",
          "description": "Bruine modérée"
        },
        {
          "text": "-SN",
          "description": "Neige faible"
        },
        {
          "text": "SN",
          "description": "Neige modérée"
        },
        {
          "text": "+SN",
          "description": "Neige forte"
        },
        {
          "text": "-SHRA",
          "description": "Averses de pluie faibles"
        },
        {
          "text": "SHRA",
          "description": "Averses de pluie"
        },
        {
          "text": "+SHRA",
          "description": "Averses de pluie fortes"
        },
        {
          "text": "-SHSN",
          "description": "Averses de neige faibles"
        },
        {
          "text": "SHSN",
          "description": "Averses de neige"
        },
        {
          "text": "TS",
          "description": "Orage"
        },
        {
          "text": "TSRA",
          "description": "Orage avec pluie"
        },
        {
          "text": "+TSRA",
          "description": "Orage fort avec pluie"
        },
        {
          "text": "TSSN",
          "description": "Orage avec neige"
        },
        {
          "text": "TSGR",
          "description": "Orage avec grêle"
        },
        {
          "text": "BR",
          "description": "Brume (vis 1000-5000m)"
        },
        {
          "text": "FG",
          "description": "Brouillard (vis <1000m)"
        },
        {
          "text": "BCFG",
          "description": "Bancs de brouillard"
        },
        {
          "text": "PRFG",
          "description": "Brouillard partiel"
        },
        {
          "text": "MIFG",
          "description": "Brouillard mince"
        },
        {
          "text": "FZFG",
          "description": "Brouillard givrant"
        },
        {
          "text": "HZ",
          "description": "Brume sèche"
        },
        {
          "text": "FU",
          "description": "Fumée"
        },
        {
          "text": "VA",
          "description": "Cendres volcaniques"
        },
        {
          "text": "DU",
          "description": "Poussière étendue"
        },
        {
          "text": "SA",
          "description": "Sable"
        },
        {
          "text": "-FZRA",
          "description": "Pluie verglaçante faible"
        },
        {
          "text": "FZRA",
          "description": "Pluie verglaçante"
        },
        {
          "text": "+FZRA",
          "description": "Pluie verglaçante forte"
        },
        {
          "text": "-FZDZ",
          "description": "Bruine verglaçante faible"
        },
        {
          "text": "FZDZ",
          "description": "Bruine verglaçante"
        },
        {
          "text": "BLSN",
          "description": "Neige soufflée"
        },
        {
          "text": "BLDU",
          "description": "Poussière soufflée"
        },
        {
          "text": "BLSA",
          "description": "Sable soufflé"
        },
        {
          "text": "SS",
          "description": "Tempête de sable"
        },
        {
          "text": "DS",
          "description": "Tempête de poussière"
        },
        {
          "text": "SQ",
          "description": "Grains"
        },
        {
          "text": "FC",
          "description": "Trombe"
        },
        {
          "type": "category",
          "text": "Temps prévu",
          "description": "Phénomènes météorologiques (optionnel)",
          "children": [
            {
              "text": "-RA",
              "description": "Pluie faible"
            },
            {
              "text": "RA",
              "description": "Pluie modérée"
            },
            {
              "text": "+RA",
              "description": "Pluie forte"
            },
            {
              "text": "-DZ",
              "description": "Bruine faible"
            },
            {
              "text": "DZ",
              "description": "Bruine modérée"
            },
            {
              "text": "-SN",
              "description": "Neige faible"
            },
            {
              "text": "SN",
              "description": "Neige modérée"
            },
            {
              "text": "+SN",
              "description": "Neige forte"
            },
            {
              "text": "-SHRA",
              "description": "Averses de pluie faibles"
            },
            {
              "text": "SHRA",
              "description": "Averses de pluie"
            },
            {
              "text": "+SHRA",
              "description": "Averses de pluie fortes"
            },
            {
              "text": "-SHSN",
              "description": "Averses de neige faibles"
            },
            {
              "text": "SHSN",
              "description": "Averses de neige"
            },
            {
              "text": "TS",
              "description": "Orage"
            },
            {
              "text": "TSRA",
              "description": "Orage avec pluie"
            },
            {
              "text": "+TSRA",
              "description": "Orage fort avec pluie"
            },
            {
              "text": "TSSN",
              "description": "Orage avec neige"
            },
            {
              "text": "TSGR",
              "description": "Orage avec grêle"
            },
            {
              "text": "BR",
              "description": "Brume (vis 1000-5000m)"
            },
            {
              "text": "FG",
              "description": "Brouillard (vis <1000m)"
            },
            {
              "text": "BCFG",
              "description": "Bancs de brouillard"
            },
            {
              "text": "PRFG",
              "description": "Brouillard partiel"
            },
            {
              "text": "MIFG",
              "description": "Brouillard mince"
            },
            {
              "text": "FZFG",
              "description": "Brouillard givrant"
            },
            {
              "text": "HZ",
              "description": "Brume sèche"
            },
            {
              "text": "FU",
              "description": "Fumée"
            },
            {
              "text": "VA",
              "description": "Cendres volcaniques"
            },
            {
              "text": "DU",
              "description": "Poussière étendue"
            },
            {
              "text": "SA",
              "description": "Sable"
            },
            {
              "text": "-FZRA",
              "description": "Pluie verglaçante faible"
            },
            {
              "text": "FZRA",
              "description": "Pluie verglaçante"
            },
            {
              "text": "+FZRA",
              "description": "Pluie verglaçante forte"
            },
            {
              "text": "-FZDZ",
              "description": "Bruine verglaçante faible"
            },
            {
              "text": "FZDZ",
              "description": "Bruine verglaçante"
            },
            {
              "text": "BLSN",
              "description": "Neige soufflée"
            },
            {
              "text": "BLDU",
              "description": "Poussière soufflée"
            },
            {
              "text": "BLSA",
              "description": "Sable soufflé"
            },
            {
              "text": "SS",
              "description": "Tempête de sable"
            },
            {
              "text": "DS",
              "description": "Tempête de poussière"
            },
            {
              "text": "SQ",
              "description": "Grains"
            },
            {
              "text": "FC",
              "description": "Trombe"
            }
          ]
        },
        {
          "text": "NSW",
          "description": "Pas de temps significatif"
        },
        {
          "type": "category",
          "text": "Changement de temps",
          "description": "Phénomènes météorologiques",
          "children": [
            {
              "text": "-RA",
              "description": "Pluie faible"
            },
            {
              "text": "RA",
              "description": "Pluie modérée"
            },
            {
              "text": "+RA",
              "description": "Pluie forte"
            },
            {
              "text": "-SHRA",
              "description": "Averses de pluie faibles"
            },
            {
              "text": "SHRA",
              "description": "Averses de pluie"
            },
            {
              "text": "+SHRA",
              "description": "Averses de pluie fortes"
            },
            {
              "text": "TSRA",
              "description": "Orage avec pluie"
            },
            {
              "text": "+TSRA",
              "description": "Orage fort avec pluie"
            },
            {
              "text": "-SN",
              "description": "Neige faible"
            },
            {
              "text": "SN",
              "description": "Neige modérée"
            },
            {
              "text": "+SN",
              "description": "Neige forte"
            },
            {
              "text": "FG",
              "description": "Brouillard (vis <1000m)"
            },
            {
              "text": "BCFG",
              "description": "Bancs de brouillard"
            },
            {
              "text": "BR",
              "description": "Brume (vis 1000-5000m)"
            },
            {
              "text": "HZ",
              "description": "Brume sèche"
            }
          ]
        }
      ],
      "temperatureMax": [
        {
          "text": "TX25/0612Z",
          "description": "Température maximale"
        },
        {
          "text": "TN18/0700Z",
          "description": "Température minimale"
        }
      ],
      "prob": [
        {
          "text": "BECMG",
          "description": "Devenant"
        },
        {
          "text": "TEMPO",
          "description": "Fluctuations temporaires"
        },
        {
          "text": "PROB30",
          "description": "Probabilité 30%"
        },
        {
          "text": "PROB40",
          "description": "Probabilité 40%"
        },
        {
          "text": "FM061200",
          "description": "À partir de (nouvelle période)"
        }
      ]
    },
    "after": {
      "identifier": [
        "identifier",
        "icao"
      ],
      "amendment": [
        "icao"
      ],
      "correction": [
        "icao"
      ],
      "icao": [
        "issueTime"
      ],
      "issueTime": [
        "identifier",
        "taf_short",
        "taf_long"
      ],
      "validityPeriod": [
        "identifier",
        "wind"
      ],
      "wind": [
        "cavok"
      ],
      "visibility": [
        "cloud",
        "weather"
      ],
      "weather": [
        "cloud"
      ],
      "cloud": [
        "cloud",
        "temperatureMax",
        "prob"
      ],
      "nsc": [
        "temperatureMax",
        "prob"
      ],
      "verticalVisibility": [
        "temperatureMax",
        "prob"
      ],
      "cavok": [
        "temperatureMax",
        "prob"
      ],
      "temperatureMax": [
        "temperatureMax",
        "prob"
      ],
      "temperatureMin": [
        "prob"
      ],
      "prob": [
        "prob",
        "issueTime"
      ],
      "tempo": [
        "issueTime"
      ],
      "becmg": [
        "issueTime"
      ],
      "fm": [
        "wind"
      ],
      "changeTime": [
        "wind",
        "cavok",
        "weather",
        "cloud"
      ],
      "nsw": [
        "cloud",
        "prob"
      ]
    }
  },
  "codeTable4678": {
    "intensity": {
      "-": "Faible",
      "": "Modéré",
      "+": "Fort"
    },
    "proximity": {
      "VC": "Au voisinage (8-16 km)"
    },
    "descriptor": {
      "MI": "Mince",
      "PR": "Partiel",
      "BC": "Bancs",
      "DR": "Chasse basse",
      "BL": "Chasse élevée",
      "SH": "Averses",
      "TS": "Orage",
      "FZ": "Se congelant"
    },
    "precipitation": {
      "DZ": "Bruine",
      "RA": "Pluie",
      "SN": "Neige",
      "SG": "Neige en grains",
      "IC": "Cristaux de glace",
      "PL": "Granules de glace",
      "GR": "Grêle (>=5mm)",
      "GS": "Grésil (<5mm)",
      "UP": "Précipitation inconnue"
    },
    "obscuration": {
      "BR": "Brume (vis 1000-5000m)",
      "FG": "Brouillard (vis <1000m)",
      "FU": "Fumée",
      "VA": "Cendres volcaniques",
      "DU": "Poussière étendue",
      "SA": "Sable",
      "HZ": "Brume sèche",
      "PY": "Embruns"
    },
    "other": {
      "PO": "Tourbillons de poussière/sable",
      "SQ": "Grain",
      "FC": "Trombe (tornade/trombe marine)",
      "SS": "Tempête de sable",
      "DS": "Tempête de poussière"
    }
  },
  "examples": [
    "TAF LFPG 160500Z 1606/1712 24008KT 9999 FEW040",
    "TAF AMD LFPG 160800Z 1609/1712 27015KT 9999 SCT030 BECMG 1612/1614 BKN020",
    "TAF LFPG 160500Z 1606/1712 24008KT 9999 FEW040 TEMPO 1612/1618 4000 TSRA BKN025CB",
    "TAF LFPG 160500Z 1606/1712 24008KT 9999 SCT040 PROB30 1618/1624 2000 +TSRA",
    "TAF LFPG 160500Z 1606/1712 24008KT 9999 SCT040 PROB40 TEMPO 1612/1620 3000 SHRA BKN015",
    "TAF LFBO 160600Z 1606/1706 18012KT CAVOK FM161200 22015G25KT 9999 SCT040",
    "TAF LFPG 160500Z 1606/1712 VRB02KT 0400 FG VV002 BECMG 1608/1610 4000 BR BKN010",
    "TAF LFPG 160500Z 1606/1712 27020G35KT 8000 -SHRA BKN025 TEMPO 1610/1615 4000 +SHRA BKN015CB",
    "TAF LFPG 160500Z NIL",
    "TAF LFPG 160500Z 1606/1712 CNL"
  ]
}
