def resolve_name_obj(name_tree_kids):
    """Resolve 'Names' objects recursively.

    If key 'Kids' exists in 'Names', the name destination is nested in a hierarchical structure. In this case, this
    recursion is used to resolve all the 'Kids'

    :param name_tree_kids: Name tree hierarchy containing kid needed to be solved
    :return: Resolved name tree list
    """
    temp_list = []
    for kid in name_tree_kids:
        if 'Kids' in kid and kid['Kids']:
            temp_list.extend([kid_kid.resolve() for kid_kid in kid['Kids']])
        elif 'Names' in kid:
            return name_tree_kids

    return resolve_name_obj(temp_list)