I'm trying to code my opentype features in the most efficient way, but not sure about what order they need to go in.
Here's what I'm trying to achieve using dlig and salt.

The first line is what appears by default, using just liga. The f has a slightly shorter hood.
Second, the only difference is the descender, this should be a stylistic set.
Third, using dlig, the crossbar or hood joins onto the next glyph.
Fourth, if we want descending and joining ligatures, we can apply the stylistic set and the dlig feature.
Codewise:
liga
#something like
sub f'f' by ff; #where ff is a tweaked composite of two fs.
#etc for other ligs
ss01
#sub f' [b f h i j k l t] by f.alt; #where f.alt is the descending version.
#plus some other substition to fix the double f ligs.
dlig
sub f' f' by f_f; #where f_f is the connected variant
#etc for other ligs
Now where do I stick the code that applies when both ss01 and dlig are applied? In both features? Is my code really messy?
