A Ligature Glyph table (LigGlyph) contains the caret coordinates for a single ligature glyph.
        public static LigGlyph CreateFrom(BinaryReader reader, long beginAt)
        {
            reader.BaseStream.Seek(beginAt, SeekOrigin.Begin);
            //----------
            LigGlyph ligGlyph = new LigGlyph();
            ushort caretCount = reader.ReadUInt16();
            ligGlyph.caretValueOffsets = Utils.ReadInt16Array(reader, caretCount);

            return ligGlyph;
        }
 public static LigCaretList CreateFrom(BinaryReader reader, long beginAt)
 {
     reader.BaseStream.Seek(beginAt, SeekOrigin.Begin);
     //----
     LigCaretList ligcaretList = new LigCaretList();
     ushort ligGlyphCount = reader.ReadUInt16();
     short[] ligGlyphOffsets = Utils.ReadInt16Array(reader, ligGlyphCount);
     LigGlyph[] ligGlyphs = new LigGlyph[ligGlyphCount];
     for (int i = 0; i < ligGlyphCount; ++i)
     {
         ligGlyphs[i] = LigGlyph.CreateFrom(reader, beginAt + ligGlyphOffsets[i]);
     }
     ligcaretList.ligGlyphs = ligGlyphs;
     return ligcaretList;
 }