{
  "$defs": {
    "ActionItem": {
      "properties": {
        "text": {
          "maxLength": 400,
          "minLength": 1,
          "title": "Text",
          "type": "string"
        },
        "owner": {
          "anyOf": [
            {
              "maxLength": 120,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Owner"
        },
        "due": {
          "anyOf": [
            {
              "maxLength": 64,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Due"
        },
        "priority": {
          "default": "medium",
          "enum": [
            "low",
            "medium",
            "high"
          ],
          "title": "Priority",
          "type": "string"
        },
        "timestamp": {
          "anyOf": [
            {
              "$ref": "#/$defs/TimestampRef"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "text"
      ],
      "title": "ActionItem",
      "type": "object"
    },
    "ActionItemsBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "action_items",
          "default": "action_items",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/ActionItemsReport"
        }
      },
      "required": [
        "payload"
      ],
      "title": "ActionItemsBlock",
      "type": "object"
    },
    "ActionItemsReport": {
      "properties": {
        "schema_version": {
          "default": 1,
          "title": "Schema Version",
          "type": "integer"
        },
        "kind": {
          "const": "action_items",
          "default": "action_items",
          "title": "Kind",
          "type": "string"
        },
        "items": {
          "items": {
            "$ref": "#/$defs/ActionItem"
          },
          "maxItems": 30,
          "minItems": 1,
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "items"
      ],
      "title": "ActionItemsReport",
      "type": "object"
    },
    "CalloutBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "callout",
          "default": "callout",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/CalloutPayload"
        }
      },
      "required": [
        "payload"
      ],
      "title": "CalloutBlock",
      "type": "object"
    },
    "CalloutPayload": {
      "properties": {
        "tone": {
          "enum": [
            "info",
            "warning",
            "risk",
            "success"
          ],
          "title": "Tone",
          "type": "string"
        },
        "title": {
          "maxLength": 160,
          "minLength": 1,
          "title": "Title",
          "type": "string"
        },
        "body": {
          "maxLength": 800,
          "minLength": 1,
          "title": "Body",
          "type": "string"
        }
      },
      "required": [
        "tone",
        "title",
        "body"
      ],
      "title": "CalloutPayload",
      "type": "object"
    },
    "ChartBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "chart",
          "default": "chart",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/ChartPayload"
        }
      },
      "required": [
        "payload"
      ],
      "title": "ChartBlock",
      "type": "object"
    },
    "ChartPayload": {
      "properties": {
        "chart_type": {
          "enum": [
            "bar",
            "pie",
            "timeline"
          ],
          "title": "Chart Type",
          "type": "string"
        },
        "title": {
          "maxLength": 160,
          "minLength": 1,
          "title": "Title",
          "type": "string"
        },
        "x_label": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "X Label"
        },
        "y_label": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Y Label"
        },
        "series": {
          "items": {
            "$ref": "#/$defs/ChartSeries"
          },
          "maxItems": 8,
          "minItems": 1,
          "title": "Series",
          "type": "array"
        }
      },
      "required": [
        "chart_type",
        "title",
        "series"
      ],
      "title": "ChartPayload",
      "type": "object"
    },
    "ChartPoint": {
      "properties": {
        "x": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "string"
            }
          ],
          "title": "X"
        },
        "y": {
          "title": "Y",
          "type": "number"
        }
      },
      "required": [
        "x",
        "y"
      ],
      "title": "ChartPoint",
      "type": "object"
    },
    "ChartSeries": {
      "properties": {
        "name": {
          "maxLength": 120,
          "minLength": 1,
          "title": "Name",
          "type": "string"
        },
        "points": {
          "items": {
            "$ref": "#/$defs/ChartPoint"
          },
          "maxItems": 120,
          "minItems": 1,
          "title": "Points",
          "type": "array"
        }
      },
      "required": [
        "name",
        "points"
      ],
      "title": "ChartSeries",
      "type": "object"
    },
    "CommitmentEntry": {
      "properties": {
        "who": {
          "anyOf": [
            {
              "maxLength": 120,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Who"
        },
        "what": {
          "maxLength": 400,
          "minLength": 1,
          "title": "What",
          "type": "string"
        },
        "when": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "When"
        },
        "timestamp": {
          "anyOf": [
            {
              "$ref": "#/$defs/TimestampRef"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "confidence": {
          "default": 0.7,
          "maximum": 1,
          "minimum": 0,
          "title": "Confidence",
          "type": "number"
        }
      },
      "required": [
        "what"
      ],
      "title": "CommitmentEntry",
      "type": "object"
    },
    "DecisionsBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "decisions",
          "default": "decisions",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/DecisionsReport"
        }
      },
      "required": [
        "payload"
      ],
      "title": "DecisionsBlock",
      "type": "object"
    },
    "DecisionsReport": {
      "properties": {
        "schema_version": {
          "default": 1,
          "title": "Schema Version",
          "type": "integer"
        },
        "kind": {
          "const": "decisions",
          "default": "decisions",
          "title": "Kind",
          "type": "string"
        },
        "commitments": {
          "items": {
            "$ref": "#/$defs/CommitmentEntry"
          },
          "maxItems": 30,
          "minItems": 1,
          "title": "Commitments",
          "type": "array"
        }
      },
      "required": [
        "commitments"
      ],
      "title": "DecisionsReport",
      "type": "object"
    },
    "DividerBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "divider",
          "default": "divider",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/DividerPayload"
        }
      },
      "title": "DividerBlock",
      "type": "object"
    },
    "DividerPayload": {
      "properties": {
        "heading": {
          "anyOf": [
            {
              "maxLength": 120,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Heading"
        },
        "pageBreak": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Pagebreak"
        }
      },
      "title": "DividerPayload",
      "type": "object"
    },
    "EmailDraftBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "email_draft",
          "default": "email_draft",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/EmailDraftReport"
        }
      },
      "required": [
        "payload"
      ],
      "title": "EmailDraftBlock",
      "type": "object"
    },
    "EmailDraftReport": {
      "properties": {
        "schema_version": {
          "default": 1,
          "title": "Schema Version",
          "type": "integer"
        },
        "kind": {
          "const": "email_draft",
          "default": "email_draft",
          "title": "Kind",
          "type": "string"
        },
        "subject": {
          "maxLength": 160,
          "minLength": 1,
          "title": "Subject",
          "type": "string"
        },
        "greeting": {
          "default": "",
          "maxLength": 120,
          "title": "Greeting",
          "type": "string"
        },
        "body": {
          "maxLength": 4000,
          "minLength": 1,
          "title": "Body",
          "type": "string"
        },
        "bullet_recap": {
          "items": {
            "type": "string"
          },
          "maxItems": 12,
          "title": "Bullet Recap",
          "type": "array"
        },
        "next_steps": {
          "items": {
            "type": "string"
          },
          "maxItems": 12,
          "title": "Next Steps",
          "type": "array"
        },
        "sign_off": {
          "default": "",
          "maxLength": 120,
          "title": "Sign Off",
          "type": "string"
        }
      },
      "required": [
        "subject",
        "body"
      ],
      "title": "EmailDraftReport",
      "type": "object"
    },
    "HorizonBucket": {
      "properties": {
        "horizon": {
          "enum": [
            "week",
            "month",
            "quarter"
          ],
          "title": "Horizon",
          "type": "string"
        },
        "items": {
          "items": {
            "type": "string"
          },
          "maxItems": 20,
          "minItems": 1,
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "horizon",
        "items"
      ],
      "title": "HorizonBucket",
      "type": "object"
    },
    "KPIEntry": {
      "properties": {
        "label": {
          "maxLength": 120,
          "minLength": 1,
          "title": "Label",
          "type": "string"
        },
        "value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "number"
            }
          ],
          "title": "Value"
        },
        "unit": {
          "anyOf": [
            {
              "maxLength": 40,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Unit"
        },
        "hint": {
          "anyOf": [
            {
              "maxLength": 240,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Hint"
        },
        "trend": {
          "anyOf": [
            {
              "enum": [
                "up",
                "down",
                "flat"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Trend"
        }
      },
      "required": [
        "label",
        "value"
      ],
      "title": "KPIEntry",
      "type": "object"
    },
    "KeyMomentItem": {
      "properties": {
        "timestamp": {
          "$ref": "#/$defs/TimestampRef"
        },
        "label": {
          "maxLength": 120,
          "minLength": 1,
          "title": "Label",
          "type": "string"
        },
        "kind": {
          "default": "highlight",
          "enum": [
            "highlight",
            "turning_point",
            "question"
          ],
          "title": "Kind",
          "type": "string"
        }
      },
      "required": [
        "timestamp",
        "label"
      ],
      "title": "KeyMomentItem",
      "type": "object"
    },
    "KeyMomentsBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "key_moments",
          "default": "key_moments",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/KeyMomentsPayload"
        }
      },
      "required": [
        "payload"
      ],
      "title": "KeyMomentsBlock",
      "type": "object"
    },
    "KeyMomentsPayload": {
      "properties": {
        "items": {
          "items": {
            "$ref": "#/$defs/KeyMomentItem"
          },
          "maxItems": 20,
          "minItems": 3,
          "title": "Items",
          "type": "array"
        }
      },
      "required": [
        "items"
      ],
      "title": "KeyMomentsPayload",
      "type": "object"
    },
    "MarkdownBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "markdown",
          "default": "markdown",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/MarkdownPayload"
        }
      },
      "required": [
        "payload"
      ],
      "title": "MarkdownBlock",
      "type": "object"
    },
    "MarkdownPayload": {
      "properties": {
        "md": {
          "maxLength": 16000,
          "minLength": 1,
          "title": "Md",
          "type": "string"
        }
      },
      "required": [
        "md"
      ],
      "title": "MarkdownPayload",
      "type": "object"
    },
    "MetricsBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "metrics",
          "default": "metrics",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/MetricsPayload"
        }
      },
      "required": [
        "payload"
      ],
      "title": "MetricsBlock",
      "type": "object"
    },
    "MetricsPayload": {
      "properties": {
        "kpis": {
          "items": {
            "$ref": "#/$defs/KPIEntry"
          },
          "maxItems": 6,
          "minItems": 1,
          "title": "Kpis",
          "type": "array"
        }
      },
      "required": [
        "kpis"
      ],
      "title": "MetricsPayload",
      "type": "object"
    },
    "NextStepsBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "next_steps",
          "default": "next_steps",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/NextStepsPayload"
        }
      },
      "required": [
        "payload"
      ],
      "title": "NextStepsBlock",
      "type": "object"
    },
    "NextStepsPayload": {
      "properties": {
        "horizons": {
          "items": {
            "$ref": "#/$defs/HorizonBucket"
          },
          "maxItems": 3,
          "minItems": 1,
          "title": "Horizons",
          "type": "array"
        }
      },
      "required": [
        "horizons"
      ],
      "title": "NextStepsPayload",
      "type": "object"
    },
    "QAPair": {
      "properties": {
        "q": {
          "maxLength": 400,
          "minLength": 1,
          "title": "Q",
          "type": "string"
        },
        "a": {
          "maxLength": 800,
          "minLength": 1,
          "title": "A",
          "type": "string"
        },
        "timestamp": {
          "anyOf": [
            {
              "$ref": "#/$defs/TimestampRef"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "q",
        "a"
      ],
      "title": "QAPair",
      "type": "object"
    },
    "QAPairsBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "qa_pairs",
          "default": "qa_pairs",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/QAPairsPayload"
        }
      },
      "required": [
        "payload"
      ],
      "title": "QAPairsBlock",
      "type": "object"
    },
    "QAPairsPayload": {
      "properties": {
        "pairs": {
          "items": {
            "$ref": "#/$defs/QAPair"
          },
          "maxItems": 30,
          "minItems": 1,
          "title": "Pairs",
          "type": "array"
        }
      },
      "required": [
        "pairs"
      ],
      "title": "QAPairsPayload",
      "type": "object"
    },
    "QuoteBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "quote",
          "default": "quote",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/QuotePayload"
        }
      },
      "required": [
        "payload"
      ],
      "title": "QuoteBlock",
      "type": "object"
    },
    "QuotePayload": {
      "properties": {
        "text": {
          "maxLength": 480,
          "minLength": 1,
          "title": "Text",
          "type": "string"
        },
        "speaker": {
          "anyOf": [
            {
              "maxLength": 120,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Speaker"
        },
        "segment_id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Segment Id"
        },
        "timestamp": {
          "$ref": "#/$defs/TimestampRef"
        },
        "rationale": {
          "default": "",
          "maxLength": 240,
          "title": "Rationale",
          "type": "string"
        }
      },
      "required": [
        "text",
        "timestamp"
      ],
      "title": "QuotePayload",
      "type": "object"
    },
    "SpeakerBreakdownBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "speaker_breakdown",
          "default": "speaker_breakdown",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/SpeakerBreakdownPayload"
        }
      },
      "required": [
        "payload"
      ],
      "title": "SpeakerBreakdownBlock",
      "type": "object"
    },
    "SpeakerBreakdownPayload": {
      "properties": {
        "rows": {
          "items": {
            "$ref": "#/$defs/SpeakerRow"
          },
          "maxItems": 30,
          "minItems": 1,
          "title": "Rows",
          "type": "array"
        }
      },
      "required": [
        "rows"
      ],
      "title": "SpeakerBreakdownPayload",
      "type": "object"
    },
    "SpeakerRow": {
      "properties": {
        "speaker": {
          "maxLength": 120,
          "minLength": 1,
          "title": "Speaker",
          "type": "string"
        },
        "speaking_time_s": {
          "minimum": 0,
          "title": "Speaking Time S",
          "type": "number"
        },
        "share_pct": {
          "maximum": 100,
          "minimum": 0,
          "title": "Share Pct",
          "type": "number"
        },
        "sentiment": {
          "maximum": 1,
          "minimum": -1,
          "title": "Sentiment",
          "type": "number"
        },
        "themes": {
          "items": {
            "type": "string"
          },
          "maxItems": 6,
          "title": "Themes",
          "type": "array"
        }
      },
      "required": [
        "speaker",
        "speaking_time_s",
        "share_pct",
        "sentiment"
      ],
      "title": "SpeakerRow",
      "type": "object"
    },
    "SummaryBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "summary",
          "default": "summary",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/SummaryReport"
        }
      },
      "required": [
        "payload"
      ],
      "title": "SummaryBlock",
      "type": "object"
    },
    "SummaryDecision": {
      "properties": {
        "text": {
          "maxLength": 600,
          "minLength": 1,
          "title": "Text",
          "type": "string"
        },
        "decided_by": {
          "anyOf": [
            {
              "maxLength": 120,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Decided By"
        },
        "timestamp": {
          "anyOf": [
            {
              "$ref": "#/$defs/TimestampRef"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "text"
      ],
      "title": "SummaryDecision",
      "type": "object"
    },
    "SummaryReport": {
      "properties": {
        "schema_version": {
          "default": 1,
          "title": "Schema Version",
          "type": "integer"
        },
        "kind": {
          "const": "summary",
          "default": "summary",
          "title": "Kind",
          "type": "string"
        },
        "tldr": {
          "maxLength": 800,
          "minLength": 1,
          "title": "Tldr",
          "type": "string"
        },
        "discussed": {
          "items": {
            "$ref": "#/$defs/SummaryTopicLine"
          },
          "maxItems": 20,
          "title": "Discussed",
          "type": "array"
        },
        "decisions": {
          "items": {
            "$ref": "#/$defs/SummaryDecision"
          },
          "maxItems": 20,
          "title": "Decisions",
          "type": "array"
        },
        "open_questions": {
          "items": {
            "type": "string"
          },
          "maxItems": 20,
          "title": "Open Questions",
          "type": "array"
        },
        "target_word_count": {
          "default": 300,
          "maximum": 900,
          "minimum": 120,
          "title": "Target Word Count",
          "type": "integer"
        }
      },
      "required": [
        "tldr"
      ],
      "title": "SummaryReport",
      "type": "object"
    },
    "SummaryTopicLine": {
      "properties": {
        "title": {
          "maxLength": 160,
          "minLength": 1,
          "title": "Title",
          "type": "string"
        },
        "context": {
          "default": "",
          "maxLength": 400,
          "title": "Context",
          "type": "string"
        }
      },
      "required": [
        "title"
      ],
      "title": "SummaryTopicLine",
      "type": "object"
    },
    "TimestampRef": {
      "description": "A pointer back into the recording timeline.",
      "properties": {
        "start_s": {
          "minimum": 0,
          "title": "Start S",
          "type": "number"
        },
        "end_s": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "End S"
        },
        "label": {
          "anyOf": [
            {
              "maxLength": 120,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Label"
        }
      },
      "required": [
        "start_s"
      ],
      "title": "TimestampRef",
      "type": "object"
    },
    "TopicEntry": {
      "properties": {
        "title": {
          "maxLength": 80,
          "minLength": 1,
          "title": "Title",
          "type": "string"
        },
        "share_pct": {
          "maximum": 100,
          "minimum": 0,
          "title": "Share Pct",
          "type": "number"
        },
        "importance": {
          "default": 0.5,
          "maximum": 1,
          "minimum": 0,
          "title": "Importance",
          "type": "number"
        },
        "key_segments": {
          "items": {
            "$ref": "#/$defs/TimestampRef"
          },
          "maxItems": 10,
          "title": "Key Segments",
          "type": "array"
        },
        "follow_up_prompt": {
          "default": "",
          "maxLength": 240,
          "title": "Follow Up Prompt",
          "type": "string"
        }
      },
      "required": [
        "title",
        "share_pct"
      ],
      "title": "TopicEntry",
      "type": "object"
    },
    "TopicsBlock": {
      "properties": {
        "id": {
          "anyOf": [
            {
              "maxLength": 80,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Id"
        },
        "order": {
          "anyOf": [
            {
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Order"
        },
        "type": {
          "const": "topics",
          "default": "topics",
          "title": "Type",
          "type": "string"
        },
        "payload": {
          "$ref": "#/$defs/TopicsReport"
        }
      },
      "required": [
        "payload"
      ],
      "title": "TopicsBlock",
      "type": "object"
    },
    "TopicsReport": {
      "properties": {
        "schema_version": {
          "default": 1,
          "title": "Schema Version",
          "type": "integer"
        },
        "kind": {
          "const": "topics",
          "default": "topics",
          "title": "Kind",
          "type": "string"
        },
        "topics": {
          "items": {
            "$ref": "#/$defs/TopicEntry"
          },
          "maxItems": 12,
          "minItems": 1,
          "title": "Topics",
          "type": "array"
        }
      },
      "required": [
        "topics"
      ],
      "title": "TopicsReport",
      "type": "object"
    }
  },
  "description": "Root constructor-type smart report document.",
  "properties": {
    "schema_version": {
      "const": 2,
      "default": 2,
      "title": "Schema Version",
      "type": "integer"
    },
    "title": {
      "maxLength": 240,
      "minLength": 1,
      "title": "Title",
      "type": "string"
    },
    "generated_at": {
      "format": "date-time",
      "title": "Generated At",
      "type": "string"
    },
    "transcript_id": {
      "format": "uuid",
      "title": "Transcript Id",
      "type": "string"
    },
    "blocks": {
      "items": {
        "discriminator": {
          "mapping": {
            "action_items": "#/$defs/ActionItemsBlock",
            "callout": "#/$defs/CalloutBlock",
            "chart": "#/$defs/ChartBlock",
            "decisions": "#/$defs/DecisionsBlock",
            "divider": "#/$defs/DividerBlock",
            "email_draft": "#/$defs/EmailDraftBlock",
            "key_moments": "#/$defs/KeyMomentsBlock",
            "markdown": "#/$defs/MarkdownBlock",
            "metrics": "#/$defs/MetricsBlock",
            "next_steps": "#/$defs/NextStepsBlock",
            "qa_pairs": "#/$defs/QAPairsBlock",
            "quote": "#/$defs/QuoteBlock",
            "speaker_breakdown": "#/$defs/SpeakerBreakdownBlock",
            "summary": "#/$defs/SummaryBlock",
            "topics": "#/$defs/TopicsBlock"
          },
          "propertyName": "type"
        },
        "oneOf": [
          {
            "$ref": "#/$defs/SummaryBlock"
          },
          {
            "$ref": "#/$defs/ActionItemsBlock"
          },
          {
            "$ref": "#/$defs/DecisionsBlock"
          },
          {
            "$ref": "#/$defs/QuoteBlock"
          },
          {
            "$ref": "#/$defs/KeyMomentsBlock"
          },
          {
            "$ref": "#/$defs/SpeakerBreakdownBlock"
          },
          {
            "$ref": "#/$defs/TopicsBlock"
          },
          {
            "$ref": "#/$defs/MetricsBlock"
          },
          {
            "$ref": "#/$defs/ChartBlock"
          },
          {
            "$ref": "#/$defs/CalloutBlock"
          },
          {
            "$ref": "#/$defs/NextStepsBlock"
          },
          {
            "$ref": "#/$defs/EmailDraftBlock"
          },
          {
            "$ref": "#/$defs/QAPairsBlock"
          },
          {
            "$ref": "#/$defs/MarkdownBlock"
          },
          {
            "$ref": "#/$defs/DividerBlock"
          }
        ]
      },
      "maxItems": 20,
      "minItems": 1,
      "title": "Blocks",
      "type": "array"
    },
    "trace": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Trace"
    }
  },
  "required": [
    "title",
    "generated_at",
    "transcript_id",
    "blocks"
  ],
  "title": "ReportDocument",
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.vibe2text.example.com/schemas/report-document.schema.json"
}