space.remanso.recording

apoena.dev

Schema Diff

+1 -45

From

CID
bafyreie2zjvhgiw...
Indexed At
2026-08-02 19:35 UTC
View this version

To

CID
bafyreifj4rbippi...
Indexed At
2026-08-02 19:32 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

16 breaking changes, 0 non-breaking changes.

Breaking Changes (16)
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "space.remanso.recording#credit", src: "space.remanso.recording#credit", tgt: "space.remanso.recording#credit.licenseUrl", kind: "prop", name: Some("licenseUrl") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "space.remanso.recording#credit", src: "space.remanso.recording#credit", tgt: "space.remanso.recording#credit.creator", kind: "prop", name: Some("creator") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "space.remanso.recording#credit", src: "space.remanso.recording#credit", tgt: "space.remanso.recording#credit.license", kind: "prop", name: Some("license") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "space.remanso.recording#credit", src: "space.remanso.recording#credit", tgt: "space.remanso.recording#credit.sourceUrl", kind: "prop", name: Some("sourceUrl") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "space.remanso.recording#credit", src: "space.remanso.recording#credit", tgt: "space.remanso.recording#credit.title", kind: "prop", name: Some("title") }
  • RemovedVertex RemovedVertex { vertex_id: "space.remanso.recording#credit" }
  • RemovedVertex RemovedVertex { vertex_id: "space.remanso.recording#credit.creator" }
  • RemovedVertex RemovedVertex { vertex_id: "space.remanso.recording#credit.license" }
  • RemovedVertex RemovedVertex { vertex_id: "space.remanso.recording#credit.licenseUrl" }
  • RemovedVertex RemovedVertex { vertex_id: "space.remanso.recording#credit.sourceUrl" }
  • RemovedVertex RemovedVertex { vertex_id: "space.remanso.recording#credit.title" }
  • RemovedVertex RemovedVertex { vertex_id: "space.remanso.recording:body.credits" }
  • RemovedVertex RemovedVertex { vertex_id: "space.remanso.recording:body.credits:items" }
  • RemovedEdge RemovedEdge { src: "space.remanso.recording:body", tgt: "space.remanso.recording:body.credits", kind: "prop", name: Some("credits") }
  • RemovedEdge RemovedEdge { src: "space.remanso.recording:body.credits", tgt: "space.remanso.recording:body.credits:items", kind: "items", name: None }
  • RemovedEdge RemovedEdge { src: "space.remanso.recording:body.credits:items", tgt: "space.remanso.recording#credit", kind: "ref", name: None }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "space.remanso.recording#credit" }
  • RemovedVertex { vertex_id: "space.remanso.recording#credit.creator" }
  • RemovedVertex { vertex_id: "space.remanso.recording#credit.license" }
  • RemovedVertex { vertex_id: "space.remanso.recording#credit.licenseUrl" }
  • RemovedVertex { vertex_id: "space.remanso.recording#credit.sourceUrl" }
  • RemovedVertex { vertex_id: "space.remanso.recording#credit.title" }
  • RemovedVertex { vertex_id: "space.remanso.recording:body.credits" }
  • RemovedVertex { vertex_id: "space.remanso.recording:body.credits:items" }

