Event JSON
{
"id": "b4166c32db12172b94bbaff3453fadb5435e8489c4c0e8eed495addeb00bf221",
"pubkey": "b90c3cb71d66343e01104d5c9adf7db05d36653b17601ff9b2eebaa81be67823",
"created_at": 1743108785,
"kind": 1,
"tags": [
[
"imeta",
"url https://image.nostr.build/3c88c80fdcefd9140890102d9ef06ac30f416e4938d63b10d0a47c95cc083b5a.png",
"ox 3c88c80fdcefd9140890102d9ef06ac30f416e4938d63b10d0a47c95cc083b5a",
"x 8aafc18256d913587aa5c4410ebdd2dec73c09dc7632864a53d0dff322607c70",
"m image/png",
"dim 1608x1038",
"bh LBSigQt7t7?b~qWBRjj[RjofofRj",
"blurhash LBSigQt7t7?b~qWBRjj[RjofofRj",
"thumb https://image.nostr.build/thumb/3c88c80fdcefd9140890102d9ef06ac30f416e4938d63b10d0a47c95cc083b5a.png"
],
[
"e",
"366fe02bd10911c59b7eb9e6adc4c96e17e7c0b44f23b30fa8f72ed3cd067334",
"wss://relay.nostr.band/",
"root",
"b90c3cb71d66343e01104d5c9adf7db05d36653b17601ff9b2eebaa81be67823"
],
[
"e",
"a315b3fc70311060b89040efb8ac2f23f90cc7baa3766844d9e8575df59f9b06",
"wss://relay.nostr.band/",
"reply",
"a9434ee165ed01b286becfc2771ef1705d3537d051b387288898cc00d5c885be"
],
[
"p",
"97c70a44366a6535c145b333f973ea86dfdc2d7a99da618c40c64705ad98e322"
],
[
"p",
"a9434ee165ed01b286becfc2771ef1705d3537d051b387288898cc00d5c885be"
]
],
"content": "Over there the protocol simply mandates both backwards and forwards compatibility. But often times the thing to is to reference another lexicon, or to create a sub schema.\n\nSo let's say in a lexicon called: \n\ncom.example.post \n\nI have an author field, and for that field I want to reference the profile definition in another lexicon called com.example.user, I pop in:\n\n \"author\": {\"type\": \"ref\", \"ref\": \"com.example.user#/defs/profile\"}\n\nAnd that references:\n\n\"profile\": {\n \"type\": \"object\",\n \"properties\": {\n \"handle\": {\"type\": \"string\"},\n \"displayName\": {\"type\": \"string\", \"maxLength\": 256},\n \"avatar\": {\"type\": \"string\", \"format\": \"uri\", \"nullable\": true}\n }\n \nThen it's all just lego blocks and you can worry about them block by block. \n\nBut even if you have a breaking change and you come up with a new lexicon for it, all the other apps using the old lexicon will continue to use it, it can't be deleted, so you've not broken anything on their end.\n\nhttps://image.nostr.build/3c88c80fdcefd9140890102d9ef06ac30f416e4938d63b10d0a47c95cc083b5a.png",
"sig": "889e5732200d8d1c197f56cce162fdceeac0d73683711b8b48b5040918d9ba1ca3e38e4f8068e7c6015a587ed6917211aab3338da42aef627dbdcae98450096b"
}