Hi @VioletCheese,
By convention we tend to send zeros for unused/empty parameters, yes. Most autopilots should disregard parameters that are unspecified or specified as empty in the message definition, but if a custom autopilot has some extra functionality shoehorned into a given message then it’s possible that sending arbitrary values could have unintended consequences.
Yes, that seems to be a mistake in our example. I’ve made a pull request correcting that here, so it should be fixed soon:
As it turns out, it seems like the ArduPilot implementation is missing that parameter entirely, so I’ve raised an issue about that as well, here.
The MAVLink specification is a little inconsistent in terms of how empty parameters are specified (presumably that’s changed somewhat over time, and hasn’t been backported to older definitions). There are various other messages that have a gap before the 7th parameter, some of which don’t explicitly specify Empty parameters in between.
Nitpicks/clarification of docs and examples is always welcomed - we want them to be as clear and understandable as possible