{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://github.com/api-evangelist/ucsc-genomic-data/blob/main/json-schema/ucsc-genomic-data-track-schema.json",
  "title": "UCSC Genome Browser Track",
  "description": "Schema for an annotation track in the UCSC Genome Browser.",
  "type": "object",
  "properties": {
    "track": {
      "type": "string",
      "description": "Track name identifier."
    },
    "shortLabel": {
      "type": "string",
      "description": "Short display label (max 17 characters)."
    },
    "longLabel": {
      "type": "string",
      "description": "Long description label."
    },
    "type": {
      "type": "string",
      "description": "Track data type (e.g., bed, bigBed, bigWig, bam).",
      "examples": ["bed", "bigBed", "bigWig", "bam", "vcf", "bigGenePred"]
    },
    "visibility": {
      "type": "string",
      "enum": ["hide", "dense", "squish", "pack", "full"],
      "description": "Default track visibility mode."
    },
    "html": {
      "type": "string",
      "description": "Path to the track description HTML page."
    },
    "subTracks": {
      "type": "object",
      "description": "Sub-tracks for composite track types.",
      "additionalProperties": {
        "$ref": "#"
      }
    }
  }
}
