I was just making some pseudocode there; I meant #1 for SpellBook, and #2 for MasterSpellBook, though.
But when I say "open-ended lists of ability sets", I'm referring to the possibility of having more than one list. Think of young Rydia in FF4; she had a white, a black, and a summon list. If characters only have one list, that wouldn't be possible; if they all have 3, that's just too much. Clearly, it has to be open-ended, i.e. dynamic. And the question is how to design it to be dyanamic (so that it can handle 0, 1, 3, etc. separate lists of abilities).

And that was before I thought of the possibility of an ability that belongs to more than one list--but I think it would be best to have them always belong to exactly one list (and you can make a duplicate in another list if you just had to).