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
  "id": "space.remanso.recording",
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
          "audio",
11 11
          "createdAt"
12 12
        ],
13 13
        "properties": {
14 14
          "audio": {
15 15
            "type": "blob",
16 16
            "accept": [
17 17
              "audio/*",
18 18
              "video/mp4",
19 19
              "video/webm"
20 20
            ],
21 21
            "maxSize": 50000000,
22 22
            "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."
23 23
          },
24 24
          "title": {
25 25
            "type": "string",
26 26
            "maxLength": 1000
27 27
          },
28 -
          "credits": {
29 -
            "type": "array",
30 -
            "items": {
31 -
              "ref": "#credit",
32 -
              "type": "ref"
33 -
            },
34 -
            "maxLength": 64,
35 -
            "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."
36 -
          },
37 28
          "createdAt": {
38 29
            "type": "string",
39 30
            "format": "datetime"
40 31
          },
41 32
          "recordedAt": {
42 33
            "type": "string",
43 34
            "format": "datetime",
44 35
            "description": "When the audio was originally captured — a past stream's air date, not the upload time."
45 36
          },
46 37
          "durationSec": {
47 38
            "type": "integer",
48 39
            "description": "Playback length in seconds."
49 40
          }
50 41
        }
51 42
      },
52 -
      "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."
53 -
    },
54 -
    "credit": {
55 -
      "type": "object",
56 -
      "required": [
57 -
        "title",
58 -
        "creator",
59 -
        "license",
60 -
        "licenseUrl",
61 -
        "sourceUrl"
62 -
      ],
63 -
      "properties": {
64 -
        "title": {
65 -
          "type": "string",
66 -
          "maxLength": 1000
67 -
        },
68 -
        "creator": {
69 -
          "type": "string",
70 -
          "maxLength": 1000
71 -
        },
72 -
        "license": {
73 -
          "type": "string",
74 -
          "maxLength": 64,
75 -
          "description": "The licence's short id, e.g. \"by\"."
76 -
        },
77 -
        "sourceUrl": {
78 -
          "type": "string",
79 -
          "format": "uri",
80 -
          "description": "The work's landing page at its provider."
81 -
        },
82 -
        "licenseUrl": {
83 -
          "type": "string",
84 -
          "format": "uri"
85 -
        }
86 -
      },
87 -
      "description": "One openly licensed work used in the recording, and where its terms live."
43 +
      "description": "An audio recording — a past stream, a podcast episode, a voice note — referenced from a Remanso note by at-uri."
88 44
    }
89 45
  },
90 46
  "$type": "com.atproto.lexicon.schema",
91 47
  "lexicon": 1
92 48
}

Compare Other Versions

Lexicon Garden

@