export interface ReleaseAsset {
  kind: string
  path: string
}

export interface Release {
  version: string
  htmlFolderPath?: string
  cartridgePath?: string
  sourcePath?: string
  docsFolderPath?: string
  assets?: ReleaseAsset[]
  downloadCount?: number
  updatedAt: string
}

export interface SoftwareImage {
  url: string
  isDefault: boolean
  position: number
}

export interface PlatformLink {
  name: string
  url: string
}

export interface Software {
  name: string
  title: string
  desc: string
  status: string
  author: string
  platform: string
  license?: string
  story?: string
  externalLinks?: { label: string; url: string }[]
  platformLinks?: PlatformLink[]
  imageUrl?: string | null
  images?: SoftwareImage[]
}

export interface SoftwareEntry {
  software: Software
  releases: Release[]
  totalDownloads?: number
}
