# Weeve JSON Schemas
### Session JSON Schema
```json=
{
"id": "unique id - autogenerated",
"name": "session name",
"description": "short description of the session",
"participants": ["userID"],
"features": {},
"groupSeq": [
{
"ref": "group_id0",
"lookup": "weeveverse"
},
{
"ref": "group_id1",
"lookup": "local"
}
]
}
```
### Group JSON Schema
```json=
{
"id": "unique id per file",
"name": "group name",
"purpose": "short description of the group",
"questions": [],
"goal": "description of the goal",
"stages": [
{
"ref": "stage_id0",
"lookup": "weeveverse"
},
{
"ref": "stage_id1",
"lookup": "local"
}
]
}
```
### Stage JSON Schema
```json=
{
"id": "unique id per file",
"description": "description of the stage|{msg:...,locale:...}", // String | Object
"breakoutType": {
"name": "div|merge|static|shuffle",
"factor": "int - div/merge factor"
},
"duration": "int - stage total duration",
"prompts": ["prompt"],
"roles": ["role"],
"features": ["feature"], // video|audio|text|recording|voting
"events": ["event"], // internal only
"rooms": ["room"],
"transitionMode": "auto|manual" // timer or event
}
```
### Prompt JSON Schema
```json=
{
"message": "display message",
"duration": "int - message duration",
"delay": "int - when to be displayed withing the stage"
}
```
### Room JSON Schema
Autogenerated but available to modify.
```json=
{
"participants": ["userID"],
"features": ["feature"], // Copy from stage
"roles": ["role"]
}
```