in message.go [908:947]
func init() {
apijson.RegisterUnion[ContentBlockParamUnion](
"type",
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(TextBlockParam{}),
DiscriminatorValue: "text",
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(ImageBlockParam{}),
DiscriminatorValue: "image",
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(ToolUseBlockParam{}),
DiscriminatorValue: "tool_use",
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(ToolResultBlockParam{}),
DiscriminatorValue: "tool_result",
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(DocumentBlockParam{}),
DiscriminatorValue: "document",
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(ThinkingBlockParam{}),
DiscriminatorValue: "thinking",
},
apijson.UnionVariant{
TypeFilter: gjson.JSON,
Type: reflect.TypeOf(RedactedThinkingBlockParam{}),
DiscriminatorValue: "redacted_thinking",
},
)
}