{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://tune.toys/schemas/platform/enums.schema.json",
  "title": "PlatformEnums",
  "description": "Closed platform enums. Generated TypeScript exports each as a type and an as-const array; this file is their single source.",
  "$defs": {
    "TargetProfile": {
      "title": "TargetProfile",
      "description": "Closed target profile shared with the exporters, matrix editor, download chooser and update feed.",
      "type": "string",
      "enum": [
        "browser",
        "macos-arm64",
        "macos-x64",
        "macos-universal",
        "windows-x64",
        "linux-x64",
        "ios",
        "android",
        "chrome-extension",
        "desktop-app-macos",
        "desktop-app-windows",
        "desktop-app-linux",
        "player-package"
      ]
    },
    "ArtifactFormat": {
      "title": "ArtifactFormat",
      "description": "Artifact format; formats multiply within a target profile.",
      "type": "string",
      "enum": [
        "web",
        "vst3",
        "au",
        "clap",
        "standalone",
        "installer",
        "player_package",
        "extension",
        "mobile"
      ]
    },
    "ArtifactArch": {
      "title": "ArtifactArch",
      "description": "CPU architecture of an artifact.",
      "type": "string",
      "enum": ["arm64", "x64", "universal", "any"]
    },
    "SignatureState": {
      "title": "SignatureState",
      "description": "Code-signature state read from the artifact inventory; the server never upgrades it by itself.",
      "type": "string",
      "enum": ["unsigned", "dev", "signed", "notarized"]
    },
    "QualificationState": {
      "title": "QualificationState",
      "description": "Artifact qualification; upgrades only, a new digest is a new artifact.",
      "type": "string",
      "enum": ["unqualified", "declared", "tested"]
    },
    "ProductKind": {
      "title": "ProductKind",
      "description": "What a product sells or distributes. `app` is an official application (the desktop app) whose versions carry artifacts directly and pin no Toy releases.",
      "type": "string",
      "enum": ["toy", "chain", "preset_pack", "sample_pack", "bundle", "app"]
    },
    "ProductState": {
      "title": "ProductState",
      "description": "Product lifecycle state.",
      "type": "string",
      "enum": ["draft", "published", "unlisted", "delisted", "removed"]
    },
    "ProductVersionState": {
      "title": "ProductVersionState",
      "description": "Product version lifecycle state.",
      "type": "string",
      "enum": ["draft", "building", "published", "yanked"]
    },
    "PublisherKind": {
      "title": "PublisherKind",
      "description": "Personal publishers reuse the account handle; organizations have members.",
      "type": "string",
      "enum": ["personal", "organization"]
    },
    "PublisherState": {
      "title": "PublisherState",
      "description": "Publisher onboarding and enforcement state.",
      "type": "string",
      "enum": [
        "draft",
        "onboarding",
        "verified",
        "publishing_enabled",
        "restricted",
        "suspended"
      ]
    },
    "PublisherRole": {
      "title": "PublisherRole",
      "description": "Publisher member role.",
      "type": "string",
      "enum": ["owner", "release_manager", "editor", "finance", "support"]
    },
    "ListingVisibility": {
      "title": "ListingVisibility",
      "description": "Product listing visibility.",
      "type": "string",
      "enum": ["public", "unlisted", "private"]
    },
    "ListingAssetKind": {
      "title": "ListingAssetKind",
      "description": "Generated or uploaded listing asset kind; manual and marketing_image are upload-only.",
      "type": "string",
      "enum": [
        "thumbnail",
        "og",
        "social",
        "gif",
        "video",
        "audio_preview",
        "screenshot",
        "marketing_image",
        "manual",
        "readme",
        "llms",
        "manifest",
        "schema",
        "jsonld",
        "qr",
        "controls_sheet",
        "transcript"
      ]
    },
    "ListingDocumentKind": {
      "title": "ListingDocumentKind",
      "description": "Listing document kind.",
      "type": "string",
      "enum": ["manual", "docs", "changelog_page", "faq"]
    },
    "EmbedPolicy": {
      "title": "EmbedPolicy",
      "description": "Product embed policy; an empty allowlist behaves as none.",
      "type": "string",
      "enum": ["none", "any", "allowlist"]
    },
    "PostKind": {
      "title": "PostKind",
      "description": "Social post kind.",
      "type": "string",
      "enum": ["review", "comment", "reply"]
    },
    "PostSubjectType": {
      "title": "PostSubjectType",
      "description": "What a root post is about; `media` is a comment on a sound.",
      "type": "string",
      "enum": [
        "product",
        "project",
        "version",
        "storefront",
        "docs_page",
        "media"
      ]
    },
    "PostState": {
      "title": "PostState",
      "description": "Post visibility state; block hiding is applied per viewer at read time, never stored.",
      "type": "string",
      "enum": [
        "visible",
        "edited",
        "removed_by_author",
        "removed_by_owner",
        "removed_by_moderator"
      ]
    },
    "PostReactionKind": {
      "title": "PostReactionKind",
      "description": "Post reaction kind.",
      "type": "string",
      "enum": ["like", "helpful"]
    },
    "NotificationEventType": {
      "title": "NotificationEventType",
      "description": "Closed notification event type.",
      "type": "string",
      "enum": [
        "version_published",
        "version_yanked",
        "update_available",
        "install_failed",
        "purchase_receipt",
        "payment_failed",
        "subscription_renewed",
        "subscription_cancelled",
        "refund_processed",
        "review_on_your_product",
        "comment_on_your_work",
        "publisher_response",
        "reply",
        "mention",
        "like_milestone",
        "pinned",
        "follow",
        "collection_add",
        "invitation",
        "collaboration_edit",
        "report_resolved",
        "api_key_expiring",
        "api_limit_reached",
        "api_tier_changed",
        "docs_comment",
        "security_signin",
        "account_notice"
      ]
    },
    "NotificationChannel": {
      "title": "NotificationChannel",
      "description": "Notification delivery channel.",
      "type": "string",
      "enum": ["in_app", "email", "web_push", "native_push"]
    },
    "NotificationCategory": {
      "title": "NotificationCategory",
      "description": "Notification settings and filter category.",
      "type": "string",
      "enum": [
        "Updates",
        "Purchases",
        "Social",
        "Mentions",
        "System",
        "Developer",
        "Security"
      ]
    },
    "ApiKeyScope": {
      "title": "ApiKeyScope",
      "description": "Developer API key scope. No scope grants billing, device administration, moderation or another account's private data.",
      "type": "string",
      "enum": [
        "read:public",
        "read:library",
        "write:library",
        "read:projects",
        "write:projects",
        "read:products",
        "write:listings",
        "read:usage",
        "read:notifications",
        "publish:releases"
      ]
    },
    "InstallationState": {
      "title": "InstallationState",
      "description": "Installation record state.",
      "type": "string",
      "enum": [
        "installed",
        "update_available",
        "failed",
        "rolled_back",
        "removed"
      ]
    },
    "ReleaseChannel": {
      "title": "ReleaseChannel",
      "description": "Product version alias and update feed channel.",
      "type": "string",
      "enum": ["stable", "beta"]
    },
    "Visibility": {
      "title": "Visibility",
      "description": "Platform visibility of a project, media item or collection: `unlisted` is reachable by link and id, excluded from search and feeds.",
      "type": "string",
      "enum": ["public", "unlisted", "private"]
    },
    "MediaFamily": {
      "title": "MediaFamily",
      "description": "Media family of an admitted format; `score` covers MEI and MusicXML, the media type distinguishing the dialect.",
      "type": "string",
      "enum": [
        "audio",
        "midi",
        "score",
        "video",
        "image",
        "document",
        "csv",
        "tsv",
        "json",
        "ndjson",
        "take",
        "nam"
      ]
    },
    "MediaItemState": {
      "title": "MediaItemState",
      "description": "Catalog state of a media item; removed items stay for pinned release versions.",
      "type": "string",
      "enum": ["ready", "removed"]
    },
    "IngestState": {
      "title": "IngestState",
      "description": "Ingest state of a media version: bytes verified at completion, derived data ready, or refused by the probe.",
      "type": "string",
      "enum": ["verified", "ready", "rejected"]
    },
    "SoundType": {
      "title": "SoundType",
      "description": "Closed sound type, declared by the creator or estimated from duration and beat grid.",
      "type": "string",
      "enum": [
        "one-shot",
        "loop",
        "phrase",
        "recording",
        "stem",
        "track",
        "midi-clip",
        "score"
      ]
    },
    "MusicalMode": {
      "title": "MusicalMode",
      "description": "The seven diatonic modes; `tonality` and the Camelot code derive from the mode and root.",
      "type": "string",
      "enum": [
        "ionian",
        "dorian",
        "phrygian",
        "lydian",
        "mixolydian",
        "aeolian",
        "locrian"
      ]
    },
    "Tonality": {
      "title": "Tonality",
      "description": "Relative major or minor of a mode: ionian, lydian and mixolydian are major; the rest minor.",
      "type": "string",
      "enum": ["major", "minor"]
    },
    "MetadataSource": {
      "title": "MetadataSource",
      "description": "Where a resolved metadata value came from; declared wins over embedded over analysed.",
      "type": "string",
      "enum": ["declared", "embedded", "analysed"]
    },
    "RelationKind": {
      "title": "RelationKind",
      "description": "Directional relation between two media items.",
      "type": "string",
      "enum": [
        "recording-of",
        "transcription-of",
        "stem-of",
        "variant-of",
        "artwork-for",
        "part-of",
        "take-of"
      ]
    },
    "RenditionKind": {
      "title": "RenditionKind",
      "description": "Derived rendition of a media version.",
      "type": "string",
      "enum": [
        "peaks",
        "peaks-json",
        "preview-ogg",
        "preview-mp3",
        "thumbnail",
        "waveform-art",
        "poster",
        "score-page",
        "piano-roll",
        "beats"
      ]
    },
    "RenditionState": {
      "title": "RenditionState",
      "description": "Rendition outcome.",
      "type": "string",
      "enum": ["ready", "failed"]
    },
    "AnalysisState": {
      "title": "AnalysisState",
      "description": "State of one engine run over a media version.",
      "type": "string",
      "enum": ["queued", "running", "ready", "failed", "unsupported"]
    },
    "MediaJobKind": {
      "title": "MediaJobKind",
      "description": "Ingestion job kind, queued per media version.",
      "type": "string",
      "enum": ["probe", "renditions", "analysis", "embedding", "index"]
    },
    "ReactionKind": {
      "title": "ReactionKind",
      "description": "Reaction on a project or media item.",
      "type": "string",
      "enum": ["like"]
    },
    "ReactionSubjectType": {
      "title": "ReactionSubjectType",
      "description": "What a reaction is about.",
      "type": "string",
      "enum": ["project", "media"]
    },
    "CollectionSubjectType": {
      "title": "CollectionSubjectType",
      "description": "What a collection item points at.",
      "type": "string",
      "enum": ["project", "media"]
    }
  }
}
