{
    "$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": "This represents a reference to external content that should be partially denormalized. Unlike a regular reference, it is used in a promotional context only and will never include the content_elements or related_content of the object being denormalized.",
    "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"
        },
        "referent": {
            "additionalProperties": false,
            "properties": {
                "id": {
                    "description": "The id of the ANS document to denormalize.",
                    "type": "string"
                },
                "referent_properties": {
                    "additionalProperties": {},
                    "description": "An object for key-value pairs that should override the values of keys with the same name in the denormalized object",
                    "type": "object"
                },
                "type": {
                    "description": "The type of the ANS document to denormalize.",
                    "enum": [
                        "story",
                        "gallery",
                        "video"
                    ],
                    "type": "string"
                }
            },
            "required": [
                "id",
                "type"
            ],
            "type": "object"
        },
        "subtype": {
            "$ref": "#/definitions/___traits_trait_subtype_json"
        },
        "type": {
            "enum": [
                "promo_reference"
            ],
            "type": "string"
        }
    },
    "required": [
        "type",
        "referent"
    ],
    "title": "Representation of a normalized element, intended to only partially denormalize.",
    "type": "object"
}