variantSigns function
Resolves the list of FSW sign variants for a character entry.
An entry is either a list of signs, or a map with a default list and a
variations map; the first requested variants key that exists wins,
otherwise the default is returned.
Implementation
List<String> variantSigns(dynamic charVariants, {List<String>? variants}) {
if (charVariants is Map) {
final variations = charVariants['variations'] as Map;
for (final variation in variants ?? const <String>[]) {
if (variations.containsKey(variation)) {
return List<String>.from(variations[variation] as List);
}
}
return List<String>.from(charVariants['default'] as List);
}
return List<String>.from(charVariants as List);
}