glTF specification guarantees that the indices of builtin attributes are natural numbers; atoi can return a negative number, which is likely to cause problems for client code (for example, even if it attempts to range-check the texture coordinate index before writing it to internal mesh representation, index < 8 will not work because index can be negative).
(I think this is going to be the last validation PR for a few months; there are still some alignment issues visible under UBSAN left but they aren't super critical to fix)
glTF specification guarantees that the indices of builtin attributes are natural numbers; atoi can return a negative number, which is likely to cause problems for client code (for example, even if it attempts to range-check the texture coordinate index before writing it to internal mesh representation, index < 8 will not work because index can be negative).