def _build_array_type(var, property_path=None):
if not property_path:<EOL><INDENT>property_path = []<EOL><DEDENT>schema = {"<STR_LIT:type>": "<STR_LIT>", "<STR_LIT>": {"<STR_LIT>": f"<STR_LIT>"}}<EOL>if is_builtin_type(var):<EOL><INDENT>return schema<EOL><DEDENT>if is_config_var(var):<EOL><INDENT>schema.update(<EOL>_build_attribute_modifiers(<EOL>var,<EOL>{<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>"<STR_LIT>": "<STR_LIT>",<EOL>},<EOL>)<EOL>)<EOL>if is_typing_type(var.type) and len(var.type.__args__) > <NUM_LIT:0>:<EOL><INDENT>nested_type = var.type.__args__[<NUM_LIT:0>]<EOL>schema["<STR_LIT>"].update(<EOL>_build(nested_type, property_path=property_path + ["<STR_LIT>"])<EOL>)<EOL><DEDENT><DEDENT>elif is_typing_type(var):<EOL><INDENT>nested_type = var.__args__[<NUM_LIT:0>]<EOL>schema["<STR_LIT>"].update(<EOL>_build(nested_type, property_path=property_path + ["<STR_LIT>"])<EOL>)<EOL><DEDENT>return schema<EOL>
Builds schema definitions for array type values.

    :param var: The array type value
    :param List[str] property_path: The property path of the current type,
        defaults to None, optional
    :param property_path: [type], optional
    :return: The built schema definition
    :rtype: Dict[str, Any]