A Pattern Class is a certain kind of pattern. eg.
A Pattern Key is a string that is an intermediary index between patterns and cards. Within a pattern class, each key corresponds 1-1 with a pattern, and each card corresponds 1-1 with a key.
note: we need assure that no two pattern classes could generate the same key.
challenge: It would be (much) better not to have to know about pattern classes as a hook author or Pattern Card Wagneer. Thus we face the challenge of taking a pattern definition syntax (which could be a subset of WQL) and figuring out which pattern class it belongs to- or if none, to declare the pattern invalid.
pseudo code:
class TypePattern < PatternClass
def key_for(card)
"Type:#{card.type}"
end
end