O que exatamente é a palavra-chave FILE em C?

Eu comecei a aprender C como hobby e usei o FILE cegamente como uma declaração para ponteiros de arquivos por um bom tempo, e eu estou pensando. É uma palavra-chave ou um tipo de dados especial para o C manipular arquivos? Ele contém um fluxo para o arquivo dentro e outros dados? Por que é definido como um ponteiro?

Um exemplo para mostrar o que pretendo deixar um pouco mais claro:

FILE* fp; //<-- this
fp = fopen("datum.txt", "r");

while(!feof(fp)) {
   // etc.
}

questionAnswers(4)

yourAnswerToTheQuestion