Additional Notes

  • Breaking: RequiredEdgeRemoved { vertex_id: "space.remanso.recording#credit", src: "space.remanso.recording#credit", tgt: "space.remanso.recording#credit.licenseUrl", kind: "prop", name: Some("licenseUrl") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "space.remanso.recording#credit", src: "space.remanso.recording#credit", tgt: "space.remanso.recording#credit.creator", kind: "prop", name: Some("creator") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "space.remanso.recording#credit", src: "space.remanso.recording#credit", tgt: "space.remanso.recording#credit.license", kind: "prop", name: Some("license") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "space.remanso.recording#credit", src: "space.remanso.recording#credit", tgt: "space.remanso.recording#credit.sourceUrl", kind: "prop", name: Some("sourceUrl") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "space.remanso.recording#credit", src: "space.remanso.recording#credit", tgt: "space.remanso.recording#credit.title", kind: "prop", name: Some("title") }
  • Breaking: RemovedEdge { src: "space.remanso.recording:body", tgt: "space.remanso.recording:body.credits", kind: "prop", name: Some("credits") }
  • Breaking: RemovedEdge { src: "space.remanso.recording:body.credits", tgt: "space.remanso.recording:body.credits:items", kind: "items", name: None }
  • Breaking: RemovedEdge { src: "space.remanso.recording:body.credits:items", tgt: "space.remanso.recording#credit", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 -
    "credit": {
5 -
      "description": "One openly licensed work used in the recording, and where its terms live.",
6 -
      "properties": {
7 -
        "creator": {
8 -
          "maxLength": 1000,
9 -
          "type": "string"
10 -
        },
11 -
        "license": {
12 -
          "description": "The licence's short id, e.g. \"by\".",
13 -
          "maxLength": 64,
14 -
          "type": "string"
15 -
        },
16 -
        "licenseUrl": {
17 -
          "format": "uri",
18 -
          "type": "string"
19 -
        },
20 -
        "sourceUrl": {
21 -
          "description": "The work's landing page at its provider.",
22 -
          "format": "uri",
23 -
          "type": "string"
24 -
        },
25 -
        "title": {
26 -
          "maxLength": 1000,
27 -
          "type": "string"
28 -
        }
29 -
      },
30 -
      "required": [
31 -
        "title",
32 -
        "creator",
33 -
        "license",
34 -
        "licenseUrl",
35 -
        "sourceUrl"
36 -
      ],
37 -
      "type": "object"
38 -
    },
39 4
    "main": {
40 -
      "description": "An audio recording — a past stream, a podcast episode, a voice note. A recording at rkey R is the recording of the space.remanso.note at rkey R in the same repo: one note, at most one recording, paired by convention rather than by a field, so a reader that knows the note's did and rkey reaches the audio with a single getRecord. A recording whose rkey matches no note stands alone and belongs to nobody. Legacy path: a recording is also referenced from a note by at-uri embedded in the note's content.",
5 +
      "description": "An audio recording — a past stream, a podcast episode, a voice note — referenced from a Remanso note by at-uri.",
41 6
      "key": "tid",
42 7
      "record": {
43 8
        "properties": {
44 9
          "audio": {
45 10
            "accept": [
46 11
              "audio/*",
47 12
              "video/mp4",
48 13
              "video/webm"
49 14
            ],
50 15
            "description": "The recording itself. video/mp4 and video/webm are accepted alongside audio/* because a PDS sniffs the container rather than trusting the upload's Content-Type: an audio-only MP4 or M4A sniffs as video/mp4, and a sniffer that reads no further than the EBML magic calls an audio-only WebM video/webm.",
51 16
            "maxSize": 50000000,
52 17
            "type": "blob"
53 18
          },
54 19
          "createdAt": {
55 20
            "format": "datetime",
56 21
            "type": "string"
57 -
          },
58 -
          "credits": {
59 -
            "description": "Attribution for openly licensed music mixed into the recording. Only licences that require it are listed — a CC0 track is deliberately absent, because CC0 asks for nothing and an entry here would imply otherwise.",
60 -
            "items": {
61 -
              "ref": "#credit",
62 -
              "type": "ref"
63 -
            },
64 -
            "maxLength": 64,
65 -
            "type": "array"
66 22
          },
67 23
          "durationSec": {
68 24
            "description": "Playback length in seconds.",
69 25
            "type": "integer"
70 26
          },
71 27
          "recordedAt": {
72 28
            "description": "When the audio was originally captured — a past stream's air date, not the upload time.",
73 29
            "format": "datetime",
74 30
            "type": "string"
75 31
          },
76 32
          "title": {
77 33
            "maxLength": 1000,
78 34
            "type": "string"
79 35
          }
80 36
        },
81 37
        "required": [
82 38
          "audio",
83 39
          "createdAt"
84 40
        ],
85 41
        "type": "object"
86 42
      },
87 43
      "type": "record"
88 44
    }
89 45
  },
90 46
  "id": "space.remanso.recording",
91 47
  "lexicon": 1
92 48
}

Compare Other Versions

Lexicon Garden

@