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

Backward Compatible

Backward compatible. 2 non-breaking changes.

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

  • Non-breaking: AddedEdge { src: "at.atjam.submission:body", tgt: "at.atjam.submission:body.url", kind: "prop", name: Some("url") }
1 1
{
2 2
  "id": "at.atjam.submission",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "round",
11 -
          "payload",
12 11
          "createdAt"
13 12
        ],
14 13
        "properties": {
14 +
          "url": {
15 +
            "type": "string",
16 +
            "format": "uri",
17 +
            "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."
18 +
          },
15 19
          "note": {
16 20
            "type": "string",
17 21
            "maxLength": 3000,
18 22
            "description": "Optional caption/description from the submitter.",
19 23
            "maxGraphemes": 300
20 24
          },
21 25
          "round": {
22 26
            "ref": "com.atproto.repo.strongRef",
23 27
            "type": "ref",
24 28
            "description": "Strong-ref to the at.atjam.round record being submitted to."
25 29
          },
26 30
          "payload": {
27 31
            "ref": "com.atproto.repo.strongRef",
28 32
            "type": "ref",
29 -
            "description": "Strong-ref to the deliverable record on its native ATProto app. The referenced record's $type SHOULD appear in the round's acceptedSubmissionTypes."
33 +
            "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."
30 34
          },
31 35
          "createdAt": {
32 36
            "type": "string",
33 37
            "format": "datetime"
34 38
          }
35 39
        }
36 40
      },
37 41
      "description": "Declares a submission by the record creator to the referenced round."
38 42
    }
39 43
  },
40 44
  "$type": "com.atproto.lexicon.schema",
41 45
  "lexicon": 1,
42 -
  "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)."
46 +
  "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)."
43 47
}

Compare Other Versions

Lexicon Garden

@