From 5564a30bf9b184761ed972c222d8b4c677c054d9 Mon Sep 17 00:00:00 2001 From: ReaperOfVeriod Date: Sun, 25 Oct 2026 05:08:12 +0100 Subject: [PATCH] add bot command contract --- contracts/v1/bot-commands-response.json | 26 +++++++++++++++++++++++++ fixtures/v1/bot-commands.response.json | 17 ++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 contracts/v1/bot-commands-response.json create mode 100644 fixtures/v1/bot-commands.response.json diff --git a/contracts/v1/bot-commands-response.json b/contracts/v1/bot-commands-response.json new file mode 100644 index 0000000..3b1a5eb --- /dev/null +++ b/contracts/v1/bot-commands-response.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://trixie.reaperofveriod.nl/contracts/v1/bot-commands-response.json", + "title": "Trixie bot command list", + "type": "array", + "items": { + "type": "object", + "additionalProperties": false, + "required": ["id", "name", "description", "permission_level", "aliases", "tags", "cooldown_seconds", "cooldown_scope", "response_template", "error_template", "enabled", "failure_count", "disabled_reason"], + "properties": { + "id": { "type": "string", "format": "uuid" }, + "name": { "type": "string", "pattern": "^[A-Za-z0-9_-]+$" }, + "description": { "type": "string" }, + "permission_level": { "enum": ["everyone", "subscriber", "moderator", "broadcaster"] }, + "aliases": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, + "tags": { "type": "array", "items": { "type": "string" }, "uniqueItems": true }, + "cooldown_seconds": { "type": "integer", "minimum": 0, "maximum": 86400 }, + "cooldown_scope": { "enum": ["global", "user", "role"] }, + "response_template": { "type": "string" }, + "error_template": { "type": ["string", "null"] }, + "enabled": { "type": "boolean" }, + "failure_count": { "type": "integer", "minimum": 0 }, + "disabled_reason": { "type": ["string", "null"] } + } + } +} diff --git a/fixtures/v1/bot-commands.response.json b/fixtures/v1/bot-commands.response.json new file mode 100644 index 0000000..ed40afb --- /dev/null +++ b/fixtures/v1/bot-commands.response.json @@ -0,0 +1,17 @@ +[ + { + "id": "00000000-0000-4000-8000-000000000001", + "name": "uptime", + "description": "Show uptime", + "permission_level": "everyone", + "aliases": [], + "tags": ["utility"], + "cooldown_seconds": 2, + "cooldown_scope": "user", + "response_template": "Online", + "error_template": null, + "enabled": true, + "failure_count": 0, + "disabled_reason": null + } +]