Different implementations of glyph substitution rules

Variable fonts

In variable fonts, the substitution happens at runtime: there are no changes in the font, only in the sequence of glyphnames that is rendered. The partial ‘tracks’ are combined into one single axis using conditional GSUB and GPOS.

UFO instances

When making instances as UFOs using MutatorMath or Superpolator, however, it is necessary to actually swap the glyphs in the fonts – and also update all references to the swapped glyphs in components and kerning data.