The profile schema
The profile schema gives the format of the model-name.prf.json that is created for every mode-name.vmblu file.
Actually the vmblu editor recreates this file every time the user switches to the vmblu model file, because there might have been changes to the source code of the source nodes in the model.
The profile files list for each source node (entry) the handlers for that node and where messages are sent by that node. Note that the handlers correspond to the input pins of the node and the transmit locations correspond with the output pins of the node.
For the handlers the parameters are listed (if available) and the location of the handler in the source code. For the transmissions the location is stored.
json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "@vizual_model/cli/templates/0.8.3/profile.schema.json",
"title": "vmblu Source Documentation (grouped by node)",
"type": "object",
"required": ["version", "generatedAt", "entries"],
"properties": {
"version": { "type": "string" },
"generatedAt": { "type": "string", "format": "date-time" },
"entries": {
"type": "array",
"items": { "$ref": "#/$defs/Entry" }
}
},
"$defs": {
"Param": {
"type": "object",
"additionalProperties": false,
"required": ["name", "type", "description"],
"properties": {
"name": { "type": "string" },
"type": { "type": "string" },
"description": { "type": "string" }
}
},
"Handle": {
"type": "object",
"additionalProperties": false,
"required": ["pin", "handler", "file", "line", "summary", "returns", "examples", "params"],
"properties": {
"pin": { "type": "string" },
"handler": { "type": "string" },
"file": { "type": "string" },
"line": { "type": "integer", "minimum": 1 },
"summary": { "type": "string" },
"returns": { "type": "string" },
"examples": {
"type": "array",
"items": { "type": "string" }
},
"params": {
"type": "array",
"items": { "$ref": "#/$defs/Param" }
}
}
},
"Transmit": {
"type": "object",
"additionalProperties": false,
"required": ["pin", "file", "line"],
"properties": {
"pin": { "type": "string" },
"file": { "type": "string" },
"line": { "type": "integer", "minimum": 1 }
}
},
"Entry": {
"type": "object",
"additionalProperties": false,
"required": ["node", "handles", "transmits"],
"properties": {
"node": { "type": "string" },
"handles": {
"type": "array",
"items": { "$ref": "#/$defs/Handle" }
},
"transmits": {
"type": "array",
"items": { "$ref": "#/$defs/Transmit" }
}
}
}
}
}