Good points. Animframe must be an error. Likely I remembered incorrectly the key name and typed animframe instead of endframe at first, and then forgot to delete the wrong key. Sorry about that.
Wait is indeed to make sure the script isn't launched multiple times. And the entity description says wait is only valid with the always_on, so that's why it's checked. Might be redundant with the endframe, but who knows. Just like Jesterspaz, I'm not overly concerned, anymore, about pure ways but working ways.
Edit: There might be other ways than the wait to control multiple firings. One way could be a key to target an entity instead of the usescript key. Like usetarget, or something. Then that corresponding entity could set the wait. However, that wouldn't solve the issue with the animmap. Well, this was an elegant way, and seemed to work. Did you have some concerns regarding it?
Frozen by ICARUS