### Summary

https://docs.ansible.com/ansible/latest/collections/ansible/builtin/mandatory_filter.html makes no mention of the `msg` argument that was introduced in 0e7e3c0ae89a70c386168827b0c9defb956bee7e

### Issue Type

Documentation Report

### Component Name

lib/ansible/plugins/filter/mandatory.yml

### Ansible Version

```console
n/a
```


### Configuration

```console
n/a
```


### OS / Environment

n/a

### Additional Information

n/a

### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
text.replace(
            p['newline'], "%s%s" % (p['newline'], p['decoration'])))).replace(
                
                "%s%s" % (p['decoration'], p['newline']),
                "%s%s" % (p['decoration'].rstrip(), p['newline']))
    str_postfix = p['newline'].join(
        [''] + [p['postfix'] for x in range(p['postfix_count'])])
    str_end = ''
    if p['end']:
        str_end = "%s%s" % (p['newline'], p['end'])
    
    return "%s%s%s%s%s" % (
        str_beginning,
        str_prefix,
        str_text,
        str_postfix,
        str_end)
@pass_environment
def extract(environment, item, container, morekeys=None):
    if morekeys is None:
        keys = [item]
    elif isinstance(morekeys, list):
        keys = [item] + morekeys
    else:
        keys = [item, morekeys]
    value = container
    for key in keys:
        value = environment.getitem(value, key)
    return value
def b64encode(string, encoding='utf-8'):