I'm trying to encourage the use of "template" to describe class and trait definitions—distinct from the types those definitions imply. I think it had bad connotations in C++, but the word is perfect for describing what it represents: every gap must be filled in on instantiation.
I'm not so fond of "blueprint"... more than anything, I want to get across the idea that there are gaps which need to be filled in to construct an instance: constructor parameters, type parameters, type members, abstract methods, etc.