You were almost there, only at line 12 of the example script where you call new List you should not add the members as constructor arguments (as you are doing now between the round brackets), you should do it between curly braces.
new List<Spell>() {
new Spell("Defend", 2, new List<SpellEffect>(){ new SpellEffect(), new SpellEffect()},
new Spell("Attack", 3, new List<SpellEffect>(){ new SpellEffect(), new SpellEffect()},
};
I actually don’t recommend doing it this way however. It’s better to first make one list, and then adding the other lists using Add().