ink.igav.galaxius.temp.game

galaxius-gm.igav.ink

Schema Diff

+4 -0

From

CID
bafyreiebjg7ackj...
Indexed At
2026-10-06 07:24 UTC
View this version

To

CID
bafyreievz7brbe2...
Indexed At
2026-10-06 09:56 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 2 non-breaking changes.

Non-Breaking Changes (2)
  • AddedVertex AddedVertex { vertex_id: "ink.igav.galaxius.temp.game#options.anonymous" }
  • AddedEdge AddedEdge { src: "ink.igav.galaxius.temp.game#options", tgt: "ink.igav.galaxius.temp.game#options.anonymous", kind: "prop", name: Some("anonymous") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "ink.igav.galaxius.temp.game#options.anonymous" }

Additional Notes

  • Non-breaking: AddedEdge { src: "ink.igav.galaxius.temp.game#options", tgt: "ink.igav.galaxius.temp.game#options.anonymous", kind: "prop", name: Some("anonymous") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "botSeat": {
5 5
      "properties": {
6 6
        "kind": {
7 7
          "description": "The bot's kind, one of the M1d bot configurations.",
8 8
          "knownValues": [
9 9
            "raider",
10 10
            "balanced",
11 11
            "turtle"
12 12
          ],
13 13
          "maxGraphemes": 32,
14 14
          "type": "string"
15 15
        },
16 16
        "seat": {
17 17
          "description": "The seat the bot plays.",
18 18
          "minimum": 1,
19 19
          "type": "integer"
20 20
        }
21 21
      },
22 22
      "required": [
23 23
        "seat",
24 24
        "kind"
25 25
      ],
26 26
      "type": "object"
27 27
    },
28 28
    "main": {
29 29
      "description": "A Galaxius game, written once by the game master; the game's whole public identity and the commitment its periods hang from.",
30 30
      "key": "any",
31 31
      "record": {
32 32
        "properties": {
33 33
          "botSeats": {
34 34
            "description": "The seats the game master plays with in-process bots.",
35 35
            "items": {
36 36
              "ref": "#botSeat",
37 37
              "type": "ref"
38 38
            },
39 39
            "maxLength": 100,
40 40
            "type": "array"
41 41
          },
42 42
          "chainHead": {
43 43
            "description": "The hash chain's head, sha256 of period zero's secret, as 64 lowercase hex digits.",
44 44
            "maxLength": 64,
45 45
            "type": "string"
46 46
          },
47 47
          "createdAt": {
48 48
            "description": "When the game was created.",
49 49
            "format": "datetime",
50 50
            "type": "string"
51 51
          },
52 52
          "endTick": {
53 53
            "description": "The tick the game ends on, from one; the period count is the ceiling of endTick over periodTicks.",
54 54
            "minimum": 1,
55 55
            "type": "integer"
56 56
          },
57 57
          "engineVersion": {
58 58
            "description": "The engine version the game is pinned to; a changed engine refuses to resume it.",
59 59
            "maxGraphemes": 64,
60 60
            "type": "string"
61 61
          },
62 62
          "liveKey": {
63 63
            "description": "The server's ack key as a did:key, so anyone can check its acknowledgements.",
64 64
            "maxLength": 128,
65 65
            "type": "string"
66 66
          },
67 67
          "map": {
68 68
            "description": "A strongRef to the map record.",
69 69
            "ref": "com.atproto.repo.strongRef",
70 70
            "type": "ref"
71 71
          },
72 72
          "options": {
73 73
            "description": "The creation flags that change the rules.",
74 74
            "ref": "#options",
75 75
            "type": "ref"
76 76
          },
77 77
          "periodTicks": {
78 78
            "description": "How many ticks make one period.",
79 79
            "minimum": 1,
80 80
            "type": "integer"
81 81
          },
82 82
          "preset": {
83 83
            "description": "The game's shape: a short match, or a persistent game that runs for days.",
84 84
            "knownValues": [
85 85
              "match",
86 86
              "persistent"
87 87
            ],
88 88
            "maxGraphemes": 32,
89 89
            "type": "string"
90 90
          },
91 91
          "publicKey": {
92 92
            "description": "The game master's public key, for M4's encrypted periods.",
93 93
            "maxLength": 128,
94 94
            "type": "string"
95 95
          },
96 96
          "ruleset": {
97 97
            "description": "A strongRef to the ruleset record.",
98 98
            "ref": "com.atproto.repo.strongRef",
99 99
            "type": "ref"
100 100
          },
101 101
          "seats": {
102 102
            "description": "The number of seats the game was created with, from two to sixteen.",
103 103
            "maximum": 16,
104 104
            "minimum": 2,
105 105
            "type": "integer"
106 106
          },
107 107
          "startRule": {
108 108
            "description": "How the seats got their start stars; drawn from the game's seed in M3b1.",
109 109
            "knownValues": [
110 110
              "drawn"
111 111
            ],
112 112
            "maxGraphemes": 32,
113 113
            "type": "string"
114 114
          },
115 115
          "tickMs": {
116 116
            "description": "Real milliseconds per tick, fixed for the game.",
117 117
            "minimum": 1,
118 118
            "type": "integer"
119 119
          }
120 120
        },
121 121
        "required": [
122 122
          "map",
123 123
          "ruleset",
124 124
          "preset",
125 125
          "tickMs",
126 126
          "periodTicks",
127 127
          "endTick",
128 128
          "seats",
129 129
          "botSeats",
130 130
          "options",
131 131
          "startRule",
132 132
          "engineVersion",
133 133
          "chainHead",
134 134
          "liveKey",
135 135
          "createdAt"
136 136
        ],
137 137
        "type": "object"
138 138
      },
139 139
      "type": "record"
140 140
    },
141 141
    "options": {
142 142
      "properties": {
143 +
        "anonymous": {
144 +
          "description": "Whether seats after the first may be taken without an ATProto account; absent in games from before identity.",
145 +
          "type": "boolean"
146 +
        },
143 147
        "diplomacy": {
144 148
          "description": "The diplomacy mode the ruleset's flags.diplomacy is set to; absent keeps the ruleset's own.",
145 149
          "knownValues": [
146 150
            "none",
147 151
            "open",
148 152
            "fixed_teams"
149 153
          ],
150 154
          "maxGraphemes": 32,
151 155
          "type": "string"
152 156
        },
153 157
        "redirect": {
154 158
          "description": "Whether fleets in flight may always be redirected, overriding the ruleset's redirect gate.",
155 159
          "type": "boolean"
156 160
        },
157 161
        "rich": {
158 162
          "description": "Whether the game has the rich start: more starting money and capacity.",
159 163
          "type": "boolean"
160 164
        }
161 165
      },
162 166
      "required": [
163 167
        "rich",
164 168
        "redirect"
165 169
      ],
166 170
      "type": "object"
167 171
    }
168 172
  },
169 173
  "description": "A Galaxius game: its map, its ruleset and the settings a server needs to run it.",
170 174
  "id": "ink.igav.galaxius.temp.game",
171 175
  "lexicon": 1
172 176
}

Compare Other Versions

Lexicon Garden

@