{ "products" : [ { "_id" : "first_product", "bunch" : "a" }, { "_id" : "second_product", "bunch" : "b" }, { "_id" : "third_product", "bunch" : "c" }, { "_id" : "fourth_product", "bunch" : "d" } ], "cart_items" : [ { "product_id" : "first_product" }, { "product_id" : "first_product" } ], "wrapper" : { "levels" : [ { "__comments" : "this is the first level", "branches" : [ { "__comments" : "this is the first branch, the category can refer to a bunch of products all being sent in simultaneously. And that is defined in the definitions. ----- from input objects grouped by time slot ---- the input_object_ids from above are reorganized like this before trying to match them to the definitions.", "input_object_ids" : ["level:branch:definition:unit:object_id","these are not predefined, just the ones which were added to this branch, either directly or because they have the product_bunch."], "product_bunch" : "a", "merge_output" : true, "definitions" : [ { "__comments" : "we want an array of array of definition addresses", "input_requirements" : ["array of output object ids, all must share a common start and end time."], "time_specifications" : [ ], "location_specifications" : [ ], "duration" : 100, "entity_categories_needed_simultaneously_with_capacity" : { "a1" : 10, "a2" : 15, "a3" : 16 }, "physical_requirements" : { "p1" : 2, "p2" : 3, "p3" : 4 }, "merge_output" : true, "output_objects" : { "citem_id" : 0.2, "citem_id2" : 0.4 }, "units" : [ { "query_results" : [] } ] } ] } ] } ] } }