"optional" has lower precedence than "required"