From what I understand, the array in vertex array (object) refers to the array of different attributes (inputs/uniform) that are entries for vertes data into the vertex shader. So if my vertex shader looked like this:

Code :
#version 430 core
layout (location=0) in vec4 vertex_position;
layout (location=2) in vec3 vertex_color;
out vec3 pass_through_color;
void main()
     gl_Position = vertex_position;
     pass_through_color = vertex_color;

, then the "array" of the VAO is defined by the list of inputs to the shader, namely vertex_position and vertex_color, and their locations in this array can be specified by the location specifier of the layout descriptor (locations 0 and 2 respectively).

And I imagine for a particular implementation of the GL, MAX_VERTEX_ATTRIBS defines the maximum number of distinct input parameters that a vertex shader can have.

Is this understanding correct? Thanks for your help