def winphone(alert, title=None, _open_page=None, extras=None):
    """MPNS specific platform override payload.

    Must include exactly one of ``alert``, ``title``, ``_open_page``, or ``extras``.

    """
    if len(list(filter(None, (alert, _open_page, title)))) != 1:
        raise ValueError("MPNS payload must have one notification type.")
    payload = {}
    if alert is not None:
        payload['alert'] = alert
    if title is not None:
        payload['title'] = title
    if _open_page is not None:
        payload['_open_page'] = _open_page
    if extras is not None:
        payload['extras'] = extras
    return payload