{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/hoshin-app/json-schema/hoshin-app-cadence-architecture-schema.json",
  "title": "CadenceArchitecture",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/hoshin-app-openapi.json#/components/schemas/CadenceArchitecture",
  "type": "object",
  "properties": {
    "tree": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "strategic",
              "annual",
              "qbr",
              "monthly",
              "weekly",
              "daily",
              "catchball"
            ]
          },
          "frequency": {
            "type": "string",
            "enum": [
              "yearly",
              "quarterly",
              "monthly",
              "weekly",
              "daily"
            ]
          },
          "operationalLevel": {
            "type": "string",
            "enum": [
              "strategic",
              "tactical",
              "operational_mgmt",
              "team_mgmt",
              "execution"
            ]
          },
          "parentCadenceId": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "primaryQuadrant": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "north",
              "east",
              "south",
              "west",
              null
            ],
            "description": "Role of the element, not its place on the drawing: north = breakthrough objectives (3-5 year vision), east = annual objectives, south = initiatives, west = KPIs. A matrix drawn with the vision at the bottom uses the same values."
          },
          "trackedQuadrants": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "north",
                "east",
                "south",
                "west"
              ],
              "description": "Role of the element, not its place on the drawing: north = breakthrough objectives (3-5 year vision), east = annual objectives, south = initiatives, west = KPIs. A matrix drawn with the vision at the bottom uses the same values."
            }
          },
          "teamScope": {
            "type": [
              "string",
              "null"
            ]
          },
          "durationMinutes": {
            "type": [
              "integer",
              "null"
            ]
          },
          "meetingsCount": {
            "type": "integer"
          },
          "children": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {}
            },
            "description": "Cadences below this one, in this same shape."
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "frequency",
          "operationalLevel",
          "parentCadenceId",
          "primaryQuadrant",
          "trackedQuadrants",
          "teamScope",
          "durationMinutes",
          "meetingsCount",
          "children"
        ]
      }
    },
    "byLevel": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string",
              "format": "uuid"
            },
            "name": {
              "type": "string"
            },
            "type": {
              "type": "string",
              "enum": [
                "strategic",
                "annual",
                "qbr",
                "monthly",
                "weekly",
                "daily",
                "catchball"
              ]
            },
            "frequency": {
              "type": "string",
              "enum": [
                "yearly",
                "quarterly",
                "monthly",
                "weekly",
                "daily"
              ]
            },
            "operationalLevel": {
              "type": "string",
              "enum": [
                "strategic",
                "tactical",
                "operational_mgmt",
                "team_mgmt",
                "execution"
              ]
            },
            "parentCadenceId": {
              "type": [
                "string",
                "null"
              ],
              "format": "uuid"
            },
            "primaryQuadrant": {
              "type": [
                "string",
                "null"
              ],
              "enum": [
                "north",
                "east",
                "south",
                "west",
                null
              ],
              "description": "Role of the element, not its place on the drawing: north = breakthrough objectives (3-5 year vision), east = annual objectives, south = initiatives, west = KPIs. A matrix drawn with the vision at the bottom uses the same values."
            },
            "trackedQuadrants": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "north",
                  "east",
                  "south",
                  "west"
                ],
                "description": "Role of the element, not its place on the drawing: north = breakthrough objectives (3-5 year vision), east = annual objectives, south = initiatives, west = KPIs. A matrix drawn with the vision at the bottom uses the same values."
              }
            },
            "teamScope": {
              "type": [
                "string",
                "null"
              ]
            },
            "durationMinutes": {
              "type": [
                "integer",
                "null"
              ]
            },
            "meetingsCount": {
              "type": "integer"
            },
            "children": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {}
              },
              "description": "Cadences below this one, in this same shape."
            }
          },
          "required": [
            "id",
            "name",
            "type",
            "frequency",
            "operationalLevel",
            "parentCadenceId",
            "primaryQuadrant",
            "trackedQuadrants",
            "teamScope",
            "durationMinutes",
            "meetingsCount",
            "children"
          ]
        }
      }
    },
    "total": {
      "type": "integer"
    }
  },
  "required": [
    "tree",
    "byLevel",
    "total"
  ]
}