71 lines
2.0 KiB
JSON
71 lines
2.0 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "https://example.org/schemas/spacesafeml/safety_contract.json",
|
|
"title": "SafetyContract",
|
|
"type": "object",
|
|
"required": ["contract_id", "local_capabilities"],
|
|
"properties": {
|
|
"contract_id": { "type": "string" },
|
|
"version": { "type": "string", "default": "1.0" },
|
|
"local_capabilities": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["name"],
|
|
"properties": {
|
|
"name": { "type": "string" },
|
|
"capabilities": { "type": "array", "items": { "type": "string" } },
|
|
"metadata": { "type": "object" }
|
|
}
|
|
}
|
|
},
|
|
"pre_conditions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"description": { "type": "string" },
|
|
"conditions": { "type": "object" }
|
|
}
|
|
},
|
|
"post_conditions": {
|
|
"type": "object",
|
|
"properties": {
|
|
"description": { "type": "string" },
|
|
"conditions": { "type": "object" }
|
|
}
|
|
},
|
|
"budgets": {
|
|
"type": "object",
|
|
"properties": {
|
|
"cpu_cores": { "type": "number" },
|
|
"memory_gb": { "type": "number" },
|
|
"energy_wh": { "type": "number" },
|
|
"time_seconds": { "type": "number" }
|
|
}
|
|
},
|
|
"data_policy": {
|
|
"type": "object",
|
|
"properties": {
|
|
"policy_id": { "type": "string" },
|
|
"allowed_data": { "type": "array", "items": { "type": "string" } },
|
|
"constraints": { "type": "object" }
|
|
}
|
|
},
|
|
"scenarios": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["scenario_id"],
|
|
"properties": {
|
|
"scenario_id": { "type": "string" },
|
|
"sensors": { "type": "object" },
|
|
"environment": { "type": "object" },
|
|
"deterministic_replay": { "type": "boolean" },
|
|
"seed": { "type": ["integer", "null"] },
|
|
"description": { "type": "string" }
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
}
|