Reusable animation entry — matches CharacterViewerPanel::AnimEntry.
Per-frame context passed by the caller so the panel never touches globals.
std::function< void(WoWModel *, int)> applySkin
std::vector< SkinEntry > * skinEntries
std::vector< AnimEntry > * animEntries
int * selectedSecondaryAnim
std::function< WoWModel *()> getLoadedModel
std::set< int > creatureGeosetData