{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/justblogged-com/json-schema/justblogged-com-create-page-request-schema.json",
  "title": "CreatePageRequest",
  "x-generated": "2026-11-13",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/justblogged-com-openapi.yml#/components/schemas/CreatePageRequest",
  "type": "object",
  "required": [
    "title",
    "body"
  ],
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "slug": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 100,
      "pattern": "^(?!(?:[aA][dD][mM][iI][nN]|[lL][oO][gG][iI][nN]|[sS][iI][gG][nN][uU][pP]|[aA][pP][iI]|[aA][sS][sS][eE][tT][sS]|[rR][oO][bB][oO][tT][sS]\\.[tT][xX][tT]|[sS][iI][tT][eE][mM][aA][pP]\\.[xX][mM][lL]|[sS][iI][tT][eE][mM][aA][pP]-[iI][nN][dD][eE][xX]\\.[xX][mM][lL]|[fF][eE][eE][dD]|[rR][sS][sS]|[tT][aA][gG][sS]|[tT][aA][gG]|[cC][oO][lL][lL][eE][cC][tT][iI][oO][nN][sS]|[cC][oO][lL][lL][eE][cC][tT][iI][oO][nN]|[pP][aA][gG][eE][sS]|[pP][aA][gG][eE]|[sS][iI][tT][eE][mM][aA][pP]|[sS][iI][tT][eE][mM][aA][pP][sS]|[sS][eE][aA][rR][cC][hH]|[dD][aA][sS][hH][bB][oO][aA][rR][dD]|[sS][eE][tT][tT][iI][nN][gG][sS]|[pP][rR][oO][fF][iI][lL][eE])$)(?!.*--)(?:[\\p{L}\\p{N}_-]+)?$",
      "description": "Auto-generated from title if not provided"
    },
    "body": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000000
    },
    "status": {
      "type": "string",
      "enum": [
        "draft",
        "published"
      ],
      "default": "draft"
    },
    "image": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 500
    },
    "metadata": {
      "type": "object",
      "maxProperties": 20,
      "propertyNames": {
        "minLength": 1,
        "maxLength": 50
      },
      "properties": {
        "description": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        }
      },
      "additionalProperties": {
        "type": "string",
        "minLength": 1,
        "maxLength": 500
      },
      "description": "Custom metadata (max 20 fields, description max 200 chars)"
    }
  }
}