From
bafyreig2c2okzpvrqikokz53s5j4xisdeytv5mlteq4cifwdddabay27fm
indexed 2026-10-07 02:02 UTC
View this version
To
bafyreibi4c4pdwku7amp2dr4icazd4fm6lpclg6gozgnrvcsfcnf63swdq
indexed 2026-10-21 19:21 UTC
View this version
Compatibility
breaking 8 breaking changes, 8 non-breaking changes.
Breaking changes (8)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "games.cavu.subscribeSession#world", src: "games.cavu.subscribeSession#world", tgt: "games.cavu.subscribeSession#world.ack", kind: "prop", name: Some("ack") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "games.cavu.subscribeSession#world", src: "games.cavu.subscribeSession#world", tgt: "games.cavu.subscribeSession#world.del", kind: "prop", name: Some("del") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "games.cavu.subscribeSession#world", src: "games.cavu.subscribeSession#world", tgt: "games.cavu.subscribeSession#world.set", kind: "prop", name: Some("set") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "games.cavu.subscribeSession#snapshot", src: "games.cavu.subscribeSession#snapshot", tgt: "games.cavu.subscribeSession#snapshot.ack", kind: "prop", name: Some("ack") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "games.cavu.subscribeSession#snapshot", src: "games.cavu.subscribeSession#snapshot", tgt: "games.cavu.subscribeSession#snapshot.view", kind: "prop", name: Some("view") }
- RemovedVertex RemovedVertex { vertex_id: "games.cavu.subscribeSession#snapshot" }
- RemovedVertex RemovedVertex { vertex_id: "games.cavu.subscribeSession#snapshot.ack" }
- RemovedVertex RemovedVertex { vertex_id: "games.cavu.subscribeSession#snapshot.view" }
Non-breaking changes (8)
- AddedVertex AddedVertex { vertex_id: "games.cavu.subscribeSession#world" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.subscribeSession#world.ack" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.subscribeSession#world.del" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.subscribeSession#world.del:items" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.subscribeSession#world.reset" }
- AddedVertex AddedVertex { vertex_id: "games.cavu.subscribeSession#world.set" }
- AddedEdge AddedEdge { src: "games.cavu.subscribeSession#world", tgt: "games.cavu.subscribeSession#world.reset", kind: "prop", name: Some("reset") }
- AddedEdge AddedEdge { src: "games.cavu.subscribeSession#world.del", tgt: "games.cavu.subscribeSession#world.del:items", kind: "items", name: None }
Migration guidance
Removed
RemovedVertex { vertex_id: "games.cavu.subscribeSession#snapshot" }RemovedVertex { vertex_id: "games.cavu.subscribeSession#snapshot.ack" }RemovedVertex { vertex_id: "games.cavu.subscribeSession#snapshot.view" }
Added
AddedVertex { vertex_id: "games.cavu.subscribeSession#world" }AddedVertex { vertex_id: "games.cavu.subscribeSession#world.ack" }AddedVertex { vertex_id: "games.cavu.subscribeSession#world.del" }AddedVertex { vertex_id: "games.cavu.subscribeSession#world.del:items" }AddedVertex { vertex_id: "games.cavu.subscribeSession#world.reset" }AddedVertex { vertex_id: "games.cavu.subscribeSession#world.set" }
Notes
- Breaking: RequiredEdgeAdded { vertex_id: "games.cavu.subscribeSession#world", src: "games.cavu.subscribeSession#world", tgt: "games.cavu.subscribeSession#world.ack", kind: "prop", name: Some("ack") }
- Breaking: RequiredEdgeAdded { vertex_id: "games.cavu.subscribeSession#world", src: "games.cavu.subscribeSession#world", tgt: "games.cavu.subscribeSession#world.del", kind: "prop", name: Some("del") }
- Breaking: RequiredEdgeAdded { vertex_id: "games.cavu.subscribeSession#world", src: "games.cavu.subscribeSession#world", tgt: "games.cavu.subscribeSession#world.set", kind: "prop", name: Some("set") }
- Breaking: RequiredEdgeRemoved { vertex_id: "games.cavu.subscribeSession#snapshot", src: "games.cavu.subscribeSession#snapshot", tgt: "games.cavu.subscribeSession#snapshot.ack", kind: "prop", name: Some("ack") }
- Breaking: RequiredEdgeRemoved { vertex_id: "games.cavu.subscribeSession#snapshot", src: "games.cavu.subscribeSession#snapshot", tgt: "games.cavu.subscribeSession#snapshot.view", kind: "prop", name: Some("view") }
- Non-breaking: AddedEdge { src: "games.cavu.subscribeSession#world", tgt: "games.cavu.subscribeSession#world.reset", kind: "prop", name: Some("reset") }
- Non-breaking: AddedEdge { src: "games.cavu.subscribeSession#world.del", tgt: "games.cavu.subscribeSession#world.del:items", kind: "items", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {55
"description": "Bidirectional game session. Server->client messages are below; client->server frames are games.cavu.clientFrame.",66
"errors": [77
{88
"name": "UnknownGame"99
},1010
{1111
"name": "InvalidJoin"1212
},1313
{1414
"name": "RoomInitFailed"1515
},1616
{1717
"name": "ReduceFailed"1818
},1919
{2020
"name": "InvalidFrame"2121
},2222
{2323
"name": "UnknownFrame"2424
}2525
],2626
"message": {2727
"schema": {2828
"refs": [29
"#snapshot"29
"#world"3030
],3131
"type": "union"3232
}3333
},3434
"parameters": {3535
"properties": {},3636
"type": "params"3737
},3838
"type": "subscription"3939
},40
"snapshot": {41
"description": "This viewer's projection of the room state: project(state, viewer). Sent on join and whenever it changes. Never contains other players' secrets.",40
"world": {41
"description": "This viewer's projections of the entities that changed since its last #world frame. The first frame on a connection is a reset (every entity it can see). Never contains other players' secrets.",4242
"properties": {4343
"ack": {44
"description": "Highest intent seq from this viewer that the state reflects.",44
"description": "Highest intent seq from this viewer that the world reflects.",4545
"minimum": 0,4646
"type": "integer"4747
},48
"view": {49
"description": "Typed by the game: games.cavu.<game>.defs#view.",48
"del": {49
"description": "Entities gone, or no longer visible to this viewer.",50
"items": {51
"type": "string"52
},53
"type": "array"54
},55
"reset": {56
"description": "Replace the whole mirror with `set` (the connection's first frame).",57
"type": "boolean"58
},59
"set": {60
"description": "Map of entity id to its projection: { id, kind, parent?, children, ...fields } (typed by the game).",5061
"type": "unknown"5162
}5263
},5364
"required": [5465
"ack",55
"view"66
"set",67
"del"5668
],5769
"type": "object"5870
}5971
},6072
"id": "games.cavu.subscribeSession",6173
"lexicon": 16274
}