SimConnect_AddToFacilityDefinition for Final and Missed Approach Legs

When testing out the new SimConnect nav data API, I am unable to retrieve
final or missed approach legs… approach transitions with APPROACH_LEGs work
just fine. All calls relating to the FINAL_APPROACH_LEG, APPROACH, and AIRPORT
generate an exception after OPEN FINAL_APPROACH_LEG or
OPEN_MISSED_APPROACH_LEG. Basically what I am doing is opening AIRPORT, adding
a few fields, opening APPROACH, adding a few fields, opening
FINAL_APPROACH_LEG, adding a few fields, closing FINAL_APPROACH_LEG, closing
APPROACH, closing AIRPORT. The rest of the data works fine, and the
SIMCONNECT_FACILITY_DATA_APPROACH_LEG events are received by my client, but
with bogus/no data. Is this the correct approach? The simconnect log, from
which you can see all the calls and results, is presented here:

> 457.16460 [323, 1]Open: Version=0x00000005  Name="Test SimConnect"
> 457.17257 [323, 2]AddToFacilityDefinition:DefineID=1000, FieldName="OPEN AIRPORT"
> 457.17300 [323, 3]AddToFacilityDefinition:DefineID=1000, FieldName="LATITUDE"
> 457.17404 [323, 4]AddToFacilityDefinition:DefineID=1000, FieldName="LONGITUDE"
> 457.17523 [323, 5]AddToFacilityDefinition:DefineID=1000, FieldName="ALTITUDE"
> 457.17654 [323, 6]AddToFacilityDefinition:DefineID=1000, FieldName="MAGVAR"
> 457.17745 [323, 7]AddToFacilityDefinition:DefineID=1000, FieldName="NAME"
> 457.17855 [323, 8]AddToFacilityDefinition:DefineID=1000, FieldName="TOWER_LATITUDE"
> 457.17888 [323, 9]AddToFacilityDefinition:DefineID=1000, FieldName="TOWER_LONGITUDE"
> 457.17920 [323, 10]AddToFacilityDefinition:DefineID=1000, FieldName="TOWER_ALTITUDE"
> 457.17952 [323, 11]AddToFacilityDefinition:DefineID=1000, FieldName="N_RUNWAYS"
> 457.17985 [323, 12]AddToFacilityDefinition:DefineID=1000, FieldName="N_FREQUENCIES"
> 457.18017 [323, 13]AddToFacilityDefinition:DefineID=1000, FieldName="N_HELIPADS"
> 457.18049 [323, 14]AddToFacilityDefinition:DefineID=1000, FieldName="N_APPROACHES"
> 457.18081 [323, 15]AddToFacilityDefinition:DefineID=1000, FieldName="N_DEPARTURES"
> 457.18117 [323, 16]AddToFacilityDefinition:DefineID=1000, FieldName="N_ARRIVALS"
> 457.18150 [323, 17]AddToFacilityDefinition:DefineID=1000, FieldName="N_TAXI_POINTS"
> 457.18197 [323, 18]AddToFacilityDefinition:DefineID=1000, FieldName="N_TAXI_PARKINGS"
> 457.18271 [323, 19]AddToFacilityDefinition:DefineID=1000, FieldName="N_TAXI_PATHS"
> 457.18363 [323, 20]AddToFacilityDefinition:DefineID=1000, FieldName="N_TAXI_NAMES"
> 457.18408 [323, 21]AddToFacilityDefinition:DefineID=1000, FieldName="N_JETWAYS"
> 457.18515 [323, 22]AddToFacilityDefinition:DefineID=1000, FieldName="OPEN RUNWAY"
> 457.18548 [323, 23]AddToFacilityDefinition:DefineID=1000, FieldName="LATITUDE"
> 457.18581 [323, 24]AddToFacilityDefinition:DefineID=1000, FieldName="LONGITUDE"
> 457.18612 [323, 25]AddToFacilityDefinition:DefineID=1000, FieldName="ALTITUDE"
> 457.18645 [323, 26]AddToFacilityDefinition:DefineID=1000, FieldName="HEADING"
> 457.18679 [323, 27]AddToFacilityDefinition:DefineID=1000, FieldName="LENGTH"
> 457.18713 [323, 28]AddToFacilityDefinition:DefineID=1000, FieldName="WIDTH"
> 457.18745 [323, 29]AddToFacilityDefinition:DefineID=1000, FieldName="PRIMARY_ILS_ICAO"
> 457.18776 [323, 30]AddToFacilityDefinition:DefineID=1000, FieldName="PRIMARY_ILS_REGION"
> 457.18808 [323, 31]AddToFacilityDefinition:DefineID=1000, FieldName="PRIMARY_NUMBER"
> 457.18839 [323, 32]AddToFacilityDefinition:DefineID=1000, FieldName="PRIMARY_DESIGNATOR"
> 457.18870 [323, 33]AddToFacilityDefinition:DefineID=1000, FieldName="SECONDARY_ILS_ICAO"
> 457.18905 [323, 34]AddToFacilityDefinition:DefineID=1000, FieldName="SECONDARY_ILS_REGION"
> 457.18937 [323, 35]AddToFacilityDefinition:DefineID=1000, FieldName="SECONDARY_NUMBER"
> 457.18969 [323, 36]AddToFacilityDefinition:DefineID=1000, FieldName="SECONDARY_DESIGNATOR"
> 457.19001 [323, 37]AddToFacilityDefinition:DefineID=1000, FieldName="CLOSE RUNWAY"
> 457.19032 [323, 38]AddToFacilityDefinition:DefineID=1000, FieldName="OPEN FREQUENCY"
> 457.19064 [323, 39]AddToFacilityDefinition:DefineID=1000, FieldName="TYPE"
> 457.19095 [323, 40]AddToFacilityDefinition:DefineID=1000, FieldName="FREQUENCY"
> 457.19127 [323, 41]AddToFacilityDefinition:DefineID=1000, FieldName="NAME"
> 457.19159 [323, 42]AddToFacilityDefinition:DefineID=1000, FieldName="CLOSE FREQUENCY"
> 457.19207 [323, 43]AddToFacilityDefinition:DefineID=1000, FieldName="OPEN APPROACH"
> 457.19270 [323, 44]AddToFacilityDefinition:DefineID=1000, FieldName="TYPE"
> 457.19308 [323, 45]AddToFacilityDefinition:DefineID=1000, FieldName="SUFFIX"
> 457.19341 [323, 46]AddToFacilityDefinition:DefineID=1000, FieldName="RUNWAY_NUMBER"
> 457.19394 [323, 47]AddToFacilityDefinition:DefineID=1000, FieldName="RUNWAY_DESIGNATOR"
> 457.19427 [323, 48]AddToFacilityDefinition:DefineID=1000, FieldName="FAF_ICAO"
> 457.19459 [323, 49]AddToFacilityDefinition:DefineID=1000, FieldName="FAF_REGION"
> 457.19493 [323, 50]AddToFacilityDefinition:DefineID=1000, FieldName="FAF_HEADING"
> 457.19525 [323, 51]AddToFacilityDefinition:DefineID=1000, FieldName="FAF_ALTITUDE"
> 457.19556 [323, 52]AddToFacilityDefinition:DefineID=1000, FieldName="MISSED_ALTITUDE"
> 457.19588 [323, 53]AddToFacilityDefinition:DefineID=1000, FieldName="HAS_LNAV"
> 457.19620 [323, 54]AddToFacilityDefinition:DefineID=1000, FieldName="HAS_LNAVVNAV"
> 457.19651 [323, 55]AddToFacilityDefinition:DefineID=1000, FieldName="HAS_LP"
> 457.19683 [323, 56]AddToFacilityDefinition:DefineID=1000, FieldName="HAS_LPV"
> 457.19718 [323, 57]AddToFacilityDefinition:DefineID=1000, FieldName="N_TRANSITIONS"
> 457.19751 [323, 58]AddToFacilityDefinition:DefineID=1000, FieldName="N_FINAL_APPROACH_LEGS"
> 457.19784 [323, 59]AddToFacilityDefinition:DefineID=1000, FieldName="N_MISSED_APPROACH_LEGS"
> 457.19816 [323, 60]AddToFacilityDefinition:DefineID=1000, FieldName="OPEN FINAL_APPROACH_LEG"
> 457.19848 [323, 61]AddToFacilityDefinition:DefineID=1000, FieldName="TYPE"
< 457.19880 [323] >>>>>  EXCEPTION=20, SendID=61, Index=2  <<<<<
> 457.19888 [323, 62]AddToFacilityDefinition:DefineID=1000, FieldName="FIX_ICAO"
< 457.20046 [323] >>>>>  EXCEPTION=20, SendID=62, Index=2  <<<<<
> 457.20052 [323, 63]AddToFacilityDefinition:DefineID=1000, FieldName="FIX_REGION"
< 457.20110 [323] >>>>>  EXCEPTION=20, SendID=63, Index=2  <<<<<
> 457.20115 [323, 64]AddToFacilityDefinition:DefineID=1000, FieldName="FLY_OVER"
< 457.20172 [323] >>>>>  EXCEPTION=20, SendID=64, Index=2  <<<<<
> 457.20178 [323, 65]AddToFacilityDefinition:DefineID=1000, FieldName="DISTANCE_MINUTE"
< 457.20243 [323] >>>>>  EXCEPTION=20, SendID=65, Index=2  <<<<<
> 457.20248 [323, 66]AddToFacilityDefinition:DefineID=1000, FieldName="TRUE_DEGREE"
< 457.20307 [323] >>>>>  EXCEPTION=20, SendID=66, Index=2  <<<<<
> 457.20312 [323, 67]AddToFacilityDefinition:DefineID=1000, FieldName="TURN_DIRECTION"
< 457.20370 [323] >>>>>  EXCEPTION=20, SendID=67, Index=2  <<<<<
> 457.20376 [323, 68]AddToFacilityDefinition:DefineID=1000, FieldName="ORIGIN_ICAO"
< 457.20433 [323] >>>>>  EXCEPTION=20, SendID=68, Index=2  <<<<<
> 457.20439 [323, 69]AddToFacilityDefinition:DefineID=1000, FieldName="ORIGIN_REGION"
< 457.20500 [323] >>>>>  EXCEPTION=20, SendID=69, Index=2  <<<<<
> 457.20505 [323, 70]AddToFacilityDefinition:DefineID=1000, FieldName="THETA"
< 457.20566 [323] >>>>>  EXCEPTION=20, SendID=70, Index=2  <<<<<
> 457.20572 [323, 71]AddToFacilityDefinition:DefineID=1000, FieldName="RHO"
< 457.20631 [323] >>>>>  EXCEPTION=20, SendID=71, Index=2  <<<<<
> 457.20637 [323, 72]AddToFacilityDefinition:DefineID=1000, FieldName="COURSE"
< 457.20711 [323] >>>>>  EXCEPTION=20, SendID=72, Index=2  <<<<<
> 457.20717 [323, 73]AddToFacilityDefinition:DefineID=1000, FieldName="ROUTE_DISTANCE"
< 457.20776 [323] >>>>>  EXCEPTION=20, SendID=73, Index=2  <<<<<
> 457.20781 [323, 74]AddToFacilityDefinition:DefineID=1000, FieldName="APPROACH_ALT_DESC"
< 457.20838 [323] >>>>>  EXCEPTION=20, SendID=74, Index=2  <<<<<
> 457.20844 [323, 75]AddToFacilityDefinition:DefineID=1000, FieldName="ALTITUDE1"
< 457.20910 [323] >>>>>  EXCEPTION=20, SendID=75, Index=2  <<<<<
> 457.20915 [323, 76]AddToFacilityDefinition:DefineID=1000, FieldName="ALTITUDE2"
< 457.20977 [323] >>>>>  EXCEPTION=20, SendID=76, Index=2  <<<<<
> 457.20983 [323, 77]AddToFacilityDefinition:DefineID=1000, FieldName="SPEED_LIMIT"
< 457.21063 [323] >>>>>  EXCEPTION=20, SendID=77, Index=2  <<<<<
> 457.21070 [323, 78]AddToFacilityDefinition:DefineID=1000, FieldName="VERTICAL_ANGLE"
< 457.21126 [323] >>>>>  EXCEPTION=20, SendID=78, Index=2  <<<<<
> 457.21132 [323, 79]AddToFacilityDefinition:DefineID=1000, FieldName="ARC_CENTER_FIX_ICAO"
< 457.21193 [323] >>>>>  EXCEPTION=20, SendID=79, Index=2  <<<<<
> 457.21199 [323, 80]AddToFacilityDefinition:DefineID=1000, FieldName="ARC_CENTER_FIX_REGION"
< 457.21258 [323] >>>>>  EXCEPTION=20, SendID=80, Index=2  <<<<<
> 457.21264 [323, 81]AddToFacilityDefinition:DefineID=1000, FieldName="IS_IAF"
< 457.21321 [323] >>>>>  EXCEPTION=20, SendID=81, Index=2  <<<<<
> 457.21326 [323, 82]AddToFacilityDefinition:DefineID=1000, FieldName="IS_IF"
< 457.21385 [323] >>>>>  EXCEPTION=20, SendID=82, Index=2  <<<<<
> 457.21391 [323, 83]AddToFacilityDefinition:DefineID=1000, FieldName="IS_FAF"
< 457.21451 [323] >>>>>  EXCEPTION=20, SendID=83, Index=2  <<<<<
> 457.21558 [323, 84]AddToFacilityDefinition:DefineID=1000, FieldName="IS_MAP"
< 457.21621 [323] >>>>>  EXCEPTION=20, SendID=84, Index=2  <<<<<
> 457.21627 [323, 85]AddToFacilityDefinition:DefineID=1000, FieldName="CLOSE FINAL_APPROACH_LEG"
< 457.21695 [323] >>>>>  EXCEPTION=20, SendID=85, Index=2  <<<<<
> 457.21701 [323, 86]AddToFacilityDefinition:DefineID=1000, FieldName="CLOSE APPROACH"
< 457.21761 [323] >>>>>  EXCEPTION=20, SendID=86, Index=2  <<<<<
> 457.21767 [323, 87]AddToFacilityDefinition:DefineID=1000, FieldName="CLOSE AIRPORT"
< 457.21825 [323] >>>>>  EXCEPTION=20, SendID=87, Index=2  <<<<<

The ENROUTE_TRANSITION documentation appears to be incorrect (copy-pasted from
RUNWAY_TRANSITION).

Hi, Indeed, there is an internal key issue with FINAL_APPROACH_LEG and
MISSED_APPROACH_LEG. That will be fixed soon. Best Regards Maxime / Asobo

Confirm this is fixed with the latest update (1.27.18.0). The one thing I note
is that one needs to subtract 360 from the VERTICAL ANGLE to get the actual
GPA… e.g. the API will return 357 for a GPA of -3.0°. This could be noted in
the docs if it is intended (and even if it is not if there are no more chances
to change it before release). Thanks for your work on this. Do you think I
should post issues and suggestions for the JS navdata API on this platform? I
have previously submitted a list of things through other channels in mid 2021,
but not much luck so far.