{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/aiworkstation-cn/json-schema/aiworkstation-cn-topic-insight-response-schema.json",
  "title": "TopicInsightResponse",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/aiworkstation-cn-openapi.json#/components/schemas/TopicInsightResponse",
  "properties": {
    "topic_id": {
      "type": "string",
      "title": "Topic Id"
    },
    "cached": {
      "type": "boolean",
      "title": "Cached"
    },
    "generated_at": {
      "type": "string",
      "title": "Generated At"
    },
    "verdict": {
      "type": "string",
      "maxLength": 320,
      "minLength": 1,
      "title": "Verdict"
    },
    "can_make_short_video": {
      "type": "string",
      "enum": [
        "yes",
        "conditional",
        "no"
      ],
      "title": "Can Make Short Video"
    },
    "content_readiness": {
      "type": "string",
      "enum": [
        "ready_for_research",
        "needs_more_signals",
        "not_suitable"
      ],
      "title": "Content Readiness"
    },
    "editorial_stage": {
      "type": "string",
      "enum": [
        "current_hot_candidate",
        "early_opportunity",
        "watch_only"
      ],
      "title": "Editorial Stage"
    },
    "recommended_format": {
      "type": "string",
      "maxLength": 120,
      "minLength": 1,
      "title": "Recommended Format"
    },
    "target_audience": {
      "items": {
        "type": "string",
        "minLength": 1
      },
      "type": "array",
      "maxItems": 8,
      "minItems": 1,
      "title": "Target Audience"
    },
    "audience_payoff": {
      "type": "string",
      "maxLength": 400,
      "minLength": 1,
      "title": "Audience Payoff"
    },
    "why_now": {
      "items": {
        "type": "string",
        "minLength": 1
      },
      "type": "array",
      "maxItems": 4,
      "title": "Why Now"
    },
    "why_this_can_work": {
      "items": {
        "type": "string",
        "minLength": 1
      },
      "type": "array",
      "maxItems": 6,
      "minItems": 2,
      "title": "Why This Can Work"
    },
    "attention_points": {
      "items": {
        "type": "string",
        "minLength": 1
      },
      "type": "array",
      "maxItems": 8,
      "minItems": 3,
      "title": "Attention Points"
    },
    "recommended_angle_index": {
      "type": "integer",
      "maximum": 2.0,
      "minimum": 0.0,
      "title": "Recommended Angle Index",
      "default": 0
    },
    "angles": {
      "items": {
        "$ref": "#/$defs/TopicContentAngle"
      },
      "type": "array",
      "maxItems": 3,
      "minItems": 3,
      "title": "Angles"
    },
    "short_video_handoff": {
      "$ref": "#/$defs/TopicShortVideoHandoff"
    },
    "watchouts": {
      "items": {
        "type": "string",
        "minLength": 1
      },
      "type": "array",
      "maxItems": 4,
      "title": "Watchouts"
    },
    "generation_quality": {
      "type": "string",
      "enum": [
        "complete",
        "degraded"
      ],
      "title": "Generation Quality",
      "default": "complete"
    },
    "score_breakdown": {
      "anyOf": [
        {
          "$ref": "#/$defs/TopicScoreBreakdown"
        },
        {
          "type": "null"
        }
      ]
    },
    "provider": {
      "type": "string",
      "maxLength": 40,
      "title": "Provider",
      "default": "gpt"
    },
    "model": {
      "type": "string",
      "maxLength": 120,
      "title": "Model",
      "default": ""
    }
  },
  "additionalProperties": false,
  "type": "object",
  "required": [
    "topic_id",
    "cached",
    "generated_at",
    "verdict",
    "can_make_short_video",
    "content_readiness",
    "editorial_stage",
    "recommended_format",
    "target_audience",
    "audience_payoff",
    "why_this_can_work",
    "attention_points",
    "angles",
    "short_video_handoff"
  ],
  "$defs": {
    "TopicContentAngle": {
      "properties": {
        "title": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1,
          "title": "Title"
        },
        "hook": {
          "type": "string",
          "maxLength": 240,
          "minLength": 1,
          "title": "Hook"
        },
        "format": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "title": "Format"
        },
        "angle_type": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "title": "Angle Type"
        },
        "viewer_question": {
          "type": "string",
          "maxLength": 320,
          "minLength": 1,
          "title": "Viewer Question"
        },
        "core_conflict": {
          "type": "string",
          "maxLength": 320,
          "minLength": 1,
          "title": "Core Conflict"
        },
        "promise": {
          "type": "string",
          "maxLength": 320,
          "minLength": 1,
          "title": "Promise"
        },
        "narrative_beats": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 7,
          "minItems": 3,
          "title": "Narrative Beats"
        },
        "opening_3_seconds": {
          "type": "string",
          "maxLength": 320,
          "minLength": 1,
          "title": "Opening 3 Seconds"
        },
        "visual_moments": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 6,
          "minItems": 2,
          "title": "Visual Moments"
        },
        "platform_fit": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 8,
          "minItems": 1,
          "title": "Platform Fit"
        },
        "research_questions": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 8,
          "minItems": 2,
          "title": "Research Questions"
        },
        "search_queries": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 10,
          "minItems": 2,
          "title": "Search Queries"
        },
        "preferred_source_types": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 8,
          "minItems": 1,
          "title": "Preferred Source Types"
        },
        "must_verify": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 8,
          "minItems": 1,
          "title": "Must Verify"
        },
        "avoid_claims": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 8,
          "minItems": 1,
          "title": "Avoid Claims"
        },
        "fact_basis": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 8,
          "title": "Fact Basis"
        },
        "unsupported_assumptions": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 8,
          "title": "Unsupported Assumptions"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "title",
        "hook",
        "format",
        "angle_type",
        "viewer_question",
        "core_conflict",
        "promise",
        "narrative_beats",
        "opening_3_seconds",
        "visual_moments",
        "platform_fit",
        "research_questions",
        "search_queries",
        "preferred_source_types",
        "must_verify",
        "avoid_claims"
      ],
      "title": "TopicContentAngle"
    },
    "TopicScoreBreakdown": {
      "properties": {
        "freshness": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 0.0,
          "title": "Freshness",
          "default": 0
        },
        "velocity": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 0.0,
          "title": "Velocity",
          "default": 0
        },
        "independent_sources": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Independent Sources",
          "default": 0
        },
        "cross_region": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Cross Region",
          "default": 0
        },
        "absolute_heat": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 0.0,
          "title": "Absolute Heat",
          "default": 0
        },
        "evidence": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 0.0,
          "title": "Evidence",
          "default": 0
        },
        "trend": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 0.0,
          "title": "Trend",
          "default": 0
        },
        "editorial": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 0.0,
          "title": "Editorial",
          "default": 0
        },
        "confidence": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 0.0,
          "title": "Confidence",
          "default": 0
        },
        "market_fit": {
          "type": "integer",
          "maximum": 100.0,
          "minimum": 0.0,
          "title": "Market Fit",
          "default": 0
        },
        "methodology": {
          "type": "string",
          "maxLength": 80,
          "title": "Methodology",
          "default": "topic-editorial-v3"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "title": "TopicScoreBreakdown"
    },
    "TopicShortVideoHandoff": {
      "properties": {
        "topic_id": {
          "type": "string",
          "maxLength": 240,
          "title": "Topic Id",
          "default": ""
        },
        "working_title": {
          "type": "string",
          "maxLength": 160,
          "minLength": 1,
          "title": "Working Title"
        },
        "one_line_pitch": {
          "type": "string",
          "maxLength": 360,
          "minLength": 1,
          "title": "One Line Pitch"
        },
        "selected_angle": {
          "type": "string",
          "maxLength": 160,
          "minLength": 1,
          "title": "Selected Angle"
        },
        "research_goal": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "title": "Research Goal"
        },
        "research_questions": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 12,
          "minItems": 2,
          "title": "Research Questions"
        },
        "search_queries": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 14,
          "minItems": 2,
          "title": "Search Queries"
        },
        "preferred_source_types": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 10,
          "minItems": 1,
          "title": "Preferred Source Types"
        },
        "must_verify": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 12,
          "minItems": 1,
          "title": "Must Verify"
        },
        "known_unknowns": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 10,
          "title": "Known Unknowns"
        },
        "target_audience": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 8,
          "minItems": 1,
          "title": "Target Audience"
        },
        "suggested_duration_sec": {
          "type": "integer",
          "maximum": 300.0,
          "minimum": 15.0,
          "title": "Suggested Duration Sec",
          "default": 60
        },
        "tone": {
          "type": "string",
          "maxLength": 160,
          "minLength": 1,
          "title": "Tone"
        },
        "visual_material_needs": {
          "items": {
            "type": "string",
            "minLength": 1
          },
          "type": "array",
          "maxItems": 10,
          "minItems": 1,
          "title": "Visual Material Needs"
        },
        "script_skeleton": {
          "items": {
            "type": "string",
            "enum": [
              "hook",
              "what_happened",
              "real_shift",
              "how_to_use",
              "field_scene",
              "boundary",
              "closing"
            ]
          },
          "type": "array",
          "maxItems": 7,
          "minItems": 3,
          "title": "Script Skeleton"
        },
        "growth_hypothesis": {
          "type": "string",
          "maxLength": 500,
          "minLength": 1,
          "title": "Growth Hypothesis"
        }
      },
      "additionalProperties": false,
      "type": "object",
      "required": [
        "working_title",
        "one_line_pitch",
        "selected_angle",
        "research_goal",
        "research_questions",
        "search_queries",
        "preferred_source_types",
        "must_verify",
        "target_audience",
        "tone",
        "visual_material_needs",
        "script_skeleton",
        "growth_hypothesis"
      ],
      "title": "TopicShortVideoHandoff"
    }
  }
}