{
    "$schema": "http://json-schema.org/draft-03/schema",
    "additionalProperties": false,
    "properties": {
        "artist_id": {
            "required": true,
            "type": "integer",
            "description": "Unique identifier of the associated artist."
        },
        "composer": {
            "required": false,
            "type": "array",
            "items": {
                "type": "object",
                "required": ["role", "name"]
            },
            "description": "Array of objects containing the name and role of composers."
        },
        "conductor": {
            "required": false,
            "type": "array",
            "items": {
                "type": "object",
                "required": ["role", "name"]
            },
            "description": "Array of objects containing the name and role of conductors."
        },
        "description": {
            "required": false,
            "type": ["string", "null"],
            "description": "Description of the product."
        },
        "ensemble": {
            "required": false,
            "type": "array",
            "items": {
                "type": "object",
                "required": ["role", "name"]
            },
            "description": "Array of objects containing the name and role of ensembles."
        },
        "format": {
            "required": true,
            "type": "string",
            "enum": ["Single", "EP", "Full Length"],
            "description": "Release format."
        },
        "genre_id": {
            "required": false,
            "type": ["integer", "null"],
            "description": "Unique identifier of the associated genre."
        },
        "c_line": {
            "required": false,
            "type": ["string", "null"],
            "pattern": "^$|^[0-9]{4}(,\\s[0-9]{4})*(\\s\\S+)+$",
            "maxLength": 255,
            "description": "C-line information for the product."
        },
        "p_line": {
            "required": false,
            "type": ["string", "null"],
            "pattern": "^$|^[0-9]{4}(,\\s[0-9]{4})*(\\s\\S+)+$",
            "maxLength": 255,
            "description": "P-line information for the product."
        },
        "featuring": {
            "required": false,
            "type": "array",
            "items": {
                "type": "object",
                "required": ["role", "name"]
            },
            "description": "Array of objects containing the name and role of featuring artists."
        },
        "imprint": {
            "required": false,
            "type": ["string", "null"],
            "description": "The name of the label that owns the product."
        },
        "lyricist": {
            "required": false,
            "type": "array",
            "items": {
                "type": "object",
                "required": ["role", "name"]
            },
            "description": "Array of objects containing the name and role of lyricists."
        },
        "manufacturer_upc": {
            "required": false,
            "type": "string",
            "minLength": 12,
            "maxLength": 13,
            "description": "Manufacturer's universal product code for the product."
        },
        "meta_language": {
            "required": false,
            "type": ["string", "null"],
            "description": "The language used in the product metadata."
        },
        "orchestra": {
            "required": false,
            "type": "array",
            "items": {
                "type": "object",
                "required": ["role", "name"]
            },
            "description": "Array of objects containing the name and role of orchestras."
        },
        "previewable": {
            "required": false,
            "type": ["string", "null"],
            "description": "Whether or not the product is previewable on iTunes."
        },
        "producer": {
            "required": false,
            "type": "array",
            "items": {
                "type": "object",
                "required": ["role", "name"]
            },
            "description": "Array of objects containing the name and role of producers."
        },
        "product_artists.": {
            "required": true,
            "type": "array",
            "items": {
                "type": "object",
                "required": ["role", "name"]
            },
            "description": "Array of objects containing the name and role of all artists."
        },
        "product_code": {
            "type": ["string", "null"],
            "maxLength": 128,
            "pattern": "^[a-zA-Z0-9-]*$",
            "description": "Identifier for the product, must be unique at the vendor or subaccount level."
        },
        "product_name": {
            "required": true,
            "type": ["string", "integer"],
            "minLength": 1,
            "maxLength": 255,
            "description": "The name (title) of the product."
        },
        "preorder_date": {
            "required": false,
            "type": ["string", "null"],
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
            "description": "The date when preorders of the product begin (or began)."
        },
        "primary_artist": {
            "required": false,
            "type": "array",
            "items": {
                "type": "object",
                "required": ["role", "name"]
            },
            "minItems": 0,
            "description": "Array of objects containing the name and role of primary artists."
        },
        "feature_to_primary": {
            "required": false,
            "type": "array",
            "items": {
                "type": "object",
                "required": ["role", "name"]
            },
            "minItems": 0,
            "description": "Array of objects containing the name and role of feature to primary artists."
        },
        "release_date": {
            "required": false,
            "type": ["string", "null"],
            "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
            "description": "The date when the product will be (or was) released."
        },
        "remixer": {
            "required": false,
            "type": "array",
            "items": {
                "type": "object",
                "required": ["role", "name"]
            },
            "description": "Array of objects containing the name and role of remixers."
        },
        "sale_start_date": {
            "required": false,
            "type": ["string", "null"],
            "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
            "description": "The date when sales of the product begin (or began)."
        },
        "subgenre_id": {
            "required": false,
            "type": ["integer", "null"],
            "minLength": 1,
            "description": "Unique identifier of the associated subgenre."
        },
        "version": {
            "required": false,
            "type": ["string", "null"],
            "maxLength": 255,
            "description": "The version of this product, e.g. Deluxe"
        },
        "delivered_version": {
            "required": false,
            "type": ["string", "null"],
            "maxLength": 255,
            "description": "Delivered version for this release."
        },
        "special_instructions": {
            "required": false,
            "type": ["string", "null"],
            "maxLength": 3000,
            "description": "Special instructions to be included with the product."
        },
        "product_highlights": {
            "required": false,
            "type": ["string", "null"],
            "maxLength": 3000,
            "description": "Marketing highlight associated with product."
        }
    },
    "required": true,
    "type": "object"
}
