mirror of
https://github.com/nostr-protocol/nips.git
synced 2024-12-23 00:45:53 -05:00
Removes trademark issues and makes all content modifiable to make it easier to integrate multiple worlds
This commit is contained in:
parent
e87baf2651
commit
eea63b11c1
40
63.md
40
63.md
|
@ -1,54 +1,54 @@
|
|||
NIP-63
|
||||
======
|
||||
|
||||
Build Your Own Adventure
|
||||
------------------------
|
||||
Interactive Stories
|
||||
-------------------
|
||||
|
||||
`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.
|
||||
|
||||
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 (kind:30296)
|
||||
|
||||
Prologue events are entry points in 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
|
||||
{
|
||||
"kind": 296,
|
||||
"kind": 30296,
|
||||
"content": "<the beginning of the story>",
|
||||
"tags": [
|
||||
["d", "<unique identifier>"],
|
||||
["title", "<short title for the prologue>"],
|
||||
["summary", "<summary for preview>"],
|
||||
["image", "<image url for preview>"],
|
||||
|
||||
["option", "<description>", "<event_id>", "<relay_hint>"],
|
||||
["option", "<description>", "<event_id>", "<relay_hint>"],
|
||||
["option", "<description>", "<kind:pubkey:d-tag>", "<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
|
||||
{
|
||||
"kind": 297,
|
||||
"kind": 30297,
|
||||
"content": "<description of the scene>",
|
||||
"tags": [
|
||||
["d", "<unique identifier>"],
|
||||
["title", "<short title for this scene>"],
|
||||
|
||||
["option", "<description>", "<event_id>", "<relay_hint>"],
|
||||
["option", "<description>", "<event_id>", "<relay_hint>"],
|
||||
["option", "<description>", "<kind:pubkey:d-tag>", "<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 `.content` field SHOULD follow the same formatting rules as `kind:1`.
|
||||
The `.content` field does not accept markdown.
|
||||
|
||||
## 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.
|
||||
|
||||
|
@ -68,7 +68,7 @@ The `e` tag points to the latest scene the user has read.
|
|||
|
||||
```jsonc
|
||||
{
|
||||
"kind": 30296,
|
||||
"kind": 30298,
|
||||
"tags": [
|
||||
["d", "<root_event_id>"],
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user