Files
code-crispies/.wave/contracts/ontology.schema.json
Michael Czechowski ab6dabd542
Some checks failed
CI / ci (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
fix(ci): correct image digest separator
2026-04-30 12:20:26 +02:00

90 lines
2.7 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Ontology Extraction",
"description": "Domain ontology with entities, relationships, invariants, behaviors, and boundaries",
"type": "object",
"required": ["domain", "entities", "relationships", "boundaries"],
"properties": {
"domain": {
"type": "string",
"description": "Domain name being modeled"
},
"entities": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "type", "description", "properties"],
"properties": {
"name": { "type": "string" },
"type": { "type": "string", "enum": ["aggregate", "entity", "value_object", "event", "service"] },
"description": { "type": "string" },
"properties": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "type"],
"properties": {
"name": { "type": "string" },
"type": { "type": "string" },
"required": { "type": "boolean" },
"description": { "type": "string" }
}
}
}
}
}
},
"relationships": {
"type": "array",
"items": {
"type": "object",
"required": ["from", "to", "type"],
"properties": {
"from": { "type": "string" },
"to": { "type": "string" },
"type": { "type": "string", "enum": ["has_many", "has_one", "belongs_to", "depends_on", "produces", "consumes"] },
"description": { "type": "string" }
}
}
},
"invariants": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "description", "scope"],
"properties": {
"name": { "type": "string" },
"description": { "type": "string" },
"scope": { "type": "string" }
}
}
},
"behaviors": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "actor", "description"],
"properties": {
"name": { "type": "string" },
"actor": { "type": "string" },
"description": { "type": "string" },
"triggers": { "type": "array", "items": { "type": "string" } },
"outcomes": { "type": "array", "items": { "type": "string" } }
}
}
},
"boundaries": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "entities"],
"properties": {
"name": { "type": "string" },
"description": { "type": "string" },
"entities": { "type": "array", "items": { "type": "string" } }
}
}
}
}
}