{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/bidclub-ai/json-schema/bidclub-ai-pitch-page-schema.json",
  "title": "PitchPage",
  "x-generated": "2026-11-02",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/bidclub-ai-openapi.json#/components/schemas/PitchPage",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "posts",
    "nextCursor",
    "status"
  ],
  "properties": {
    "posts": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Pitch"
      }
    },
    "nextCursor": {
      "type": [
        "string",
        "null"
      ]
    },
    "status": {
      "type": "string",
      "enum": [
        "ready",
        "unavailable"
      ]
    }
  },
  "$defs": {
    "Pitch": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "id",
        "handle",
        "date",
        "asset",
        "tickers",
        "title",
        "quality",
        "bullets",
        "sourceUrl",
        "wordCount",
        "chinese"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[0-9]+$"
        },
        "handle": {
          "type": "string",
          "pattern": "^@[A-Za-z0-9_]{1,15}$"
        },
        "date": {
          "type": "string",
          "format": "date-time"
        },
        "asset": {
          "type": "string",
          "enum": [
            "stock",
            "token"
          ]
        },
        "tickers": {
          "type": "array",
          "maxItems": 1,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 40
          }
        },
        "title": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "quality": {
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "bullets": {
          "type": "array",
          "minItems": 2,
          "maxItems": 4,
          "items": {
            "type": "string",
            "minLength": 1
          }
        },
        "sourceUrl": {
          "type": "string",
          "format": "uri"
        },
        "wordCount": {
          "type": "integer",
          "minimum": 0
        },
        "chinese": {
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": false,
          "required": [
            "title",
            "bullets"
          ],
          "properties": {
            "title": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            "bullets": {
              "type": "array",
              "minItems": 2,
              "maxItems": 4,
              "items": {
                "type": "string",
                "minLength": 1
              }
            }
          }
        }
      }
    }
  }
}