class_docstr: The ``Feat`` table is used exclusively by the Graphite shaping engine
  to store features and possible settings specified in GDL. Graphite features
  determine what rules are applied to transform a glyph stream.
  
  Not to be confused with ``feat``, or the OpenType Layout tables
  ``GSUB``/``GPOS``.
class_docstr_tok: ["The","``","Feat","``","table","is","used","exclusively","by","the","Graphite","shaping","engine","to","store","features","and","possible","settings","specified","in","GDL",".","Graphite","features","determine","what","rules","are","applied","to","transform","a","glyph","stream",".","Not","to","be","confused","with","``","feat","``",",","or","the","OpenType","Layout","tables","``","GSUB","``","\/","``","GPOS","``","."]
code: def toXML(self, writer, ttFont):
      writer.simpletag("version", version=self.version)
      writer.newline()
      for f, v in sorted(
          self.features.items(), key=lambda x: x[1].index
      ):
          writer.begintag(
              "feature",
              fid=f,
              label=v.label,
              flags=v.flags,
              default=(v.default if v.default else 0),
          )
          writer.newline()
          for s, l in sorted(v.settings.items()):
              writer.simpletag("setting", value=s, label=l)
              writer.newline()
          writer.endtag("feature")
          writer.newline()
  
file_path: catboost/contrib/python/fonttools/fontTools/ttLib/tables/F__e_a_t.py
imports: from fontTools.misc import sstruct
  from fontTools.misc.fixedTools import floatToFixedToStr
  from fontTools.misc.textTools import safeEval
  from .None import DefaultTable
  from .None import grUtils
  import struct
label_desc: Use image node_id 4 for calling the table_F__e_a_t obj's underlying member method code with example usage: obj.toXML(writer, ttFont) without return types