I smell the smell of an API being designed without a problem to solve. How about starting with a specific problem and designing the bare minimum of classes to solve it? Like:
Need to do 2D games in Java
So I need entities that can wiz around in some game loop
And they need to interact when they hit each other
And each entity might be represented by one or more independent animations
So we’ve got entities controlling a number of sprites, and each sprite can be controlled by some animation
It would be nice if animations could feed back to entities so that graphics can affect entity state, and then we could simply make animations take care of themselves
It would be nice if sprites could be used for absolutely all rendering such as text and HUDs, so we need to be able to layer sprites
This means we can draw the entire screen with one call which renders all the sprites
Cas