You can't even represent `Json` in Python's type system because it would require a recursive type.
edit: I think this is actually a Python type annotation limitation but it's possible that's mypy, although I think in 99% of cases those are fine to conflate (I have used other Python type systems).