Couldn't find a way to get the Move inheritance hierarchy going the way I wanted it, since abstract case classes are frowned upon, since case classes should not be extended. Gave each Move a moveType in (Physical, Special, Status) instead, and as an enum, I can patternmatch on it