Animation Blueprint

In the system there is base anim instance class which is used as parent for all animation blueprints used by characters.
AnimInstance_BaseCharacter is not dependent on any skeleton so it can be used by any character such as humanoid or monsters etc.

This blueprint is only responsible for gathering all data about owning character such as velocity, direction, combat style, weapon type, character state etc.

Based on this blueprint as a parent class, animation blueprints for specific skeletons can be created without duplicating logic of gathering all that data.
For example it is used by animation blueprint used by Player ABP_CombatCharacter.
Where it only implemens Anim Graph, but doesn't need to gather any character data in Events graph.

And it is also used by monster character which has completly different skeleton than player.