def get_group_definitions_list(mmtf_dict):
    """Gets a list of group definitions from the .mmtf dict and packs its atom
    attributes into atoms dicts.

    :param dict mmtf_dict: the .mmtf dictionary to read.
    :rtype: ``list``"""


    group_definitions = []
    for group in mmtf_dict["groupList"]:
        atoms = [{
         "name": name, "element": element.upper(), "charge": charge
        } for name, element, charge in zip(
         group["atomNameList"], group["elementList"], group["formalChargeList"],
        )]
        group_definitions.append({
         "name": group["groupName"], "atoms": atoms
        })
    return group_definitions