What is a SkeletonBlueprint?

I’ve been digging the BlueprintCompilationManager.cpp for a while. The term SkeletonBlueprint is very commonly used. As far as I understood, it is kind of a class that holds the functions, members and other kind of things that holds of that blueprint but I am not sure even a little bit. So what is this excatly? Why Unreal needs something like that? What it is used for?