diff --git a/message_definitions/v1.0/common.xml b/message_definitions/v1.0/common.xml
index 1f6e6c77aff..d6e19eb5781 100644
--- a/message_definitions/v1.0/common.xml
+++ b/message_definitions/v1.0/common.xml
@@ -2734,6 +2734,19 @@
Autopilot supports the flight information protocol.
+
+ Parameter protocol uses C-cast of parameter values to set the param_value (float) fields: https://mavlink.io/en/services/parameter.html#parameter-encoding.
+ Note that either this flag or MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE should be set if the parameter protocol is supported.
+
+
+
+ This component implements/is a gimbal manager. This means the GIMBAL_MANAGER_INFORMATION, and other messages can be requested.
+
+
+
+
+ Component supports locking control to a particular GCS independent of its system (via MAV_CMD_REQUEST_OPERATOR_CONTROL).
+
Type of mission items being requested/sent in mission protocol.
diff --git a/message_definitions/v1.0/development.xml b/message_definitions/v1.0/development.xml
index 2f037d9819a..3881912f9e1 100644
--- a/message_definitions/v1.0/development.xml
+++ b/message_definitions/v1.0/development.xml
@@ -163,6 +163,53 @@
+
+ Request GCS control of a system (or of a specific component in a system).
+
+ A controlled system should only accept MAVLink commands and command-like messages that are sent by its controlling GCS, or from other components with the same system id.
+ Commands from other systems should be rejected with MAV_RESULT_PERMISSION_DENIED (except for this command, which may be acknowledged with MAV_RESULT_ACCEPTED if control is granted).
+ Command-like messages should be ignored (or rejected if that is supported by their associated protocol).
+
+ GCS control of the whole system is managed via a single component that we will refer to here as the "system manager component".
+ This component streams the CONTROL_STATUS message and sets the GCS_CONTROL_STATUS_FLAGS_SYSTEM_MANAGER flag.
+ Other components in the system should monitor for the CONTROL_STATUS message with this flag, and set their controlling GCS to match its published system id.
+ A GCS that wants to control the system should also monitor for the same message and flag, and address the MAV_CMD_REQUEST_OPERATOR_CONTROL to its component id.
+ Note that integrators are required to ensure that there is only one system manager component in the system (i.e. one component emitting the message with GCS_CONTROL_STATUS_FLAGS_SYSTEM_MANAGER set).
+
+ The MAV_CMD_REQUEST_OPERATOR_CONTROL command is sent by a GCS to the system manager component to request or release control of a system, specifying whether subsequent takeover requests from another GCS are automatically granted, or require permission.
+
+ The system manager component should grant control to the GCS if the system does not require takeover permission (or is uncontrolled) and ACK the request with MAV_RESULT_ACCEPTED.
+ The system manager component should then stream CONTROL_STATUS indicating its controlling system: all other components with the same system id should monitor this message and set their own controlling GCS to match that of the system manager component.
+
+ If the system manager component cannot grant control (because takeover requires permission), the request should be rejected with MAV_RESULT_PERMISSION_DENIED.
+ The system manager component should then send this same command to the current owning GCS in order to notify of the request.
+ The owning GCS would ACK with MAV_RESULT_ACCEPTED, and might choose to release control of the vehicle, or re-request control with the takeover bit set to allow permission.
+ Note that the pilots of both GCS should co-ordinate safe handover offline.
+
+ Note that in most systems the only controlled component will be the "system manager component", and that will be the autopilot.
+ However separate GCS control of a particular component is also permitted, if supported by the component.
+ In this case the GCS will address MAV_CMD_REQUEST_OPERATOR_CONTROL to the specific component it wants to control.
+ The component will then stream CONTROL_STATUS for its controlling GCS (it must not set GCS_CONTROL_STATUS_FLAGS_SYSTEM_MANAGER).
+ The component should fall back to the system GCS (if any) when it is not directly controlled, and may stop emitting CONTROL_STATUS.
+ The flow is otherwise the same as for requesting control over the whole system.
+
+ System ID of GCS requesting control. 0 when command sent from GCS to autopilot (autopilot determines requesting GCS sysid from message header). Sysid of GCS requesting control when command sent by autopilot to controlling GCS.
+ 0: Release control, 1: Request control.
+ Enable automatic granting of ownership on request (by default reject request and notify current owner). 0: Ask current owner and reject request, 1: Allow automatic takeover.
+ Empty
+ Empty
+ Empty
+ Empty
+
+
+
+ CONTROL_STATUS flags.
+
+ If set, this CONTROL_STATUS publishes the controlling GCS for the whole system. If unset, the CONTROL_STATUS indicates the controlling GCS for just the component emitting the message. Note that to request control of the system a GCS should send MAV_CMD_REQUEST_OPERATOR_CONTROL to the component emitting CONTROL_STATUS with this flag set.
+
+
+ Takeover allowed (requests for control will be granted). If not set requests for control will be rejected, but the controlling GCS will be notified (and may release control or allow takeover).
+
Flags indicating errors in a GPS receiver.
@@ -344,5 +391,10 @@
An abstract value representing the quality of incoming GNSS signals, or 255 if not available.
An abstract value representing the estimated PPK quality, or 255 if not available.
+
+ Information about GCS in control of this MAV. This should be broadcast at low rate (nominally 1 Hz) and emitted when ownership or takeover status change. Control over MAV is requested using MAV_CMD_REQUEST_OPERATOR_CONTROL.
+ System ID of GCS MAVLink component in control (0: no GCS in control).
+ Control status. For example, whether takeover is allowed, and whether this message instance defines the default controlling GCS for the whole system.
+