Files
behavior-tree/contracts/task_plan_v2.schema.json
T

145 lines
3.3 KiB
JSON
Raw Normal View History

{
"$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."
}