Go back to original format

Can't beat the simplicity of having everything in a single event. I also added a Column reserve event for offloading large columns and to prevent event size bloat.
This commit is contained in:
dluvian 2025-06-15 18:23:23 +08:00
parent f43fe885e8
commit fac6e491a6
1 changed files with 25 additions and 9 deletions

34
CB.md
View File

@ -6,7 +6,14 @@ Kanban Boards
`draft` `optional` `draft` `optional`
A Kanban Board is a replaceable `kind 37733` event, which includes a list of column events. A Kanban Board is a replaceable `kind 37733` event, which includes a list of column names and a mapping to their associated content.
Columns can contain any nostr event.
Clients are expected to only support a subset of event kinds when rendering Kanban cards.
When a column holds a large number of cards, these cards SHOULD be placed into a `kind 37734 Column reserve` event to prevent the `kind 37733` event from getting too large.
```json ```json
{ {
@ -21,19 +28,28 @@ A Kanban Board is a replaceable `kind 37733` event, which includes a list of col
// For example a GitRepositoryAnnouncement: // For example a GitRepositoryAnnouncement:
["A", "30617:<pubkey>:<repo-identifier>"], ["A", "30617:<pubkey>:<repo-identifier>"],
// Columns have the format `["a", "<coordinate>", "<title>", "<optional-relay-hint>"]` // Columns arranged in the intended order.
// and are arranged in the intended order. // Column IDs should be lowercase and alphanumeric.
["a", "<column-kind>:<pubkey>:<d-identifier>", "To Do", "wss://relay.lol"], ["col", "col-id-1", "To Do"],
["a", "<column-kind>:<pubkey>:<d-identifier>", "In Progress", ""], ["col", "col-id-2", "In Progress"],
["a", "<column-kind>:<pubkey>:<d-identifier>", "Done"], ["col", "col-id-2", "Done"],
// Column items `["e/a", "<event-id/coordinate>", "<col-id>", "<optional-relay-hint>"]` arranged in the intended order
["e", "<event-id>", "col-id-1", "wss://relay.lol"],
["a", "<event-coordinate>", "col-id-1", ""],
["e", "<event-id>", "col-id-2"],
["e", "<event-id>", "col-id-3"],
// Optional column reserve for holding large amount of cards
// `["r", "37734:<pubkey>:<d-identifier", "<col-id>", "<optional-relay-hint>"]`
["r", "37734:<pubkey>:<d-identifier", "col-id-3", "wss://relay.lol"],
] ]
} }
``` ```
## Columns ## Column reserve
Columns are `kind 37734` events containing a list of Kanban cards, which can be of any event kind. A column reserve is a replaceable `kind 37734` event that contains a list of Kanban cards, used to offload and reduce the size of the original `kind 37733` event. Its usage is optional but recommended for columns with a large amount of cards.
Clients are expected to only support a subset of event kinds when rendering Kanban cards.
```json ```json
{ {