sceneFontVariations function
The face's axes, at whatever a motion has them — the one thing a discrete FontWeight cannot do, which is why an axis is a number key of its own.
A tag a track moves but the node never set is included: the track is the whole of what it says, and leaving it out would animate nothing.
Implementation
List<FontVariation>? sceneFontVariations(TextNode t) {
var tags = <String>{
...t.axes.keys,
for (var k in t.fx.keys) ?sceneAxisTag(k.$2),
};
if (tags.isEmpty) return null;
return [
for (var tag in tags)
FontVariation(tag, (t.fxRendered('axes.$tag') as num).toDouble()),
];
}