I made the first step of procedurally generated spells.
There is no longer a list of learned spells. Instead of that, the player drags spell scrolls directly into the quick bar. Each spell scroll is now an individual item. The attributes of the action it performs are now stored in the database.
Now I just need the code to generate spell scrolls with randomized action attributes. This is going to be interesting...
The client still needs work. Dragging scrolls into the quickbar and using them is technically functional, but the spells in the quick bar don't have icons yet.