Why Nostr? What is Njump?
2025-03-27 20:53:05
in reply to

JoeRuelle on Nostr: Over there the protocol simply mandates both backwards and forwards compatibility. ...

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.

So let's say in a lexicon called:

com.example.post

I 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:

"author": {"type": "ref", "ref": "com.example.user#/defs/profile"}

And that references:

"profile": {
"type": "object",
"properties": {
"handle": {"type": "string"},
"displayName": {"type": "string", "maxLength": 256},
"avatar": {"type": "string", "format": "uri", "nullable": true}
}

Then it's all just lego blocks and you can worry about them block by block.

But 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.

Author Public Key
npub1hyxredcavc6ruqgsf4wf4hmakpwnvefmzaspl7dja6a2sxlx0q3sxwtqnx