TYP: enable reportPropertyTypeMismatch
This might be controversial. The setter allows any `Mapping` but the getter returns a `dict`.

[reportPropertyTypeMismatch](https://github.com/microsoft/pyright/blob/main/docs/configuration.md):

> [...] type of the value passed to the setter is not assignable to the value returned by the getter. Such mismatches violate the intended use of properties, which are meant to act like variables. The default value for this setting is 'error'.
This looks like a case where 1) pyright is technically incorrect (passing a non-dict Mapping looks benign) and 2) its not that big a deal (if using "dict" will allow us to enable pyright in a way that will prevent bugs, then its fine) I think the three options are:

1. Add a pyright ignore comment to the top of the file and enable the pyright rule or
2. Keep the pyright rule disabled or
3. Change Mapping to dict and enable the pyright rule

I'm slightly inclined to 1 as it seems to be a deliberate choice to support setting any dict-like object. I updated the PR to not change the type annotation, but instead add a pyright-ignore comment.