macro_rules! register_item {
(
$builder:expr, $data:expr, $display:expr
$(, rppm: ($item_id:expr, $ppm:expr, $haste:expr))?
$(, rppm_driver: ($driver_item_id:expr, $driver_spell_id:expr))?
$(, auras: ($budget:expr) [ $( ($aura_const:expr, $aura_fn:ident) ),* $(,)? ])?
$(, spells: [ $( ($spell_const:expr, $spell_fn:ident) ),* $(,)? ])?
$(, precombat: [ $( $precombat_const:expr ),* $(,)? ])?
$(,)?
) => { ... };
}