{
    "$schema": "http://json-schema.org/draft-03/schema",
    "required": true,
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "items": {
            "type": "array",
            "additionalProperties": false,
            "items": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                    "track_id": {
                        "type": "integer",
                        "description": "Maps to track.id."
                    },
                    "track_number": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 65535,
                        "description": "Maps to track.track_id. The sequence of this track on the disc. Required to create."
                    },
                    "track_name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100,
                        "description": "Maps to track.name. Required to create."
                    },
                    "side": {
                        "type": ["string", "null"],
                        "minLength": 1,
                        "maxLength": 5,
                        "description": "Maps to track.side."
                    },
                    "performer": {
                        "type": "array",
                        "minLength": 1,
                        "description": "Maps one-to-many from track to to track_artist. Each item should map to track_artist.artist_name, and track_artist.type should be set to 'performer'. Required to create."
                    },
                    "song_writers": {
                        "type": "array",
                        "minLength": 0,
                        "description": "Maps one-to-many from track to to track_writers. Each item should map to track_writer.writer_name."
                    },
                    "isrc": {
                        "type": ["string", "null"],
                        "minLength": 12,
                        "maxLength": 12,
                        "description": "Maps to track.isrc."
                    },
                    "disc": {
                        "type": ["integer", "null"],
                        "description": "Maps to track.cd."
                    },
                    "length": {
                        "type": ["string", "null"],
                        "minLength": 1,
                        "pattern": "[0-9]{1,3}:[0-5]?[0-9]:[0-5][0-9]",
                        "description": "String representation of time in HH:MM:SS or H:M:SS format. Maps to track.length_minutes and track.length_seconds."
                    },
                    "is_deleted": {
                        "type": "string",
                        "enum": [
                            "Y",
                            "null"
                        ],
                        "description": "If set to 'Y', this track will be removed from the product. track_id must be set for this to execute."
                    },
                    "us_publishing_obligation": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 50,
                        "required": false,
                        "enum": ["Composition", "ControlledByYourLabel", "PublicDomain"]
                    },
                    "third_party_publisher": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 1,
                        "required": false,
                        "enum": ["Y", "N"]
                    }
                }
            }
        }
    }
}
