{
    "type": "object",
    "properties": {
        "structured": {
            "type": "object",
            "required": [
                "content"
            ],
            "properties": {
                "content": {
                    "type": "array",
                    "items": {
                        "oneOf": [
                            {
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "image"
                                        ]
                                    },
                                    "image": {
                                        "$ref": "#/components/schemas/Image"
                                    }
                                }
                            },
                            {
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "text"
                                        ]
                                    },
                                    "text": {
                                        "type": "string"
                                    }
                                }
                            },
                            {
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "video"
                                        ]
                                    },
                                    "video": {
                                        "$ref": "#/components/schemas/Video"
                                    }
                                }
                            },
                            {
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "pull_quote"
                                        ]
                                    },
                                    "pull_quote": {
                                        "$ref": "#/components/schemas/PullQuote"
                                    }
                                }
                            },
                            {
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "excerpt"
                                        ]
                                    },
                                    "excerpt": {
                                        "$ref": "#/components/schemas/Excerpt"
                                    }
                                }
                            },
                            {
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "animal_facts"
                                        ]
                                    },
                                    "animal_facts": {
                                        "$ref": "#/components/schemas/AnimalFact"
                                    }
                                }
                            },
                            {
                                "description": "Deprecated. Use ImageGallery instead",
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "gallery"
                                        ]
                                    },
                                    "gallery": {
                                        "$ref": "#/components/schemas/Gallery"
                                    }
                                }
                            },
                            {
                                "description": "Replace Gallery component",
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "image_gallery"
                                        ]
                                    },
                                    "image_gallery": {
                                        "$ref": "#/components/schemas/ImageGallery"
                                    }
                                }
                            },
                            {
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "inline_promo"
                                        ]
                                    },
                                    "inline_promo": {
                                        "$ref": "#/components/schemas/InlinePromo"
                                    }
                                }
                            },
                            {
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "listicle"
                                        ]
                                    },
                                    "listicle": {
                                        "$ref": "#/components/schemas/Listicle"
                                    }
                                }
                            },
                            {
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "immersive_lead"
                                        ]
                                    },
                                    "immersive_lead": {
                                        "$ref": "#/components/schemas/ImmersiveLead"
                                    }
                                }
                            },
                            {
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "kicker"
                                        ]
                                    },
                                    "kicker": {
                                        "$ref": "#/components/schemas/Kicker"
                                    }
                                }
                            },
                            {
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "youtube_video"
                                        ]
                                    },
                                    "youtube_video": {
                                        "$ref": "#/components/schemas/YoutubeVideo"
                                    }
                                }
                            },
                            {
                                "properties": {
                                    "content_type": {
                                        "type": "string",
                                        "enum": [
                                            "twitter_tweet"
                                        ]
                                    },
                                    "twitter_tweet": {
                                        "$ref": "#/components/schemas/TwitterTweet"
                                    }
                                }
                            }
                        ],
                        "type": "object"
                    }
                }
            }
        },
        "text": {
            "type": "object",
            "required": [
                "body"
            ],
            "properties": {
                "body": {
                    "type": "string"
                }
            }
        }
    },
    "required": [
        "structured",
        "text"
    ]
}
