Removes trademark issues and makes all content modifiable to make it easier to integrate multiple worlds

This commit is contained in:
Vitor Pamplona 2024-11-25 17:37:33 -05:00
parent e87baf2651
commit eea63b11c1

40
63.md
View File

@ -1,54 +1,54 @@
NIP-63 NIP-63
====== ======
Build Your Own Adventure Interactive Stories
------------------------ -------------------
`draft` `optional` `draft` `optional`
This NIP introduces `kind:296` and `kind:297` as text-based notes designed to create interactive stories. These notes include options for navigating to subsequent notes, allowing readers to continue exploring the story. `Kind:296` serves as starting events for the reader, while `kind:297` represents individual scenes within the narrative. This NIP introduces `kind:30296` and `kind:30297` as living notes designed to create interactive stories. These notes include `option` tags for navigating to subsequent notes, allowing readers to continue exploring the story. `Kind:30296` serves as starting events for the reader, while `kind:30297` represents individual scenes within the narrative.
The idea is to emulate "choose your own adventure" books, where each reader's journey through the story is unique. The modularity of this approach allows Scenes from multiple authors to be combined into bigger stories.
Scene events MAY include an optional `title` tag and multiple `option` tags that point to the next possible scenes. ### Prologue (kind:30296)
Clients SHOULD render the options in a way that allows users to select and seamlessly navigate to the corresponding posts.
### Example for kind:296 (Prologue)
Prologue events are entry points in the story. Prologue events are entry points in the story.
They SHOULD contain `title`, `summary` and `image` to help clients render a preview of the story. They SHOULD contain `title`, `summary` and `image` to help clients render a preview of the story.
`option` tags include a description for the action button, an address and the relay to find the next scene.
```jsonc ```jsonc
{ {
"kind": 296, "kind": 30296,
"content": "<the beginning of the story>", "content": "<the beginning of the story>",
"tags": [ "tags": [
["d", "<unique identifier>"],
["title", "<short title for the prologue>"], ["title", "<short title for the prologue>"],
["summary", "<summary for preview>"], ["summary", "<summary for preview>"],
["image", "<image url for preview>"], ["image", "<image url for preview>"],
["option", "<description>", "<event_id>", "<relay_hint>"], ["option", "<description>", "<kind:pubkey:d-tag>", "<relay_hint>"],
["option", "<description>", "<event_id>", "<relay_hint>"], ["option", "<description>", "<kind:pubkey:d-tag>", "<relay_hint>"],
// ... // ...
] ]
} }
``` ```
### Example for kind:297 (Scene) ### Scene (kind:30297)
Scenes describe a given point in a story with potential options. Scenes describe a given point in a story with potential options and SHOULD include an optional `title` tag.
```jsonc ```jsonc
{ {
"kind": 297, "kind": 30297,
"content": "<description of the scene>", "content": "<description of the scene>",
"tags": [ "tags": [
["d", "<unique identifier>"],
["title", "<short title for this scene>"], ["title", "<short title for this scene>"],
["option", "<description>", "<event_id>", "<relay_hint>"], ["option", "<description>", "<kind:pubkey:d-tag>", "<relay_hint>"],
["option", "<description>", "<event_id>", "<relay_hint>"], ["option", "<description>", "<kind:pubkey:d-tag>", "<relay_hint>"],
// ... // ...
] ]
} }
@ -56,11 +56,11 @@ Scenes describe a given point in a story with potential options.
The story concludes when no `option` tags are present. The story concludes when no `option` tags are present.
The `.content` field SHOULD follow the same formatting rules as `kind:1`. The `.content` field does not accept markdown.
## Reading State ## Reading State
Kind `30296` stores the latest state of the story. Kind `30298` stores the latest state of the story.
The `d` tag of the replaceable event MUST match the root event's id. The `d` tag of the replaceable event MUST match the root event's id.
@ -68,7 +68,7 @@ The `e` tag points to the latest scene the user has read.
```jsonc ```jsonc
{ {
"kind": 30296, "kind": 30298,
"tags": [ "tags": [
["d", "<root_event_id>"], ["d", "<root_event_id>"],