Use Option::zip which was not possible with the previous MSRV.
ruma-events-macros provides a procedural macro for easily generating event types for ruma-events.