at.atjam.submission

atjam.at

Schema Diff

+7 -3

From

CID
bafyreifewnstiwt...
Indexed At
2026-05-27 04:28 UTC
View this version

To

CID
bafyreifxahevhpj...
Indexed At
2026-06-05 04:20 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 2 non-breaking changes.

Breaking Changes (1)
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "at.atjam.submission:body", src: "at.atjam.submission:body", tgt: "at.atjam.submission:body.payload", kind: "prop", name: Some("payload") }
Non-Breaking Changes (2)
  • AddedVertex AddedVertex { vertex_id: "at.atjam.submission:body.url" }
  • AddedEdge AddedEdge { src: "at.atjam.submission:body", tgt: "at.atjam.submission:body.url", kind: "prop", name: Some("url") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "at.atjam.submission:body.url" }

Additional Notes

  • Breaking: RequiredEdgeRemoved { vertex_id: "at.atjam.submission:body", src: "at.atjam.submission:body", tgt: "at.atjam.submission:body.payload", kind: "prop", name: Some("payload") }
  • Non-breaking: AddedEdge { src: "at.atjam.submission:body", tgt: "at.atjam.submission:body.url", kind: "prop", name: Some("url") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "Declares a submission by the record creator to the referenced round.",
6 6
      "key": "tid",
7 7
      "record": {
8 8
        "properties": {
9 9
          "createdAt": {
10 10
            "format": "datetime",
11 11
            "type": "string"
12 12
          },
13 13
          "note": {
14 14
            "description": "Optional caption/description from the submitter.",
15 15
            "maxGraphemes": 300,
16 16
            "maxLength": 3000,
17 17
            "type": "string"
18 18
          },
19 19
          "payload": {
20 -
            "description": "Strong-ref to the deliverable record on its native ATProto app. The referenced record's $type SHOULD appear in the round's acceptedSubmissionTypes.",
20 +
            "description": "Preferred deliverable: a strong-ref to the record on its native ATProto app. The referenced record's $type SHOULD appear in the round's acceptedSubmissionTypes.",
21 21
            "ref": "com.atproto.repo.strongRef",
22 22
            "type": "ref"
23 23
          },
24 24
          "round": {
25 25
            "description": "Strong-ref to the at.atjam.round record being submitted to.",
26 26
            "ref": "com.atproto.repo.strongRef",
27 27
            "type": "ref"
28 +
          },
29 +
          "url": {
30 +
            "description": "Fallback deliverable for work not on ATProto: a plain link (itch.io build, hosted doc, etc.). Unverifiable and mutable, so prefer payload when the deliverable is a record. Ignored when payload is present.",
31 +
            "format": "uri",
32 +
            "type": "string"
28 33
          }
29 34
        },
30 35
        "required": [
31 36
          "round",
32 -
          "payload",
33 37
          "createdAt"
34 38
        ],
35 39
        "type": "object"
36 40
      },
37 41
      "type": "record"
38 42
    }
39 43
  },
40 -
  "description": "A participant's submission to a round. atjam does not host the deliverable; the submission strong-refs a record on whichever ATProto app owns the data (plyr.fm track, standard.site post, etc.). The submitter's DID is implicit (the record creator).",
44 +
  "description": "A participant's submission to a round. atjam does not host the deliverable; it points at it. The strong way is `payload` — a strong-ref to a record on whichever ATProto app owns the data (plyr.fm track, standard.site post, etc.), which is content-addressed, verifiable, and portable. The fallback is `url` — a plain link, for deliverables that don't live on ATProto yet (an itch.io build, a hosted doc). Prefer payload; `url` is the humble alternative. The lexicon can't express \"one-of\" across fields, so both are optional here and the \"at least one\" rule is enforced in code (Submission.getDeliverable). The submitter's DID is implicit (the record creator).",
41 45
  "id": "at.atjam.submission",
42 46
  "lexicon": 1
43 47
}

Compare Other Versions

Lexicon Garden

@