Přeskočit obsah

Room Moderation Intent v1

Source schema: doc/schemas/room-moderation-intent.v1.schema.json

Governing Basis

Project Lineage

Fields

Field Required Shape Description
schema/v yes const: 1
intent/ref yes string
idempotency/key yes string
room/id yes ref: room.v1.schema.json#/$defs/room_id
action yes enum: invite, kick, remove, deny, reinstate, mute, unmute, floor-assign, floor-advance, floor-release
target/subject yes ref: room.v1.schema.json#/$defs/subject
expected/high-water yes integer
policy/generation yes integer
expires-at no string
supersedes/ref no string
reason/code yes string
reason/ref no string
requested-at yes string

Conditional Rules

Rule 1

When:

{
  "properties": {
    "action": {
      "const": "deny"
    }
  },
  "required": [
    "action"
  ]
}

Then:

{
  "not": {
    "required": [
      "supersedes/ref"
    ]
  }
}

Rule 2

When:

{
  "properties": {
    "action": {
      "const": "reinstate"
    }
  },
  "required": [
    "action"
  ]
}

Then:

{
  "required": [
    "supersedes/ref"
  ],
  "not": {
    "required": [
      "expires-at"
    ]
  }
}

Rule 3

When:

{
  "properties": {
    "action": {
      "not": {
        "enum": [
          "deny",
          "reinstate"
        ]
      }
    }
  },
  "required": [
    "action"
  ]
}

Then:

{
  "not": {
    "anyOf": [
      {
        "required": [
          "expires-at"
        ]
      },
      {
        "required": [
          "supersedes/ref"
        ]
      }
    ]
  }
}

Field Semantics

schema/v

  • Required: yes
  • Shape: const: 1

intent/ref

  • Required: yes
  • Shape: string

idempotency/key

  • Required: yes
  • Shape: string

room/id

  • Required: yes
  • Shape: ref: room.v1.schema.json#/$defs/room_id

action

  • Required: yes
  • Shape: enum: invite, kick, remove, deny, reinstate, mute, unmute, floor-assign, floor-advance, floor-release

target/subject

  • Required: yes
  • Shape: ref: room.v1.schema.json#/$defs/subject

expected/high-water

  • Required: yes
  • Shape: integer

policy/generation

  • Required: yes
  • Shape: integer

expires-at

  • Required: no
  • Shape: string

supersedes/ref

  • Required: no
  • Shape: string

reason/code

  • Required: yes
  • Shape: string

reason/ref

  • Required: no
  • Shape: string

requested-at

  • Required: yes
  • Shape: string