stop changing cardtype on creation+solution
I (efm) did some work on this and got it mostly working. I think the only tests that are still breaking are breaking because they use an api that we don't want to support.
The way I've got it working now is that you still call class_for but you tell it whether you're giving it a cardname or a codename, and it only looks up that one -- no falling back on a second option. It might be cleaner to have two methods: class_for_codename and class_for_cardname. In fact, I can imagine better names still.
A level further out, I have it that if you call #new via Card::Type, it expects Type to be a codename. but if you do :type=>Type, it's expecting a cardname. There were some cases where we were doing it differently in code, so I made an option to call :typecode=>Type as a codename, but I'm not completely sold on that api yet either.
So we may still want to tweak the api, but it looks to me like the separation is effectively achieved!
~~~~~~~~~~~
any really clean answer will involve never mixing the two names. This probably means that changing the method without changing the pattern of method calls will break stuff. If we have a cardname and not a cardname, we should know that and lookup the classname before proceeding.
It may be wise to wait for refactoring that would put the classname (potentially renamed to "codename") in the cards table.
Note: we fixed the specific Support Ticket issue by changing the name of "Report" to "Team Report".