From eea63b11c10d290971bc4eef2aa24b191519726d Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 25 Nov 2024 17:37:33 -0500 Subject: [PATCH] Removes trademark issues and makes all content modifiable to make it easier to integrate multiple worlds --- 63.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/63.md b/63.md index c6e192b..0e82e22 100644 --- a/63.md +++ b/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": "", "tags": [ + ["d", ""], ["title", ""], ["summary", ""], ["image", ""], - ["option", "", "", ""], - ["option", "", "", ""], + ["option", "", "", ""], + ["option", "", "", ""], // ... ] } ``` -### 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": "", "tags": [ + ["d", ""], ["title", ""], - ["option", "", "", ""], - ["option", "", "", ""], + ["option", "", "", ""], + ["option", "", "", ""], // ... ] } @@ -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", ""],