feat: define simulator data contracts

This commit is contained in:
Codex
2026-08-28 09:07:58 +09:00
parent 4c5756a5a9
commit 582d0013e6
15 changed files with 2373 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://micarrsim.local/schemas/result.schema.json",
"title": "micarrsim result summary",
"type": "object", "additionalProperties": false,
"required": ["schemaVersion", "kind", "experimentId", "createdAt", "backend", "inputHash", "timingMs", "bands"],
"properties": {
"schemaVersion": { "const": "1.0.0" }, "kind": { "const": "micarrsim.result" },
"experimentId": { "type": "string", "minLength": 1 },
"createdAt": { "type": "string", "format": "date-time" }, "backend": { "enum": ["cpu", "webgpu"] },
"inputHash": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
"timingMs": {
"type": "object", "additionalProperties": false, "required": ["total", "beamforming"],
"properties": {
"total": { "type": "number", "minimum": 0 },
"signalGeneration": { "type": "number", "minimum": 0 },
"beamforming": { "type": "number", "minimum": 0 }
}
},
"environment": { "type": "object", "additionalProperties": { "type": ["string", "number", "boolean"] } },
"bands": {
"type": "array", "minItems": 1,
"items": {
"type": "object", "additionalProperties": false,
"required": ["id", "peakPosition", "peakValue", "metrics"],
"properties": {
"id": { "type": "string", "minLength": 1 },
"peakPosition": {
"type": "array", "prefixItems": [{ "type": "number" }, { "type": "number" }, { "type": "number" }],
"items": false, "minItems": 3, "maxItems": 3
},
"peakValue": { "type": "number", "minimum": 0 },
"metrics": {
"type": "object", "additionalProperties": false,
"required": ["localizationErrorM", "peakToSidelobeDb"],
"properties": {
"localizationErrorM": { "type": "number", "minimum": 0 }, "peakToSidelobeDb": { "type": "number" },
"energyInsideTruthRatio": { "type": "number", "minimum": 0, "maximum": 1 }
}
}
}
}
}
}
}