Stepper motor + Rheostat. Nothing beats the simplicity.
Let's think about programmable loads for a second.
For
DC, you generally would want your load to operate in one of three modes:
constant resistance (current proportional to source voltage, load power is then proportional to V
2),
constant current (load power is then proportional to source V). and
constant power (current proportional to 1/V).
Since it is fundamentally a DC load and "DC" is contant voltage by definition, the load typically operates in all modes as a constant current dump, with the current set-point programmed according to the mode as above, and only needing to be adjusted occasionally (whatever than means, maybe between few times per second, or more, or much much more, depending on your requirements). Usually, an analog control loop takes care of controlling the current to match the set point current. For a DC source with AC (ripple or noise) superimposed, the above modes still make sense, as long as the DC>>AC.
For true
AC, the only sensible mode of operation is
constant resistance. The resistance (not the current) is the 'programmed' parameter. (Think about what would happen near/at zero-crossing with a constant current... the load becomes a short-circuit and still fails to deliver the required current, not what you intend I think). Of course, an AC load could do a modified "constant RMS power" mode where the RMS value (as opposed to the instantaneous value) of the power would be constant, with the AC load adjusting its constant resistance parameter to meet the requested power. Or you could do "constant RMS current" again by calculating the required resistance for the present input voltage, and applying that resistance. But any AC load still fundamentally a constant resistance load.
So, given that, an AC load is going to be very different from a DC load. Certainly, it is not a DC load with a rectifier on the input, whether a diode bridge or an ideal rectifier network.
Obviously the easiest AC load is a resistor, or a variable resistor. A bank of power resistors with a creative array of (mechanical) relays to switch them into various configurations could do the job, but the adjustment will be rather granular. If you want fine adjustment, you need more complexity.
I would imagine that using a power amplifier output at the 'ground' side of the resistor network (instead of direct connection to ground) would provide you the ability to create an finely adjustable resistance by adjusting the output level of that amplifier. It would provide a sort of back-emf for the resistor that would reduce the current through it, effectively reducing the resistance of the AC load. A power amplifier is a four-quadrant device, capable of sinking or sourcing current at any output voltage, unlike the simple single FET/BJT of a DC load, which is a one-quadrant device (it can only sink current with positive input voltages). A power op-amp-like audio amp chip like a LM3886, capable of a minimum 7A continuous output (within its SOA) could do this duty. The power amp would only be called upon to provide a few volts of adjustment to fine-tune the resistor bank. They could be paralleled for more current when necessary.