diff --git a/Roadmap.md b/Roadmap.md index 61502d8..e5058ae 100644 --- a/Roadmap.md +++ b/Roadmap.md @@ -7,8 +7,32 @@ What is currently upcoming. | Feature | Description | Depends on | | --------------- | --------------- | --------------- | -| **Private Commands** | Manage all bot functionality from a private room | Room State Management (done) | +| **Room Metadata** | Internally store arbitrary key values on a per-room, per-user basis. | N/A | +| **Character Sheet Integration v1** | Integrate with an external online character sheet service. | Room Metadata. Existence of said service. | +### Room Metadata + +The ability to store metadata on a per-room, per-user basis. This is foundational work for the character sheet integration. The metadata will be stored as key-value pairs, with the key consisting of user ID + room ID + key name. The value can be anything, and code will enforce type requirements. + +The primary use cases for this are: + +- Store a link to the character sheet +- Store the locally cached character sheet protobuf data. + + +### Character Sheet Integration + +The "holy grail" of the whole idea. A gRPC connection will be setup between the dice bot (acting as a server) and instances of the web app (gRPC clients). Changes in the web app will be reflected in the bot. The first iteration of this will not have bidrectional changes (that is, bot will not be able to force updates to the character in the web app). + +## Intermediate + +Things that are easier to implement, but not yet scheduled. + +| Feature | Description | Depends on | +| --------------- | --------------- | --------------- | +| **Private Commands** | Manage all bot functionality from a private room | Room State Management (done) | +| **Resource Counting** | Creation of counters that can go up and down. System agnostic. | N/A | +| **CofD Game Management** | Management of slightly complex CofD things like health. | N/A | ### Private Commands @@ -19,19 +43,10 @@ This will require some internal changes: * Dicebot must now be aware of what room a user is managing in a direct message. This may be the first introduction of a proper state struct for users in the database. Possibly new keyspace `state`, with just a key name of username. * Commands must be aware of if they are being executed in a direct message or a regular room. Probably easiest to add this property to the `Context` object. -## Intermediate - -Things that are easier to implement, but not yet scheduled. - -| Feature | Description | Depends on | -| --------------- | --------------- | --------------- | -| **Resource Counting** | Creation of counters that can go up and down. System agnostic. | N/A | -| **CofD Game Management** | Management of slightly complex CofD things like health. | N/A | - ## Future Things in the far future that require a lot of groundwork or other features to be finished first. | Feature | Description | Depends on | | --------------- | --------------- | --------------- | -| **Character Sheet Integration** | Integrate with an external online character sheet service. | Existence of said service, many dice bot features. | \ No newline at end of file +| **Character Sheet Integration v2** | Bidirectional character sheet changes. | Character Sheet Integration v1. | \ No newline at end of file