Open redcatbear opened 5 months ago
Here's a first draft of the JSON schema:
{
"$id": "ttp://schemas.itsallcode.org/oft/oft_specitem_1.0.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"creationDate": {
"type": "string",
"format": "date-time"
},
"oftVersionUsed": {
"type": "string"
},
"formatVersion": {
"type": "string"
},
"specificationItems": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"rationale": {
"type": "string"
},
"covers": {
"type": "array",
"items": {
"type": "string"
}
},
"depends": {
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"source": {
"type": "object",
"properties": {
"file": {
"type": "string"
},
"line": {
"type": "string"
}
},
"required": ["file", "line"]
},
"comment": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": ["id", "title", "description", "rationale", "covers", "depends", "tags", "source", "comment", "status"]
}
}
},
"required": ["creationDate", "oftVersionUsed", "formatVersion", "specificationItems"]
}
Situation
For data exchange we currently support the machine readable "SpecObject" and "ASPEC" formats. While these are technically sufficient, they show their heritage over three predecessor tools (TReqs, ReqM2 and Allosaurus). They could be a lot more streamlined and user-friendly.
Implementation Idea
We should add a machine-readable exchange format with JSON, that is closer to who OFT sees the data, more compact and less convoluted than OSPEC and ASPEC.
Sample File
Potential Libraries