So this isn't a big deal, but I've noticed other places where I think you've done constructs like:

```python
if expected_case:
    # 20 lines of code
    return something
else:
    return None
```

Or some such. As a general rule, I'd encourage you to check the parameters and return the simple negatives first before doing the big complicated normal case. In this case it would be:

```python
if not assessment_ui_model:
    return {}

return {
    "peer": {
        "must_grade": assessment_ui_model["must_grade"],
        "must_be_graded_by": assessment_ui_model["must_be_graded_by"]
    }
}
```

It gives you and extra indent's worth of space for your main thing, and your eyes don't have to scroll up from the else to see what the error/unusual case was. Again, in this example it's short enough when it doesn't matter -- I just mention this because I've seen it on longer examples elsewhere in peer code.