macro_rules! define_swap_command {
    ($(#[$meta:meta])* $type:ident($value_type:ty): $name:expr, $swap:expr) => { ... };
    ($cast_node:expr, $(
        $(#[$meta:meta])* $type:ident($value_type:ty): $get:ident, $set:ident, $name:expr;
     )*) => { ... };
}