live.streamface.emoticons.settings

streamface.live

Schema Diff

+124 -0

From

CID
bafyreigr6om2se5...
Indexed At
2026-10-09 14:40 UTC
View this version

To

CID
bafyreihp6dq4jx5...
Indexed At
2026-10-10 15:38 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

10 breaking changes, 38 non-breaking changes.

Breaking Changes (10)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#moderationRule", src: "live.streamface.emoticons.settings#moderationRule", tgt: "live.streamface.emoticons.settings#moderationRule.blocked", kind: "prop", name: Some("blocked") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#moderationRule", src: "live.streamface.emoticons.settings#moderationRule", tgt: "live.streamface.emoticons.settings#moderationRule.cooldownMilliseconds", kind: "prop", name: Some("cooldownMilliseconds") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#moderationRule", src: "live.streamface.emoticons.settings#moderationRule", tgt: "live.streamface.emoticons.settings#moderationRule.did", kind: "prop", name: Some("did") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#roles", src: "live.streamface.emoticons.settings#roles", tgt: "live.streamface.emoticons.settings#roles.followers", kind: "prop", name: Some("followers") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#roles", src: "live.streamface.emoticons.settings#roles", tgt: "live.streamface.emoticons.settings#roles.moderators", kind: "prop", name: Some("moderators") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#roles", src: "live.streamface.emoticons.settings#roles", tgt: "live.streamface.emoticons.settings#roles.users", kind: "prop", name: Some("users") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#roles", src: "live.streamface.emoticons.settings#roles", tgt: "live.streamface.emoticons.settings#roles.mutuals", kind: "prop", name: Some("mutuals") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#allowedUser", src: "live.streamface.emoticons.settings#allowedUser", tgt: "live.streamface.emoticons.settings#allowedUser.did", kind: "prop", name: Some("did") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#eventMapping", src: "live.streamface.emoticons.settings#eventMapping", tgt: "live.streamface.emoticons.settings#eventMapping.event", kind: "prop", name: Some("event") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#eventMapping", src: "live.streamface.emoticons.settings#eventMapping", tgt: "live.streamface.emoticons.settings#eventMapping.commandId", kind: "prop", name: Some("commandId") }
Non-Breaking Changes (38)
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#allowedUser" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#allowedUser.did" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#allowedUser.handle" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#eventMapping" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#eventMapping.commandId" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#eventMapping.event" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#eventMapping.text" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#moderationRule" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#moderationRule.blocked" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#moderationRule.cooldownMilliseconds" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#moderationRule.did" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#moderationRule.handle" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles.followers" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles.following" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles.moderators" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles.mutuals" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles.users" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles.users:items" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings:body.eventMappings" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings:body.eventMappings:items" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings:body.moderation" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings:body.moderation:items" }
  • AddedVertex AddedVertex { vertex_id: "live.streamface.emoticons.settings:body.roles" }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings#allowedUser", tgt: "live.streamface.emoticons.settings#allowedUser.handle", kind: "prop", name: Some("handle") }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings#eventMapping", tgt: "live.streamface.emoticons.settings#eventMapping.text", kind: "prop", name: Some("text") }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings#moderationRule", tgt: "live.streamface.emoticons.settings#moderationRule.handle", kind: "prop", name: Some("handle") }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings#roles", tgt: "live.streamface.emoticons.settings#roles.following", kind: "prop", name: Some("following") }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings#roles.users", tgt: "live.streamface.emoticons.settings#roles.users:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings#roles.users:items", tgt: "live.streamface.emoticons.settings#allowedUser", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings:body", tgt: "live.streamface.emoticons.settings:body.eventMappings", kind: "prop", name: Some("eventMappings") }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings:body", tgt: "live.streamface.emoticons.settings:body.moderation", kind: "prop", name: Some("moderation") }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings:body", tgt: "live.streamface.emoticons.settings:body.roles", kind: "prop", name: Some("roles") }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings:body.eventMappings", tgt: "live.streamface.emoticons.settings:body.eventMappings:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings:body.eventMappings:items", tgt: "live.streamface.emoticons.settings#eventMapping", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings:body.moderation", tgt: "live.streamface.emoticons.settings:body.moderation:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings:body.moderation:items", tgt: "live.streamface.emoticons.settings#moderationRule", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "live.streamface.emoticons.settings:body.roles", tgt: "live.streamface.emoticons.settings#roles", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#allowedUser" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#allowedUser.did" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#allowedUser.handle" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#eventMapping" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#eventMapping.commandId" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#eventMapping.event" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#eventMapping.text" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#moderationRule" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#moderationRule.blocked" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#moderationRule.cooldownMilliseconds" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#moderationRule.did" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#moderationRule.handle" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles.followers" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles.following" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles.moderators" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles.mutuals" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles.users" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings#roles.users:items" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings:body.eventMappings" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings:body.eventMappings:items" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings:body.moderation" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings:body.moderation:items" }
  • AddedVertex { vertex_id: "live.streamface.emoticons.settings:body.roles" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#allowedUser", src: "live.streamface.emoticons.settings#allowedUser", tgt: "live.streamface.emoticons.settings#allowedUser.did", kind: "prop", name: Some("did") }
  • Breaking: RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#roles", src: "live.streamface.emoticons.settings#roles", tgt: "live.streamface.emoticons.settings#roles.followers", kind: "prop", name: Some("followers") }
  • Breaking: RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#roles", src: "live.streamface.emoticons.settings#roles", tgt: "live.streamface.emoticons.settings#roles.moderators", kind: "prop", name: Some("moderators") }
  • Breaking: RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#roles", src: "live.streamface.emoticons.settings#roles", tgt: "live.streamface.emoticons.settings#roles.users", kind: "prop", name: Some("users") }
  • Breaking: RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#roles", src: "live.streamface.emoticons.settings#roles", tgt: "live.streamface.emoticons.settings#roles.mutuals", kind: "prop", name: Some("mutuals") }
  • Breaking: RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#moderationRule", src: "live.streamface.emoticons.settings#moderationRule", tgt: "live.streamface.emoticons.settings#moderationRule.blocked", kind: "prop", name: Some("blocked") }
  • Breaking: RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#moderationRule", src: "live.streamface.emoticons.settings#moderationRule", tgt: "live.streamface.emoticons.settings#moderationRule.cooldownMilliseconds", kind: "prop", name: Some("cooldownMilliseconds") }
  • Breaking: RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#moderationRule", src: "live.streamface.emoticons.settings#moderationRule", tgt: "live.streamface.emoticons.settings#moderationRule.did", kind: "prop", name: Some("did") }
  • Breaking: RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#eventMapping", src: "live.streamface.emoticons.settings#eventMapping", tgt: "live.streamface.emoticons.settings#eventMapping.event", kind: "prop", name: Some("event") }
  • Breaking: RequiredEdgeAdded { vertex_id: "live.streamface.emoticons.settings#eventMapping", src: "live.streamface.emoticons.settings#eventMapping", tgt: "live.streamface.emoticons.settings#eventMapping.commandId", kind: "prop", name: Some("commandId") }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings#allowedUser", tgt: "live.streamface.emoticons.settings#allowedUser.handle", kind: "prop", name: Some("handle") }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings#eventMapping", tgt: "live.streamface.emoticons.settings#eventMapping.text", kind: "prop", name: Some("text") }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings#moderationRule", tgt: "live.streamface.emoticons.settings#moderationRule.handle", kind: "prop", name: Some("handle") }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings#roles", tgt: "live.streamface.emoticons.settings#roles.following", kind: "prop", name: Some("following") }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings#roles.users", tgt: "live.streamface.emoticons.settings#roles.users:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings#roles.users:items", tgt: "live.streamface.emoticons.settings#allowedUser", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings:body", tgt: "live.streamface.emoticons.settings:body.eventMappings", kind: "prop", name: Some("eventMappings") }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings:body", tgt: "live.streamface.emoticons.settings:body.moderation", kind: "prop", name: Some("moderation") }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings:body", tgt: "live.streamface.emoticons.settings:body.roles", kind: "prop", name: Some("roles") }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings:body.eventMappings", tgt: "live.streamface.emoticons.settings:body.eventMappings:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings:body.eventMappings:items", tgt: "live.streamface.emoticons.settings#eventMapping", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings:body.moderation", tgt: "live.streamface.emoticons.settings:body.moderation:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings:body.moderation:items", tgt: "live.streamface.emoticons.settings#moderationRule", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "live.streamface.emoticons.settings:body.roles", tgt: "live.streamface.emoticons.settings#roles", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 +
    "allowedUser": {
5 +
      "properties": {
6 +
        "did": {
7 +
          "format": "did",
8 +
          "maxLength": 2048,
9 +
          "type": "string"
10 +
        },
11 +
        "handle": {
12 +
          "maxLength": 253,
13 +
          "type": "string"
14 +
        }
15 +
      },
16 +
      "required": [
17 +
        "did"
18 +
      ],
19 +
      "type": "object"
20 +
    },
21 +
    "eventMapping": {
22 +
      "properties": {
23 +
        "commandId": {
24 +
          "maxLength": 512,
25 +
          "type": "string"
26 +
        },
27 +
        "event": {
28 +
          "enum": [
29 +
            "teleport-arrival",
30 +
            "teleport-canceled",
31 +
            "stream-started",
32 +
            "stream-ended"
33 +
          ],
34 +
          "type": "string"
35 +
        },
36 +
        "text": {
37 +
          "description": "Optional overlay text beneath the event clip.",
38 +
          "maxGraphemes": 500,
39 +
          "maxLength": 2000,
40 +
          "type": "string"
41 +
        }
42 +
      },
43 +
      "required": [
44 +
        "event",
45 +
        "commandId"
46 +
      ],
47 +
      "type": "object"
48 +
    },
4 49
    "main": {
5 50
      "key": "literal:self",
6 51
      "record": {
7 52
        "properties": {
8 53
          "createdAt": {
9 54
            "format": "datetime",
10 55
            "type": "string"
11 56
          },
12 57
          "enabled": {
13 58
            "type": "boolean"
14 59
          },
60 +
          "eventMappings": {
61 +
            "items": {
62 +
              "ref": "#eventMapping",
63 +
              "type": "ref"
64 +
            },
65 +
            "maxLength": 4,
66 +
            "type": "array"
67 +
          },
68 +
          "moderation": {
69 +
            "items": {
70 +
              "ref": "#moderationRule",
71 +
              "type": "ref"
72 +
            },
73 +
            "maxLength": 200,
74 +
            "type": "array"
75 +
          },
76 +
          "roles": {
77 +
            "ref": "#roles",
78 +
            "type": "ref"
79 +
          },
15 80
          "updatedAt": {
16 81
            "format": "datetime",
17 82
            "type": "string"
18 83
          }
19 84
        },
20 85
        "required": [
21 86
          "enabled",
22 87
          "createdAt",
23 88
          "updatedAt"
24 89
        ],
25 90
        "type": "object"
26 91
      },
27 92
      "type": "record"
93 +
    },
94 +
    "moderationRule": {
95 +
      "properties": {
96 +
        "blocked": {
97 +
          "type": "boolean"
98 +
        },
99 +
        "cooldownMilliseconds": {
100 +
          "maximum": 86400000,
101 +
          "minimum": 0,
102 +
          "type": "integer"
103 +
        },
104 +
        "did": {
105 +
          "format": "did",
106 +
          "maxLength": 2048,
107 +
          "type": "string"
108 +
        },
109 +
        "handle": {
110 +
          "maxLength": 253,
111 +
          "type": "string"
112 +
        }
113 +
      },
114 +
      "required": [
115 +
        "did",
116 +
        "blocked",
117 +
        "cooldownMilliseconds"
118 +
      ],
119 +
      "type": "object"
120 +
    },
121 +
    "roles": {
122 +
      "properties": {
123 +
        "followers": {
124 +
          "type": "boolean"
125 +
        },
126 +
        "following": {
127 +
          "description": "Allow accounts followed by the streamer.",
128 +
          "type": "boolean"
129 +
        },
130 +
        "moderators": {
131 +
          "type": "boolean"
132 +
        },
133 +
        "mutuals": {
134 +
          "type": "boolean"
135 +
        },
136 +
        "users": {
137 +
          "items": {
138 +
            "ref": "#allowedUser",
139 +
            "type": "ref"
140 +
          },
141 +
          "maxLength": 200,
142 +
          "type": "array"
143 +
        }
144 +
      },
145 +
      "required": [
146 +
        "followers",
147 +
        "mutuals",
148 +
        "moderators",
149 +
        "users"
150 +
      ],
151 +
      "type": "object"
28 152
    }
29 153
  },
30 154
  "id": "live.streamface.emoticons.settings",
31 155
  "lexicon": 1
32 156
}

Compare Other Versions

Lexicon Garden

@