{
    "$schema": "http://json-schema.org/draft-04/schema",
    "additionalProperties": false,
    "definitions": {
        "___traits_trait_additional_properties_json": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "additionalProperties": {},
            "description": "A grab-bag object for non-validatable data.",
            "title": "Has additional properties",
            "type": "object"
        },
        "___traits_trait_alignment_json": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "A property used to determine horizontal positioning of a content element relative to the elements that immediately follow it in the element sequence.",
            "enum": [
                "left",
                "right",
                "center"
            ],
            "title": "Alignment",
            "type": "string"
        },
        "___traits_trait_channel_json": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "An optional list of output types for which this element should be visible",
            "items": {
                "type": "string"
            },
            "title": "Channel trait",
            "type": "array"
        },
        "___traits_trait_id_json": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "A globally unique identifier of the content in the ANS repository.",
            "title": "Globally Unique ID trait",
            "type": "string"
        },
        "___traits_trait_subtype_json": {
            "$schema": "http://json-schema.org/draft-04/schema#",
            "description": "A user-defined categorization method to supplement type. In Arc, this field is reserved for organization-defined purposes, such as selecting the PageBuilder template that should be used to render a document.",
            "title": "Subtype or Template",
            "type": "string"
        }
    },
    "description": "A custom embed element. Can be used to reference content from external providers about which little is known.",
    "properties": {
        "_id": {
            "$ref": "#/definitions/___traits_trait_id_json"
        },
        "additional_properties": {
            "$ref": "#/definitions/___traits_trait_additional_properties_json"
        },
        "alignment": {
            "$ref": "#/definitions/___traits_trait_alignment_json"
        },
        "channels": {
            "$ref": "#/definitions/___traits_trait_channel_json"
        },
        "embed": {
            "additionalProperties": false,
            "description": "The embed data.",
            "properties": {
                "config": {
                    "additionalProperties": false,
                    "description": "Arbitrary configuration data generated by a plugin. Users are responsible for maintaining schema.",
                    "patternProperties": {
                        "^([a-zA-Z0-9_])*$": {}
                    },
                    "properties": {
                        "referent": {
                            "not": {}
                        },
                        "type": {
                            "not": {}
                        },
                        "version": {
                            "not": {}
                        }
                    },
                    "title": "Embed Configuration",
                    "type": "object"
                },
                "id": {
                    "description": "Foreign ID of embedded item.",
                    "maxLength": 128,
                    "minLength": 1,
                    "title": "Embed ID",
                    "type": "string"
                },
                "url": {
                    "description": "Provider URL for this embed item. When concatenated with Embed ID, should produce a URL that returns json metadata about the embedded content.",
                    "maxLength": 512,
                    "minLength": 1,
                    "title": "Embed Provider URL",
                    "type": "string"
                }
            },
            "required": [
                "id",
                "url"
            ],
            "title": "Embed",
            "type": "object"
        },
        "subtype": {
            "$ref": "#/definitions/___traits_trait_subtype_json"
        },
        "type": {
            "enum": [
                "custom_embed"
            ],
            "type": "string"
        }
    },
    "required": [
        "type",
        "embed"
    ],
    "title": "Custom Embed",
    "type": "object"
}