The ranked entities should be abstracted for flexibility. Users should be able to provide their own pydantic type with little friction.