Yeelight InterOp Spec Doc - adjust_bright, adjust_ct and adjust_color: How to interpret percentage change?

Hi I’m looking at page 18 of the Yeelight Inter-Operation Spec document.
adjust_bright, adjust_ct and adjust_color all use percentage increase/decrease for the properties.

I’m trying to write my own program to discover the lights, save the light property values (such as color, brightness, color temp) within my own program, command the lights to change, and update the values in my program upon a confirmation received from the bulb. I have some questions regarding the following 3 commands and how to interpret the command’s behaviour.

For adjust_bright: Would a -21% decrease be a 21 percentage point decrease as brightness is already defined as a percentage? Or, would it be 21% lower than the current setting?

For adjust_ct: How does the light interpret a percentage change to a colour temperature value from 1700-6500? Would it be (6500 - 1700 = 4800 / 100 = 48) so 48 points of change per percentage point difference? For example, if my current ct value was at 5500, and my command sent
{"id": 1, "method": "adjust_ct", "params": [-1, 500]}
Would my new ct value be 5452? And would I be correct to assume that it would automatically stop at the minimum and maximum values?

For adjust_color: How does the light interpret a percentage change to rgb value?