Multiple values in printer definition file

Bambu Studio stores its standard printer definition files in BambuStudio/system/BBL//machine. Looking at the ‘X1 Carbon 0.4 nozzle.json’ file (which seems to be the base for all the other nozzle sizes, I noticed that it has multiple values for many of the motion ability parameters (e.g. machine_max_acceleration_ or machine_max_speed_).

In the UI, Bambu Studio only shows one value, and it is not even the top one (e.g. for machine_max_speed_x, there are four values: 500, 200, 200, 200 but Bambu Studio only shows 200 for max_speed_x).

Is there more documentation about those values? I looked at Orca Slicer and the Bambu Wiki but did not find much. How are they selected?

Grateful for any pointers.

-h

When the slicer accesses the settings it seems to often/always? rip the first from the list. .values[0]

I went down the rabbit hole a little but didnt find anything conclusive. Some printer profiles have 1 value, some have 2, and the 3 i checked did not have a good enough git blame to understand why. Whatever the reason, it’s old

Thinking again it is the speed modes, silent, etc, just not sure of the order.

But mostly I see only the 1st value (front) being used:

./GCode.cpp:            int(print.config().machine_max_acceleration_x.values.front() + 0.5),
./GCode.cpp:            int(print.config().machine_max_acceleration_y.values.front() + 0.5),
./GCode.cpp:            int(print.config().machine_max_acceleration_z.values.front() + 0.5),
./GCode.cpp:            int(print.config().machine_max_acceleration_e.values.front() + 0.5));
./GCode.cpp:                       ? int(print.config().machine_max_acceleration_extruding.values.front() + 0.5)
./GCode.cpp:                       : int(print.config().machine_max_acceleration_travel.values.front() + 0.5);
./GCode.cpp:            int(print.config().machine_max_acceleration_extruding.values.front() + 0.5),
./GCode.cpp:            int(print.config().machine_max_acceleration_retracting.values.front() + 0.5),