Answer Room Metadata v1¶
Source schema: doc/schemas/answer-room-metadata.v1.schema.json
Machine-readable schema for answer-channel room metadata, including operator participation policy profile and provenance-preservation expectations.
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema/v |
yes |
const: 1 |
Schema version. |
room/id |
yes |
string | |
question/id |
yes |
string | |
delivery/scope |
yes |
enum: private-to-swarm, federation-local, cross-federation, global |
|
room-policy/profile |
yes |
enum: none, mediated-only, direct-live-allowed |
|
operator-consultation/allowed |
yes |
boolean | |
operator-direct-live/allowed |
yes |
boolean | |
human-live/origin-flag-required |
no |
boolean | |
summary/human-provenance-required |
yes |
boolean | |
transcript/human-origin-preserved |
yes |
boolean | |
room-policy/effective-at |
no |
string | |
room-policy/changed-by |
no |
string | |
moderation/approval-required |
no |
boolean | |
secretary/required-for-direct-live |
no |
boolean | |
retention/profile |
no |
string | |
policy_annotations |
no |
object |
Conditional Rules¶
Rule 1¶
When:
{
"properties": {
"room-policy/profile": {
"const": "none"
}
},
"required": [
"room-policy/profile"
]
}
Then:
{
"properties": {
"operator-consultation/allowed": {
"const": false
},
"operator-direct-live/allowed": {
"const": false
}
}
}
Rule 2¶
When:
{
"properties": {
"room-policy/profile": {
"const": "mediated-only"
}
},
"required": [
"room-policy/profile"
]
}
Then:
{
"properties": {
"operator-consultation/allowed": {
"const": true
},
"operator-direct-live/allowed": {
"const": false
}
}
}
Rule 3¶
When:
{
"properties": {
"room-policy/profile": {
"const": "direct-live-allowed"
}
},
"required": [
"room-policy/profile"
]
}
Then:
{
"properties": {
"operator-consultation/allowed": {
"const": true
},
"operator-direct-live/allowed": {
"const": true
},
"human-live/origin-flag-required": {
"const": true
}
},
"required": [
"human-live/origin-flag-required"
]
}
Rule 4¶
When:
{
"properties": {
"delivery/scope": {
"const": "global"
}
},
"required": [
"delivery/scope"
]
}
Then:
{
"properties": {
"room-policy/profile": {
"not": {
"const": "direct-live-allowed"
}
}
}
}
Field Semantics¶
schema/v¶
- Required:
yes - Shape: const:
1
Schema version.
room/id¶
- Required:
yes - Shape: string
question/id¶
- Required:
yes - Shape: string
delivery/scope¶
- Required:
yes - Shape: enum:
private-to-swarm,federation-local,cross-federation,global
room-policy/profile¶
- Required:
yes - Shape: enum:
none,mediated-only,direct-live-allowed
operator-consultation/allowed¶
- Required:
yes - Shape: boolean
operator-direct-live/allowed¶
- Required:
yes - Shape: boolean
human-live/origin-flag-required¶
- Required:
no - Shape: boolean
summary/human-provenance-required¶
- Required:
yes - Shape: boolean
transcript/human-origin-preserved¶
- Required:
yes - Shape: boolean
room-policy/effective-at¶
- Required:
no - Shape: string
room-policy/changed-by¶
- Required:
no - Shape: string
moderation/approval-required¶
- Required:
no - Shape: boolean
secretary/required-for-direct-live¶
- Required:
no - Shape: boolean
retention/profile¶
- Required:
no - Shape: string
policy_annotations¶
- Required:
no - Shape: object