User Content
The two shapes the content of a UserMessage takes on the wire: a bare string, or an array of ContentParts.
The UserMessage constructors wrap a String or a List<ContentPart> for you, so this type mostly shows up when reading a message back.