def get_suggested_type_names(
    schema: GraphQLSchema, type_: GraphQLOutputType, field_name: str
) -> List[str]:
    if is_abstract_type(type_):
        type_ = cast(GraphQLAbstractType, type_)
        suggested_object_types = []
        interface_usage_count: Dict[str, int] = defaultdict(int)
        for possible_type in schema.get_possible_types(type_):
            if field_name not in possible_type.fields:
                continue
            suggested_object_types.append(possible_type.name)
            for possible_interface in possible_type.interfaces:
                if field_name not in possible_interface.fields:
                    continue
                interface_usage_count[possible_interface.name] += 1
        suggested_interface_types = sorted(
            interface_usage_count, key=lambda k: -interface_usage_count[k]
        )
        return suggested_interface_types + suggested_object_types
    return []