improvement
Fulfillment location inputs now enforce validation
createDraftFulfillment now rejects a location that does not exist, belongs to another building, or is not active and pickable. This applies to the new typed items argument and the deprecated JSON fulfillmentItems argument. Such locations were previously accepted and ignored.
The JSON argument still works and stores a location without restricting allocation. Migrating to typed items changes that behavior: the location becomes a binding restriction, and insufficient stock there returns an error. Do not send both arguments in one request.