2024-11-23 19:28:52 -05:00
NIP-63
2024-11-23 17:55:35 -05:00
======
2024-11-25 15:57:56 -05:00
Build Your Own Adventure
------------------------
2024-11-23 17:55:35 -05:00
`draft` `optional`
2024-11-25 15:57:56 -05:00
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 the root event for the story, while `kind:297` represents individual scenes within the narrative.
2024-11-23 17:55:35 -05:00
2024-11-25 15:57:56 -05:00
The idea is to emulate "choose your own adventure" books, where each reader's journey through the story is unique.
2024-11-23 17:55:35 -05:00
2024-11-25 15:57:56 -05:00
Story events can include an optional `title` tag and multiple `option` tags that point to the next possible scenes.
2024-11-23 17:55:35 -05:00
2024-11-25 15:57:56 -05:00
Clients SHOULD render the options in a way that allows users to select and seamlessly navigate to the corresponding posts.
### Example for kind:296 (Root Scene)
2024-11-23 17:55:35 -05:00
```jsonc
{
"kind": 296,
2024-11-23 19:25:36 -05:00
"content": "< the beginning of the story > ",
2024-11-23 17:55:35 -05:00
"tags": [
["title", "< short title for this part of the story > "],
["option", "< description > ", "< event_id > ", "< relay_hint > "],
["option", "< description > ", "< event_id > ", "< relay_hint > "],
// ...
]
}
```
2024-11-25 15:57:56 -05:00
### Example for kind:297 (Scene)
2024-11-23 19:25:36 -05:00
```jsonc
{
"kind": 297,
"content": "< continuation of the story > ",
"tags": [
["title", "< short title for this part of the story > "],
["option", "< description > ", "< event_id > ", "< relay_hint > "],
["option", "< description > ", "< event_id > ", "< relay_hint > "],
// ...
]
}
```
2024-11-25 15:57:56 -05:00
The story concludes when no `option` tags are present.
2024-11-23 19:25:36 -05:00
2024-11-25 15:57:56 -05:00
The `.content` field SHOULD follow the same formatting rules as `kind:1` .