O que faz
Cole uma amostra JSON, por exemplo uma resposta copiada do painel de rede do navegador, e veja os tipos que ela implica em cinco formatos: TypeScript (interface ou type), Zod com z.infer, JSON Schema 2020-12, structs Go com tags json e dataclasses Python. Tudo roda no seu navegador, com o mesmo analisador rigoroso do formatador JSON, que mostra linha e coluna de cada erro.
Como os tipos são inferidos
Objetos viram tipos nomeados a partir da chave (items → Item, no singular para elementos de array). Os elementos de um array são mesclados em um único tipo: um campo ausente em alguns elementos fica opcional, e tipos diferentes formam uma união, então [1, "a", null] é (string | number | null)[]. Array vazio é unknown[] e objeto vazio é Record<string, unknown>. Inteiros e decimais são number no TypeScript, mas int64/float64 no Go e int/float no Python. Chaves que não são identificadores ficam entre aspas.
Limites
Uma amostra mostra só uma resposta. Um status é string, não a união dos valores permitidos; uma data é texto. Cole vários registros dentro de um array para mesclá-los e ajuste o resultado à mão. Para dados vindos da rede, o esquema Zod valida em tempo de execução.