enhancementgood first issuetyping
Description
Create a more advanced TypedDict or similar for annotating ASGI scope.
We could probably draw inspiration from the relevant parts of asgiref: https://github.com/django/asgiref/blob/main/asgiref/typing.py.
Since these annotations are really trivial, we probably want just to reimplement the part that we use.
This would allow us to get rid of a bunch of typing ignores, see #2599.