Description

Identifies which part of the FileDescriptorProto was defined at this location.

Each element is a field number or an index. They form a path from the root FileDescriptorProto to the place where the definition. For example, this path:

[ 4, 3, 2, 7, 1 ]

refers to:

file.message_type(3)  // 4, 3
    .field(7)         // 2, 7
    .name()           // 1

This is because FileDescriptorProto.message_type has field number 4:

repeated DescriptorProto message_type = 4;

and DescriptorProto.field has field number 2:

repeated FieldDescriptorProto field = 2;

and FieldDescriptorProto.name has field number 1:

optional string name = 1;

Thus, the above path gives the location of a field name. If we removed the last element:

[ 4, 3, 2, 7 ]

this path refers to the whole field declaration (from the beginning of the label to the terminating semicolon).