Paste {"id":42,"profile":{"name":"Ada","avatar":null}} with root name Response. TypeDraft emits ResponseProfile before Response and keeps avatar as null because the sample provides no wider evidence.
Expected declarations
The result contains two declarations, number and string scalars, and an explicit null field to review against the API contract.
Widen only with contract evidence
If the authoritative response permits a URL string as well as null, edit avatar to string | null after checking that contract. Do not infer the wider union from this fixture alone.
Review against the real contract
Compile the generated file, then compare every property with the authoritative API documentation, OpenAPI document or JSON Schema. Add fields absent from the sample, correct nullable and optional rules, and use runtime validation at untrusted boundaries. Keep a representative fixture beside the reviewed type so later payload changes are visible.