#!/usr/bin/env python
"""Machine-readable schema of every property guessit can emit.

AUTO-GENERATED by scripts/gen_schema.py — do not edit by hand.
Regenerate: uv run python scripts/gen_schema.py
"""

from __future__ import annotations

from typing import Literal, TypedDict

PropertyType = Literal["string", "number", "boolean", "Language", "object"]


class PropertySchema(TypedDict, total=False):
    """Description of a single property guessit can emit."""

    type: list[PropertyType]
    array: bool
    scalar: bool
    enum: list[str | int]


GUESSIT_SCHEMA: dict[str, PropertySchema] = {
    "absolute_episode": {"type": ["number"], "array": True, "scalar": True},
    "alternative_title": {"type": ["string"], "array": True, "scalar": True},
    "another": {"type": ["string"], "array": False, "scalar": True},
    "aspect_ratio": {"type": ["number"], "array": False, "scalar": True},
    "audio_bit_rate": {"type": ["string"], "array": False, "scalar": True},
    "audio_channels": {"type": ["string"], "array": True, "scalar": True, "enum": ["1.0", "2.0", "5.1", "7.1"]},
    "audio_codec": {
        "type": ["string"],
        "array": True,
        "scalar": True,
        "enum": [
            "AAC",
            "DTS",
            "DTS-HD",
            "DTS:X",
            "Dolby Atmos",
            "Dolby Digital",
            "Dolby Digital Plus",
            "Dolby TrueHD",
            "FLAC",
            "LPCM",
            "MP2",
            "MP3",
            "Opus",
            "PCM",
            "Vorbis",
        ],
    },
    "audio_profile": {
        "type": ["string"],
        "array": True,
        "scalar": True,
        "enum": [
            "EX",
            "Extended Surround",
            "High Efficiency",
            "High Quality",
            "High Resolution Audio",
            "Low Complexity",
            "Master Audio",
        ],
    },
    "bonus": {"type": ["number"], "array": False, "scalar": True},
    "bonus_title": {"type": ["string"], "array": False, "scalar": True},
    "cd": {"type": ["number"], "array": False, "scalar": True},
    "cd_count": {"type": ["number"], "array": False, "scalar": True},
    "color_depth": {"type": ["string"], "array": False, "scalar": True, "enum": ["10-bit", "12-bit", "8-bit"]},
    "container": {
        "type": ["string"],
        "array": True,
        "scalar": True,
        "enum": [
            "3g2",
            "3gp",
            "3gp2",
            "7z",
            "MKV",
            "TS",
            "Ts",
            "ace",
            "arj",
            "asf",
            "avi",
            "bmp",
            "bz2",
            "cb7",
            "cbr",
            "cbz",
            "divx",
            "flv",
            "gif",
            "gz",
            "idx",
            "iso",
            "jpeg",
            "jpg",
            "m2ts",
            "m4v",
            "mk2",
            "mk3d",
            "mka",
            "mkv",
            "mov",
            "mp4",
            "mp4a",
            "mpeg",
            "mpg",
            "nfo",
            "nzb",
            "ogg",
            "ogm",
            "ogv",
            "png",
            "qt",
            "r00",
            "ra",
            "ram",
            "rar",
            "rm",
            "srt",
            "ssa",
            "tar",
            "tbn",
            "tgz",
            "torrent",
            "ts",
            "vob",
            "wav",
            "webm",
            "webp",
            "wma",
            "wmv",
            "zip",
        ],
    },
    "country": {"type": ["Language"], "array": False, "scalar": True},
    "crc32": {"type": ["string"], "array": False, "scalar": True},
    "credits_number": {"type": ["string"], "array": False, "scalar": True},
    "date": {"type": ["string"], "array": False, "scalar": True},
    "disc": {"type": ["number"], "array": True, "scalar": True},
    "edition": {
        "type": ["string"],
        "array": True,
        "scalar": True,
        "enum": [
            "Alternative Cut",
            "Collector",
            "Criterion",
            "Deluxe",
            "Director's Cut",
            "Director's Definitive Cut",
            "Extended",
            "Fan",
            "Festival",
            "IMAX",
            "Limited",
            "Remastered",
            "Restored",
            "Special",
            "Theatrical",
            "Ultimate",
            "Uncensored",
            "Uncut",
            "Unrated",
        ],
    },
    "episode": {"type": ["number"], "array": True, "scalar": True},
    "episode_count": {"type": ["number"], "array": False, "scalar": True},
    "episode_details": {"type": ["string"], "array": True, "scalar": True},
    "episode_format": {"type": ["string"], "array": False, "scalar": True, "enum": ["Minisode"]},
    "episode_title": {"type": ["string"], "array": False, "scalar": True},
    "film": {"type": ["number"], "array": False, "scalar": True},
    "film_title": {"type": ["string"], "array": False, "scalar": True},
    "frame_rate": {"type": ["string"], "array": False, "scalar": True},
    "height": {"type": ["string"], "array": False, "scalar": True},
    "imdb_id": {"type": ["string"], "array": False, "scalar": True},
    "language": {"type": ["Language"], "array": True, "scalar": True},
    "mimetype": {"type": ["string"], "array": False, "scalar": True},
    "other": {
        "type": ["string"],
        "array": True,
        "scalar": True,
        "enum": [
            "2in1",
            "3D",
            "Audio Fixed",
            "BT.2020",
            "Banner",
            "Bonus",
            "Classic",
            "Clear Art",
            "Clear Logo",
            "Colorized",
            "Complete",
            "Converted",
            "Cover",
            "Creditless",
            "Disc Art",
            "Documentary",
            "Dolby Vision",
            "Dual Audio",
            "East Coast Feed",
            "Ending Credits",
            "Extras",
            "Fan Subtitled",
            "Fanart",
            "Fast Subtitled",
            "Fix",
            "Full HD",
            "HD",
            "HDR10",
            "Half Over Under",
            "Half Side By Side",
            "Hardcoded Subtitles",
            "High Frame Rate",
            "High Quality",
            "High Resolution",
            "Hybrid",
            "Internal",
            "Landscape",
            "Line Audio",
            "Line Dubbed",
            "Logo",
            "Low Definition",
            "Mic Dubbed",
            "Micro HD",
            "Mux",
            "NTSC",
            "Obfuscated",
            "Open Matte",
            "Opening Credits",
            "Original Animated Video",
            "Original Animation DVD",
            "Original Aspect Ratio",
            "Original Net Animation",
            "Original Video",
            "Over Under",
            "PAL",
            "PS Vita",
            "Poster",
            "Preair",
            "Proof",
            "Proper",
            "Read NFO",
            "Reencoded",
            "Region 5",
            "Region C",
            "Remux",
            "Repost",
            "Retail",
            "Rip",
            "SECAM",
            "Sample",
            "Screener",
            "Side By Side",
            "Standard Dynamic Range",
            "Straight to Video",
            "Sync Fixed",
            "Thumbnail",
            "Trailer",
            "Ultra HD",
            "Upscaled",
            "Variable Frame Rate",
            "Virtual Reality",
            "West Coast Feed",
            "Widescreen",
            "XXX",
        ],
    },
    "part": {"type": ["number"], "array": True, "scalar": True},
    "proper_count": {"type": ["number"], "array": False, "scalar": True},
    "release_group": {"type": ["string"], "array": False, "scalar": True},
    "scan_type": {"type": ["string"], "array": False, "scalar": True},
    "screen_size": {
        "type": ["string"],
        "array": False,
        "scalar": True,
        "enum": [
            "1080i",
            "1080p",
            "1094x576",
            "1198x900",
            "1368x720",
            "1438x1080",
            "1440p",
            "1444x866",
            "1710x900",
            "2050x1080",
            "2160p",
            "250x360",
            "2878x2160",
            "360i",
            "360p",
            "368p",
            "4100x2160",
            "4320p",
            "450x360",
            "480i",
            "480p",
            "490x368",
            "500x1080",
            "500x2160",
            "500x4320",
            "500x480",
            "500x576",
            "500x720",
            "500x900",
            "540i",
            "540p",
            "5758x2160",
            "576i",
            "576p",
            "638x480",
            "684x360",
            "700x368",
            "720p",
            "720x432",
            "766x576",
            "8198x2160",
            "900i",
            "900p",
            "920x480",
            "950x720",
            "960x544",
        ],
    },
    "season": {"type": ["number"], "array": True, "scalar": True},
    "season_count": {"type": ["number"], "array": False, "scalar": True},
    "size": {"type": ["string"], "array": False, "scalar": True},
    "source": {
        "type": ["string"],
        "array": True,
        "scalar": True,
        "enum": [
            "Analog HDTV",
            "Blu-ray",
            "Camera",
            "DVD",
            "Digital Master",
            "Digital TV",
            "HD Camera",
            "HD Telecine",
            "HD Telesync",
            "HD-DVD",
            "HDTV",
            "Laserdisc",
            "Pay-per-view",
            "Satellite",
            "TV",
            "Telecine",
            "Telesync",
            "Ultra HD Blu-ray",
            "Ultra HDTV",
            "VHS",
            "Video on Demand",
            "Web",
            "Workprint",
        ],
    },
    "streaming_service": {
        "type": ["string"],
        "array": False,
        "scalar": True,
        "enum": [
            "9Now",
            "A&E",
            "ABC",
            "ABC Australia",
            "AMC",
            "AOL",
            "ARD",
            "Adult Swim",
            "Al Jazeera English",
            "Amazon Prime",
            "America's Test Kitchen",
            "Animal Planet",
            "Anime Digital Network",
            "AnimeLab",
            "AppleTV",
            "BBC iPlayer",
            "Binge",
            "Blackpills",
            "BluTV",
            "Boomerang",
            "BravoTV",
            "CBC",
            "CBS",
            "CHRGD",
            "CNBC",
            "CSpan",
            "CTV",
            "CWSeed",
            "Canal+",
            "Cartoon Network",
            "Channel 4",
            "Channel 5",
            "Cinemax",
            "Comedians in Cars Getting Coffee",
            "Comedy Central",
            "Country Music Television",
            "Crackle",
            "Crave",
            "Crunchy Roll",
            "CuriosityStream",
            "DC Universe",
            "DIY Network",
            "DPlay",
            "Daisuki",
            "Deadhouse Films",
            "Digiturk Diledigin Yerde",
            "Discovery",
            "Discovery Plus",
            "Disney",
            "Disney+",
            "Doc Club",
            "DramaFever",
            "E!",
            "ESPN",
            "El Trece",
            "Esquire",
            "FYI Network",
            "Facebook Watch",
            "Family",
            "Family Jr",
            "Fandor",
            "Food Network",
            "Fox",
            "Fox Premium",
            "Foxtel",
            "Freeform",
            "GagaOOLala",
            "Global",
            "GloboSat Play",
            "HBO Go",
            "HBO Max",
            "HGTV",
            "Hallmark",
            "History",
            "Hulu",
            "IFC",
            "ITV",
            "Investigation Discovery",
            "Knowledge Network",
            "Lifetime",
            "MBC",
            "MSNBC",
            "MTV",
            "MUBI",
            "Max",
            "Motor Trend OnDemand",
            "NBA TV",
            "NBC",
            "NFL",
            "NFL Now",
            "NHL GameCenter",
            "National Audiovisual Institute",
            "National Film Board",
            "National Geographic",
            "Netflix",
            "Nickelodeon",
            "Norsk Rikskringkasting",
            "NowTV",
            "OnDemandKorea",
            "Oprah Winfrey Network",
            "Opto",
            "PBS",
            "PBS Kids",
            "Paramount+",
            "Peacock",
            "Playstation Network",
            "Pluzz",
            "PokerGO",
            "RTE One",
            "RUUTU",
            "Rakuten TV",
            "SBS",
            "Science Channel",
            "SeeSo",
            "Shomi",
            "Showtime",
            "Sony",
            "Spike",
            "Spike TV",
            "Sportsnet",
            "Sprout",
            "Stan",
            "Starz",
            "Sveriges Television",
            "SwearNet",
            "Syfy",
            "TBS",
            "TFou",
            "TLC",
            "TV Land",
            "TV3 Ireland",
            "TV4 Sweeden",
            "TVING",
            "TVNZ",
            "The CW",
            "The Roku Channel",
            "TubiTV",
            "UFC",
            "UFC Fight Pass",
            "UKTV",
            "USA Network",
            "Univision",
            "VH1",
            "VRV",
            "Velocity",
            "Viceland",
            "Viki",
            "Vimeo",
            "W Network",
            "WWE Network",
            "WatchMe",
            "Xbox Video",
            "Yahoo",
            "YouTube Red",
            "ZDF",
            "ePix",
            "hoichoi",
            "iQIYI",
            "iTunes",
            "iflix",
        ],
    },
    "subtitle_language": {"type": ["Language"], "array": True, "scalar": True},
    "title": {"type": ["string"], "array": False, "scalar": True},
    "tmdb_id": {"type": ["number"], "array": False, "scalar": True},
    "tvdb_id": {"type": ["number"], "array": False, "scalar": True},
    "type": {"type": ["string"], "array": False, "scalar": True, "enum": ["episode", "movie"]},
    "uuid": {"type": ["string"], "array": False, "scalar": True},
    "version": {"type": ["number"], "array": False, "scalar": True},
    "video_api": {"type": ["string"], "array": False, "scalar": True, "enum": ["DXVA"]},
    "video_bit_rate": {"type": ["string"], "array": False, "scalar": True},
    "video_codec": {
        "type": ["string"],
        "array": False,
        "scalar": True,
        "enum": ["DivX", "H.263", "H.264", "H.265", "MPEG-2", "RealVideo", "VC-1", "VP7", "VP8", "VP9", "Xvid"],
    },
    "video_profile": {
        "type": ["string"],
        "array": True,
        "scalar": True,
        "enum": [
            "Advanced Video Codec High Definition",
            "Baseline",
            "Extended",
            "High",
            "High 10",
            "High 4:2:2",
            "High 4:4:4 Predictive",
            "High Efficiency Video Coding",
            "Main",
            "Scalable Video Coding",
        ],
    },
    "volume": {"type": ["number"], "array": False, "scalar": True},
    "website": {"type": ["string"], "array": False, "scalar": True},
    "week": {"type": ["number"], "array": False, "scalar": True},
    "width": {"type": ["string"], "array": False, "scalar": True},
    "year": {"type": ["number"], "array": False, "scalar": True},
}
