def _make_notification(
    category, title, body=None, content_available=False, mutable_content=False,
    additional=None
):
    """Summary

    For full documentation of remote notifications, see:
    https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/generating_a_remote_notification

    Parameters
    ----------
    category : str
        APNs category
    title : str
        Notification title
    body : str, optional
        Notification body
    content_available : bool, optional
        If True, client will perform background app refresh
    mutable_content : bool, optional
        If True, client will pass notification to notification service app
        extension before delivery
    additional : dict, optional
        Additional, client-specific info

    Returns
    -------
    dict
        Description
    """  # noqa E501
    aps = {
        'category': category,
        'sound': 'bingbong.aiff'
    }

    # Alert
    if body:
        aps.update(alert={'title': title, 'body': body})
    else:
        aps.update(alert=title)

    # Mutable-Content
    if mutable_content:
        aps.update({'mutable-content': 1})

    # Content-Available
    if content_available:
        aps.update({'content-available': 1})

    apns_dict = {'aps': aps}

    # Client-specific info
    if additional:
        apns_dict.update(additional)

    return apns_dict