The 'state' and 'mode' fields are used within the Thread library, those fields are not used at Application layer.
state: Used to track the current state of a neighbor (Idle, attached, commissioning, etc.)
mode: Used to identify neighbor type and capabilities. See typedef enum modeFlags_tag.
Normally the Application layer doesn't need the details regarding the neighbors for other purposed than statistics for example the “get neighbors” command.