Constructs an Shipment object.
The shipments object is used to collect the details of shipments
that need to be completed as part of the optimization process.
Each shipment should have a pickup and the corresponding delivery step.
pickup - Specify the details of the pickup step of the shipment.
delivery - Specify the details of the delivery step of the shipment.
amount - This parameter defines the quantity that needs to be shipped.
This attribute supports multidimensional quantities,
to support shipment of quantities of different units/dimensions.
It is recommended to keep the dimensions of amount in shipments and that of capacity in vehicles consistent.
Please note that the amount will be added to the assigned vehicle's initial load.
skills - Define the skills needed to complete the shipment.
This attribute supports multidimensional skills allowing users to add multiple skills for a shipment.
priority - Specify the priority of this shipment.
The valid values are in the range of 0, 100. Default value is 0.
Please note that setting a priority will only decide whether this shipment will be assigned or not,
but has nothing to do with the sequence of fulfilling shipments.
maxTimeInVehicle - Use this parameter to limit the drive time for which a shipment stays in the vehicle.
The time-in-vehicle calculations start once the pickup leg of shipment is completed after serving any setup and service time that may have been configured for it.
For the delivery leg, time-in-vehicle calculations wouldn't consider any setup and service time
that needs to be served for completing the delivery.
The service or setup times of other tasks performed in between will also be not accumulated against the time-in-vehicle limit.
If the shipment is not delivered within the specified time, it will be considered as unassigned.