app.golfthesky.round

golfthesky.app

Schema Diff

+4 -1

From

CID
bafyreicqqmuaqew...
Indexed At
2026-10-09 05:40 UTC
View this version

To

CID
bafyreihfa7qt2by...
Indexed At
2026-10-09 06:02 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 0 non-breaking changes.

Breaking Changes (1)
  • ConstraintTightened ConstraintTightened { vertex_id: "app.golfthesky.round#hole.holeId", sort: "knownValues", old_value: "[\"opening-drive\",\"dogleg\",\"sky-ramp\"]", new_value: "[\"opening-drive\",\"dogleg\",\"sky-ramp\",\"slick-slope\",\"bunker-alley\",\"island-hop\"]" }

Migration Guidance

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "app.golfthesky.round#hole.holeId", sort: "knownValues", old_value: "[\"opening-drive\",\"dogleg\",\"sky-ramp\"]", new_value: "[\"opening-drive\",\"dogleg\",\"sky-ramp\",\"slick-slope\",\"bunker-alley\",\"island-hop\"]" }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "hole": {
5 5
      "properties": {
6 6
        "holeId": {
7 7
          "description": "Permanent identity of the hole within the course.",
8 8
          "knownValues": [
9 9
            "opening-drive",
10 10
            "dogleg",
11 -
            "sky-ramp"
11 +
            "sky-ramp",
12 +
            "slick-slope",
13 +
            "bunker-alley",
14 +
            "island-hop"
12 15
          ],
13 16
          "maxLength": 64,
14 17
          "type": "string"
15 18
        },
16 19
        "shots": {
17 20
          "description": "The whole hole as the only input the game takes. Comma-separated `<dtick>.<yaw>.<pitch>.<power>` entries: dtick is 120 Hz ticks since the previous shot, yaw is milliradians (0–6283), pitch whole degrees, power 1–100. Example: `360.1571.24.80,540.1600.2.30`.",
18 21
          "maxLength": 8000,
19 22
          "type": "string"
20 23
        },
21 24
        "strokes": {
22 25
          "description": "Advisory stroke count, including out-of-bounds penalties.",
23 26
          "minimum": 0,
24 27
          "type": "integer"
25 28
        },
26 29
        "ticks": {
27 30
          "description": "Advisory: the tick the ball dropped. Absent if the hole was never finished.",
28 31
          "minimum": 1,
29 32
          "type": "integer"
30 33
        }
31 34
      },
32 35
      "required": [
33 36
        "holeId",
34 37
        "shots",
35 38
        "strokes"
36 39
      ],
37 40
      "type": "object"
38 41
    },
39 42
    "main": {
40 43
      "description": "One Golf the Sky round, published by the player into their own repo. The record stores every shot rather than a score: the game's ball physics are deterministic, so re-simulating the shots reproduces the round exactly. Owning the record is the identity proof, and replaying it is the score proof — strokes and ticks in this record are advisory and never trusted by a leaderboard.",
41 44
      "key": "tid",
42 45
      "record": {
43 46
        "properties": {
44 47
          "courseId": {
45 48
            "description": "Permanent identity of the course played. Append-only: ids are never reordered, renamed, or reused.",
46 49
            "knownValues": [
47 50
              "skyline-links"
48 51
            ],
49 52
            "maxLength": 64,
50 53
            "type": "string"
51 54
          },
52 55
          "createdAt": {
53 56
            "format": "datetime",
54 57
            "type": "string"
55 58
          },
56 59
          "field": {
57 60
            "description": "How many players were in that live round.",
58 61
            "minimum": 1,
59 62
            "type": "integer"
60 63
          },
61 64
          "holes": {
62 65
            "items": {
63 66
              "ref": "#hole",
64 67
              "type": "ref"
65 68
            },
66 69
            "maxLength": 18,
67 70
            "type": "array"
68 71
          },
69 72
          "mode": {
70 73
            "description": "solo: against local bots. live: against other players on a synced clock — the only mode in which placing means anything.",
71 74
            "knownValues": [
72 75
              "solo",
73 76
              "live"
74 77
            ],
75 78
            "type": "string"
76 79
          },
77 80
          "placing": {
78 81
            "description": "Advisory finishing position in a live round, 1 = won.",
79 82
            "minimum": 1,
80 83
            "type": "integer"
81 84
          },
82 85
          "simVersion": {
83 86
            "description": "Which physics produced these shots. A verifier must replay under the matching version or refuse the round.",
84 87
            "minimum": 1,
85 88
            "type": "integer"
86 89
          }
87 90
        },
88 91
        "required": [
89 92
          "courseId",
90 93
          "simVersion",
91 94
          "holes",
92 95
          "createdAt"
93 96
        ],
94 97
        "type": "object"
95 98
      },
96 99
      "type": "record"
97 100
    }
98 101
  },
99 102
  "id": "app.golfthesky.round",
100 103
  "lexicon": 1
101 104
}

Compare Other Versions

Lexicon Garden

@