Assimp flags every mesh-less scene as AI_SCENE_FLAGS_INCOMPLETE (FBXConverter), so pure animation FBX never reached clip parsing - the scene was discarded before ParseAnimations ran. Only treat null scene / missing root node as hard failure; log INCOMPLETE as a warning and continue. Final validity stays with ParsedModel::Valid().