>Typeless loosy goosy code that passes dictionaries all over the place is just not fun.

mypy --strict in CI & don't let dict[str, Any] pass review if the keys are constants, insist on a dataclass or at least a TypedDict.

> & don't let dict[str, Any] pass review

good luck with justifying that before your manager (reacting to complaints within your team, claiming you being a bottleneck).

So just make it a dict[str, str] and json encode the payload.