How to turn a dot into simple scaler expressions for nonlinear optimization using JUMP

If the constraint is linear or quadratic, you can use @constraint. That should work for these cases.

Otherwise you need an explicit sum like sum(position[i, num_time_steps] for i in 1:2).

For the last part, use a collection

@constraint(model, [i=1:2], position[i, 1] == initial_position[i])