Negotiation Explanation
SOURCE_CAPABILITIES - Source Capabilities
This is a message from the source to 'advertise' the power modes that it is capable of supplying.
The capabilities are communicated as a list of options with different fixed voltages, current limits, and supported features. The most interesting of these is the - optional - Programmable Power Supply(PPS) mode allowing the sink device to micromanage the delivered voltage and current to optimize power conversion and delivery.
This can be broadcast numerous times by the source, or the sink can request it with GET_SOURCE_CAP .
There is an equivalent GET_SINK_CAP and SINK_CAPABILITIES to request and communicate a device's ability to pull power.
REQUEST - Request
The sink will respond with a selection of one of the modes.
The sink responds with a number corresponding to the index of the source mode from the list that the source advertised.
The sink can send another REQUEST message at any time(with caveats) to request a different source mode. This can happen when the device turns on or whenever it would like to charge faster/slower.
ACCEPT - Accept
The source will accept the request.
The source must decide if it can comply. It may reject for reasons like being too hot, already delivering power to many other devices, or any variety of things. It is completely up to the source and its internal logic.
If the firmware is implemented properly, then the source can also respond with a REJECT message.
PS_RDY - Power Supply Ready
The source notifies the sink that it is ready for it to begin drawing power at the requested level.
The source must change the voltage and ensure the power supply is in a state to allow the power draw. Then it will send this message.
GOODCRC - Acknowledge
Bonus fifth message. These are actually sent by the receiving device in response to any received message. It is a common communication feature known as an "acknowledge" to let the sender know that the message has been successfully received.
If you've received this message, please comment GOODCRC on the LTT video.
Vendor Defined Messages(VDM) - VENDOR_DEFINED
Alongside the standard negotiation of power delivery, there is also negotiation to be had about data direction, format, and many other things. Vendor Defined Messages(VDM) are typically how this is done. These are used for both standard formats like DisplayPort or Thunderbolt, but also for proprietary modes if a manufacturer wanted to use a USB-C cable for whatever language or format they're using.
The distinction between 'good' and 'bad' use of VDM is whether or not the designer/user of the VDM publishes/registers the protocol and makes it available/compatible with other manufacturers or users. The Alternate Mode(Alt Mode) for DisplayPort is negotiated over VDM and is a great boon to many users, but Nintendo appears to be quite discourteous with their use of VDM.