def _build_object_type(var, property_path=None):
if not property_path:<EOL><INDENT>property_path = []<EOL><DEDENT>schema = {"<STR_LIT:type>": "<STR_LIT:object>"}<EOL>if is_builtin_type(var):<EOL><INDENT>return schema<EOL><DEDENT>entry = var.metadata[CONFIG_KEY]<EOL>if isinstance(entry.min, int):<EOL><INDENT>schema["<STR_LIT>"] = entry.min<EOL><DEDENT>if isinstance(entry.max, int):<EOL><INDENT>schema["<STR_LIT>"] = entry.max<EOL><DEDENT>if is_typing_type(var.type) and len(var.type.__args__) == <NUM_LIT:2>:<EOL><INDENT>(key_type, value_type) = var.type.__args__<EOL>key_pattern = "<STR_LIT>"<EOL>if is_regex_type(key_type):<EOL><INDENT>key_pattern = key_type.__supertype__.pattern<EOL><DEDENT>elif not is_string_type(key_type):<EOL><INDENT>raise ValueError(<EOL>f"<STR_LIT>"<EOL>f"<STR_LIT>"<EOL>)<EOL><DEDENT>schema["<STR_LIT>"] = {<EOL>key_pattern: _build(value_type, property_path=property_path)<EOL>}<EOL><DEDENT>return schema<EOL>
Builds schema definitions for object type values.

    :param var: The object 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]