This is called by ActiveRecord::Base#initialize (and thus by super in Card#initialize).  So we could easily send it an argument from initialize if we wanted a split.

I think the worst thing here is that it's calling #reset_patterns too liberally.  And it seems like the type handling should be mindful of everything that happens in #get_type_id, though I'm not yet clear on exactly how that should look.