Dynamic Fields Interpretation and FIT SDK for Go

Hi, I'm Mukti, currently I'm developing FIT SDK for Go (github.com/muktihari/fit) with hopes that it will help fitness communities in general and Go developers (or maybe Garmin) in particular since there is still no Official SDK for Go. In the process of developing, I encounter something that I would like to confirm with experts here in this forum.
The first thing that I encounter is how to interpret Dynamic Field, in docs (https://developer.garmin.com/fit/protocol) it says:
"Subfields must have one or more reference field and reference value combinations. When the reference field contains the reference value, the field shall be interpreted using the properties (name, scale, type etc.) of the subfield rather than the main field."
If the subfield substitutes the main field, I assume that not only the name, scale but also the unit should be the interpretation of the main field, right? 
However, when I try to convert a .fit into .csv using FitCSVTool.jar (from SDK Version 21.126), I got the following:
"Data,0,session,sport,"2",,sub_sport,"0",,total_strokes,0,cycles" (some text is omitted for clarity)
So, total_strokes is the interpretation of its main field total_cycles in session message since the sport is cycling, but why the unit is still cycles not strokes? The unit of total_strokes declared in Profile.xlsx file is strokes, isn't it? Please advise, thank you.