def METHOD_NAME(vk: str, obj: list):
    assert isinstance(obj, list), 'Pass a list!'
    arg = None
    if len(obj) == 3:
        action, position, arg = obj
    else:
        action, position = obj
    assert_vote_is_valid(vk, action, position, arg)
    if action == INTRODUCE_MOTION:
        introduce_motion(position, arg)
    else:
        assert S['current_motion'] != NO_MOTION, 'No motion proposed.'
        if now - S['motion_opened'] >= VOTING_PERIOD:
            reset()
        assert S['positions', vk] is None, 'VK already voted.'
        if position is True:
            S['yays'] += 1
            S['positions', vk] = position
        else:
            S['nays'] += 1
            S['positions', vk] = position
        if S['yays'] >= len(S['members']) // 2 + 1:
            pass_current_motion()
            reset()
        elif S['nays'] >= len(S['members']) // 2 + 1:
            reset()