This is a UX issue: the user should not care about how we index rows.
class EducationItem(BaseModel):
index: int
year: Optional[List[str]]
university: Optional[List[str]]
should become
class EducationItem(BaseModel):
year: Optional[List[str]]
university: Optional[List[str]]
and the code should modify the model.