From
bafyreibowlidrg7wn6yga3tmxh4dbmvuk7udnmbm5pjrklinmystp42htu
indexed 2026-11-06 13:46 UTC
View this version
To
bafyreibtryxww4sm5lbvqxncm4ctl2ceeeaxth23deoyv35gcowugqgfqi
indexed 2026-11-07 06:56 UTC
View this version
Compatibility
backward compatible No changes detected.
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {55
"description": "Server-to-server only. Called by the Newnal media service with a service JWT (`iss` = the configured media DID, `lxm` = this method). Apps must not call it.",66
"errors": [77
{88
"name": "InvalidRequest"99
},1010
{1111
"name": "AuthenticationRequired"1212
},1313
{1414
"name": "MediaAuthUnavailable"1515
},1616
{1717
"name": "MediaInboxUnavailable"1818
}1919
],2020
"input": {2121
"encoding": "application/json",2222
"schema": {23
"description": "Envelope serviceKey, spaceKey, resourceId and revision must equal the snapshot serviceKey, spaceKey, artworkId and revision; compositionVersion must also match. These cross-field equality constraints are enforced by the receiver, not expressible in Lexicon. occurredAt is checked by the receiver with Zod datetime({ offset: true }). The receiver also accepts Zod datetime forms with omitted seconds or a colonless offset; Lexicon datetime requires seconds and a colon in offsets. The generated Lexicon validator requires safe integers, while Zod accepts positive integer-valued numbers beyond that range. Referenced snapshot objects reserve $type for their Lexicon type; Zod passes through arbitrary snapshot fields, including $type. These validator differences do not change receiver behavior.",23
"description": "The envelope's serviceKey, spaceKey, resourceId, revision and compositionVersion must equal the snapshot's serviceKey, spaceKey, artworkId, revision and compositionVersion (the receiver checks this). occurredAt is a datetime with an offset.",2424
"properties": {2525
"compositionVersion": {2626
"minimum": 1,2727
"type": "integer"2828
},2929
"event": {3030
"description": "failed means a version failed while no published version exists. Unknown nonempty event values are accepted but ignored without storing or applying the event.",3131
"knownValues": [3232
"created",3333
"updated",3434
"failed"3535
],3636
"minLength": 1,3737
"type": "string"3838
},3939
"eventId": {4040
"minLength": 1,4141
"type": "string"4242
},4343
"occurredAt": {4444
"format": "datetime",4545
"type": "string"4646
},4747
"resource": {4848
"ref": "ai.newnal.illi.media.defs#artworkEventSnapshot",4949
"type": "ref"5050
},5151
"resourceId": {5252
"minLength": 1,5353
"type": "string"5454
},5555
"resourceType": {5656
"const": "artwork",5757
"type": "string"5858
},5959
"revision": {6060
"minimum": 1,6161
"type": "integer"6262
},6363
"serviceKey": {6464
"minLength": 1,6565
"type": "string"6666
},6767
"spaceKey": {6868
"minLength": 1,6969
"type": "string"7070
}7171
},7272
"required": [7373
"eventId",7474
"occurredAt",7575
"event",7676
"serviceKey",7777
"spaceKey",7878
"resourceType",7979
"resourceId",8080
"revision",8181
"compositionVersion",8282
"resource"8383
],8484
"type": "object"8585
}8686
},8787
"output": {8888
"encoding": "application/json",8989
"schema": {9090
"properties": {},9191
"type": "object"9292
}9393
},9494
"type": "procedure"9595
}9696
},9797
"id": "ai.newnal.illi.media.receiveArtworkEvent",9898
"lexicon": 19999
}