In our case, we have an AnimationComponent with multiple Animations and each Animation is a collection of Sprite. Then, for each specific kind of entity (for example for the super mario character) we have one or more Scripts
with the logic of which animation to use, for example, if the character starts to jump then we set the jumping animation, if the character is idle then we set the idle animation, etc.
Hope it could help as an idea, here is an old game
I made for a ludum dare following this approach, search in the core module.
On your blog you post a possible solution for scripting. Wouldn't it be a security hole to pass world and entity into scripts? Might be more secure to create a interface api for adding entities to the world in a way that the host application can control what components an entity has and puts less control in scripts.
I do agree that Artemis is better to use for rendering then logic for more complex games, which you would use scripts for, otherwise you get SYSTEM OVERLOADING
When I say System Overloading I mean so many systems doing so many things it creates a debugging nightmare when your sprites are doing funky stuff because they are being affected by one of the many systems you have running. This does not apply to everyone just some of us who prefer to be able to sleep at night.