I am attempting to decode a fit file generated in the watch app using Toybox.ActivityRecording by reference to the FIT file specification :"Flexible and Interoperable Data Transfer Protocol Rev 2.3"
The Protocol doesn't explain that the records are separated by cr/lf
Unable to decode my sample file.
Record 0, the file header.
The record details (with bytes represented by pairs of hexadecimal numbers) is
0e101e08cef006002e464954199040000000000703048c040486070486010284020284050284000100004068d1ea15f9ac37ffffffff0100890a
The protocol specifies the layout of the File Header as :

Analysis of the header size field (byte 0) is 14 (0x0e), but the actual record appears to be 58 bytes long.
Record 1
Message : 1, length: 126
ffff044100003100030214070002840101020100000000000000000000000000000000000000003205ff420000150007fd04860304860001000101000401021301021401020214f9ac3700000000000000ffff43000017001bfd048603048c0704860804860f048610048611200718048c1f04860202840402840502840a
I am unable to decode the header byte.
The first byte (0xff) doesn't appear to match the "Normal Header Bit Field Description"

or the Compressed Timestamp Header (unless the local message type is 3 and the time offset is 31 to fill the byte with 0xff) :

Am I reading an obsolete spec or misinterpreting this one?