Okay, false alarm, omitempty tag solved this.
Except it didn't because when I add the omitempty on the non-empty value in a struct, I get it omitted as if it were empty. Gah.
Looks like I should stop trying to be fancy and just treat input XML data as a struct strings, and then convert those into usable values if necessary. Welp...
@93c76d5d or rewrite it in Rust + serde :tone_halfjoking: