Hi there, It's fairly common within our code bases to define throwaway dicts for adding logging context or generating keyword arguments dynamically, e.g.: kwargs = {} if foo: kwargs["something"] = foo if bar: kwargs["another_thing"] = [1, 2, 3] cool_function(**kwargs) Defining TypedDict subclasses for these throwaway dicts can be tiresome, so these often get annotated with dict[str, Any], which opens a door for errors that a type checker would catch if we did define TypedDicts for them. I've been following the progress of PEPs 637 & 655 and had a thought this morning that they could be combined to generate a not-horrifically-ugly way to define TypedDicts inline. For the example above: kwargs: TypedDict[something=Required[str], another_thing=NotRequired[list[int]]] = {} if foo: ... Is it worth pursuing this thought further, or are there blockers on this that I'm oblivious to? Cheers, Andrew