moving the tip into the liquid for aspiration or dispense, then immediately mixing without having left the liquid is fundamentally different from mixing into the liquid to aspirate or dispense, moving out of the liquid, moving back in, then mixing
how do we represent that? that is the problem we are solving. I see two options:
make mixing (an optional) part of aspiration or dispense (as I wrote above)
having the user explicitly set z_end_position on aspiration or dispense, and then mixing from there
user should exercise caution blow out air volume and transport air volume are set to 0 in the command with z_end_pos under the liquid surface, so there is utility in encapsulating this complexity of a mix in a higher level function