{
  "type": "video",
  "description": "Display a video from a URL, base64 data URL, or signable storage path.",
  "hasChildren": false,
  "propsSchema": {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
      "src": {
        "type": "string",
        "description": "Video URL, base64 data URL, or signable storage path (e.g., \"s3://bucket/clip.mp4\")"
      },
      "alt": {
        "description": "Accessible description of the video",
        "type": "string"
      },
      "objectFit": {
        "default": "contain",
        "description": "How the video fits its container",
        "type": "string",
        "enum": [
          "contain",
          "cover",
          "fill",
          "none",
          "scale-down"
        ]
      },
      "controls": {
        "default": true,
        "description": "Whether to show native playback controls",
        "type": "boolean"
      },
      "autoPlay": {
        "default": false,
        "description": "Whether the video starts playing automatically",
        "type": "boolean"
      },
      "loop": {
        "default": false,
        "description": "Whether the video loops after ending",
        "type": "boolean"
      },
      "muted": {
        "default": false,
        "description": "Whether the video is muted (required for autoplay in most browsers)",
        "type": "boolean"
      },
      "playsInline": {
        "default": true,
        "description": "Whether the video should play inline on mobile devices",
        "type": "boolean"
      },
      "poster": {
        "description": "Poster image URL shown before playback starts",
        "type": "string"
      },
      "style": {
        "description": "Inline CSS styles as a plain CSS string (e.g., \"border-radius: 8px\")",
        "type": "string"
      }
    },
    "required": [
      "src"
    ],
    "description": "Displays a video from a URL, base64 data URL, or signable storage path."
  }
}
