makes a few more fields optional to simplify macro type declaration