Type annotations describe relationships that a static checker can inspect. A TypeVar connects the element type of a sequence to a fallback and return value. TypedDict names required and optional dictionary fields, while a Protocol describes the operations a dependency must provide. Overloads describe signatures whose return type depends on the argument type.
The browser workspace runs Python, but it doesn't install a full static type checker. You will therefore pair annotations with executable contracts and keep their roles clear. Decoded JSON still needs explicit checks, and a runtime protocol membership check doesn't prove a method signature. The exercises include falsey values, optional zero limits, bool as an int subclass, unrelated sender implementations, and two overload declarations with one executable implementation.