Also it’s doable. Perhaps for the Z axis, use an entirely different color range that is shown differently looking at the backside of the spell but not from the front. Or a XY/Z toggle button. Or some other indication to separate the Z axis from X and Y such as noticeable levels of brightness & darkness.
Similarly, a spell should “fail” if a different spell would have taken priority over it. For example: With fireball 2 selected for training a player manages to instead cast affliction 1, even though the drawing would have been an eligible as fireball 2 if affliction 1 did not exist, the cast should return as an affliction 1 to indicate to the player that they did not draw a valid fireball 2. However the colorized tension that gets displayed is only compared against fireball, ignoring all other spells. A cast might look nearly perfect for a fireball 2, but is a more-perfect affliction 1. Players can work the rest on their own.