{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "The progress block (data). Reads: `source`: its row count, or a column's sum or average, or the first row's cell. Shape: any rows; a sum, avg or value column holds numbers.",
  "properties": {
    "progress": {
      "additionalProperties": false,
      "properties": {
        "column": {
          "description": "The column the figure reads; required unless figure is count.",
          "pattern": "^[a-z][a-z0-9_]{0,62}$",
          "type": "string"
        },
        "figure": {
          "default": "count",
          "description": "count: the rows; sum and avg: `column` over the rows; value and text: the first row's `column`.",
          "enum": [
            "count",
            "sum",
            "avg",
            "value"
          ],
          "type": "string"
        },
        "format": {
          "default": "number",
          "description": "How the figure and the maximum are written.",
          "enum": [
            "number",
            "usd",
            "percent",
            "duration",
            "bytes"
          ],
          "type": "string"
        },
        "id": {
          "description": "The block's id: its Markdown anchor and its actions' route (`/act/<id>/<action>`). Default `<type>-<n>`, n counting blocks of this type depth-first from 1.",
          "pattern": "^[a-z][a-z0-9-]{1,38}$",
          "type": "string"
        },
        "label": {
          "description": "The bar's label.",
          "maxLength": 60,
          "minLength": 1,
          "type": "string"
        },
        "max": {
          "description": "The figure of a full bar (above 0).",
          "type": "number"
        },
        "source": {
          "description": "The source the figure reads.",
          "pattern": "^[a-z][a-z0-9_]{0,62}$",
          "type": "string"
        }
      },
      "required": [
        "label",
        "source",
        "max"
      ],
      "type": "object"
    }
  },
  "required": [
    "progress"
  ],
  "title": "progress",
  "type": "object"
}