/ docs / config.schema.json
config.schema.json
  1  {
  2    "$id": "https://github.com/cliftontoaster-reid/cc-roulette/blob/main/docs/config.schema.json",
  3    "title": "ToasterSpin Config Schema",
  4    "description": "Schema for the ToasterSpin config file",
  5    "type": "object",
  6    "properties": {
  7      "version": {
  8        "type": "string",
  9        "description": "The version of the config file schema using Semantic Versioning",
 10        "pattern": "^\\d+\\.\\d+\\.\\d+$"
 11      },
 12      "rewards": {
 13        "type": "object",
 14        "description": "The rewards that can be won",
 15        "properties": {
 16          "numeric": {
 17            "type": "number",
 18            "description": "The number with witch to multiply the bet to get the payout",
 19            "exclusiveMinimum": 0
 20          },
 21          "dozen": {
 22            "type": "number",
 23            "description": "The number of points awarded for winning the 1st 12, 2nd 12, and 3rd 12 options",
 24            "exclusiveMinimum": 0
 25          },
 26          "binary": {
 27            "type": "number",
 28            "description": "The number of points awarded for winning the 1-18, 19-36, EVEN, and ODD options",
 29            "exclusiveMinimum": 0
 30          },
 31          "colour": {
 32            "type": "number",
 33            "description": "The number of points awarded for winning the RED and BLACK options",
 34            "exclusiveMinimum": 0
 35          }
 36        },
 37        "required": [
 38          "numeric",
 39          "dozen",
 40          "binary",
 41          "colour"
 42        ]
 43      },
 44      "devices": {
 45        "type": "object",
 46        "description": "The devices that can be used to play the game",
 47        "properties": {
 48          "carpet": {
 49            "type": "string",
 50            "description": "The device that is used as carpet"
 51          },
 52          "ring": {
 53            "type": "string",
 54            "description": "The device that is used as ring"
 55          },
 56          "redstone": {
 57            "type": "string",
 58            "description": "The device that is used as redstone"
 59          },
 60          "ivmanagers": {
 61            "type": "array",
 62            "description": "The devices that are used as inventory managers",
 63            "items": {
 64              "type": "string"
 65            }
 66          },
 67          "ivmanBigger": {
 68            "type": "number",
 69            "description": "The strength of the signal for the lowest inventory manager"
 70          },
 71          "modem": {
 72            "type": "string",
 73            "description": "The device that is used as modem"
 74          }
 75        },
 76        "required": [
 77          "carpet",
 78          "ring",
 79          "redstone",
 80          "ivmanagers",
 81          "ivmanBigger",
 82          "modem"
 83        ]
 84      },
 85      "debug": {
 86        "type": "object",
 87        "description": "Debugging servers",
 88        "properties": {
 89          "loki": {
 90            "type": "string",
 91            "description": "The loki server to send logs to"
 92          },
 93          "tempo": {
 94            "type": "string",
 95            "description": "The tempo server to send traces to"
 96          }
 97        }
 98      }
 99    },
100    "required": [
101      "version",
102      "rewards",
103      "devices"
104    ]
105  }