… because the type has its own empty state (all fields being None).
ruma-macros provides procedural macros for easily generating types for Ruma crates.