{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "TaskPlan v2", "type": "object", "additionalProperties": false, "required": [ "schema_version", "plan_version", "task_type", "goal", "route", "slots", "missing_information", "subtasks" ], "properties": { "schema_version": { "const": 2 }, "plan_version": { "type": "integer", "minimum": 1, "maximum": 4294967295 }, "task_type": { "enum": [ "pick_transport_place", "multi_item_pick_transport_place" ] }, "goal": { "type": "string", "minLength": 1, "maxLength": 1000 }, "route": { "enum": [ "OBJECT_TABLE", "SHELF_CELL" ] }, "slots": { "type": "object", "additionalProperties": false, "required": [ "items", "destination" ], "properties": { "items": { "type": "array", "minItems": 1, "maxItems": 20, "items": { "type": "object", "additionalProperties": false, "required": [ "target_name", "quantity", "source_location" ], "properties": { "target_name": { "type": "string", "minLength": 1, "maxLength": 200 }, "source_location": { "type": "string", "minLength": 1, "maxLength": 200 }, "quantity": { "type": "integer", "minimum": 1, "maximum": 20 } } } }, "destination": { "type": "string", "minLength": 1, "maxLength": 200 } }, "description": "Ordered items; sum(quantity)<=20 is also checked in code." }, "missing_information": { "type": "array", "maxItems": 0 }, "subtasks": { "type": "array", "minItems": 4, "maxItems": 120, "items": { "type": "object", "additionalProperties": false, "required": [ "id", "skill", "arguments", "depends_on" ], "properties": { "id": { "type": "string", "minLength": 1, "maxLength": 80 }, "skill": { "enum": [ "NAVIGATE", "ROBOBRAIN_SHELF_LOCALIZE", "PICK", "PLACE" ] }, "arguments": { "type": "object", "required": [ "item_index" ], "properties": { "item_index": { "type": "integer", "minimum": 0, "maximum": 19 } } }, "depends_on": { "type": "array", "maxItems": 1, "items": { "type": "string" } } } } } }, "description": "Runtime validator plan_v2.validate_v2 additionally enforces exact per-route argument fields, count/order, predecessor dependencies and matching slots. JSON Schema alone does not approve execution." }