{
    "$schema": "http://json-schema.org/draft-03/schema",
    "additionalProperties": false,
    "properties": {
        "artists": {
            "required": true,
            "type": "array",
            "minItems": 1,
            "items": {
                "type": "object",
                "required": ["artist_type", "artist_name"]
            },
            "description": "Array of objects containing the name and types of artists."
        },
        "artist": {
            "required": true,
            "type": "array",
            "minItems": 1,
            "items": {
                "type": "string"
            },
            "description": "Array of strings containing the track artist names."
        },
        "isrc": {
            "required": false,
            "type": ["string", "null"],
            "pattern": "^[a-zA-Z\\d]*$",
            "minLength": 12,
            "maxLength": 12,
            "description": "ISRC of the sample"
        },
        "notes": {
            "required": false,
            "type": ["string", "null"],
            "maxLength": 3000,
            "description": "Additional notes about the sample."
        },
        "pLine": {
            "required": false,
            "type": ["string", "null"],
            "maxLength": 255,
            "pattern": "^(19|20)[0-9]{2}(\\s\\S+)+$",
            "description": "P line"
        },
        "sampleType": {
            "required": true,
            "type": "string",
            "enum": ["original_recording", "re_recording"],
            "description": "Clearance information about the sample."
        },
        "trackLength": {
            "required": false,
            "type": ["string", "null"],
            "description": "The length of the sample in the format."
        },
        "trackName": {
            "required": true,
            "type": "string",
            "maxLength": 200,
            "description": "The name (title) of the sampled track."
        },
        "uniqueTrackId": {
            "required": true,
            "type": "number",
            "description": "The track id this sample belongs to."
        }
    },
    "required": true,
    "type": "object"
}
