Curiosity about "tagint"

I am curious about something: in lmptype.h, it states that "tagint" is
a typedef intended for "variables for atom IDs (tag)," whereas in atom.h,
the atom tags are defined as plain ints. The only thing that seems to
be defined as a tagint are the periodic images in which each atom appears.

My main question: is it safe to assume that atom->tag will be type int*,
or could it sometime in the near future become tagint* or similar?

Secondary question: if atom->tag is int, why is atom->natoms bigint?
The tags will be 1..natoms, unless I'm completely misunderstanding how the
tags are assigned.

Karl D. Hammond
University of Tennessee, Knoxville