A multiple substitution replaces one glyph by a number of new glyphs. Use this, for example, to decompose ligatures.

lookup decompose {
    sub ffi -> f f i;
    sub fi -> f i;

At the left side of -> you should supply one glyph, which is not a list. At the right side a sequence of glyphs should appear. The right-hand side sequences may have variable length, as long as they are at least two glyphs long.