{
 "categorias": [
  {
   "categoria": "escritura del mundo",
   "faltan": [
    "noto-fonts-extra"
   ],
   "items": [
    {
     "estado": "tiene-y-viaja",
     "nombre": "noto-fonts-cjk",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "noto-fonts-emoji",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "noto-fonts",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "noto-fonts-extra",
     "parientes": [
      "noto-fonts",
      "noto-fonts-cjk",
      "noto-fonts-emoji"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    }
   ],
   "porque": "las únicas fuentes del corpus son dejavu y su nerd: sin estas, la distro muestra cuadraditos en chino, japonés, coreano, árabe, hindi, tailandés y emoji"
  },
  {
   "categoria": "escribir en esos idiomas",
   "faltan": [
    "anthy",
    "libpinyin",
    "hangul",
    "rime"
   ],
   "items": [
    {
     "estado": "tiene-sin-viajar",
     "nombre": "fcitx5",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "ibus",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "anthy",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "libpinyin",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "hangul",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "rime",
     "parientes": []
    }
   ],
   "porque": "una fuente deja LEER; para ESCRIBIR hace falta un método de entrada"
  },
  {
   "categoria": "accesibilidad",
   "faltan": [
    "orca",
    "speech-dispatcher",
    "espeak-ng",
    "brltty"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "orca",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "speech-dispatcher",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "espeak-ng",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "brltty",
     "parientes": []
    }
   ],
   "porque": "sin lector de pantalla ni voz la distro es inusable para quien no ve"
  },
  {
   "categoria": "terminales populares",
   "faltan": [
    "kitty",
    "alacritty",
    "wezterm",
    "ghostty",
    "xterm"
   ],
   "items": [
    {
     "estado": "falta",
     "muro": "sin-opengl-de-escritorio",
     "muro_porque": "setup.py:804 hace pkg_config('gl', '--libs') y data-types.h:25 exige OpenGL >= 3.x core. Medido en el store: NADIE publica `gl.pc` ni `libGL.so` — mesa da egl.pc, glesv2.pc, gbm.pc y dri.pc; libglvnd da opengl.pc con libOpenGL.so/libGLdispatch.so y sólo viaja en escritorio-kde. Compilar no basta: gl.c:68 aborta en runtime con «OpenGL version is X.Y, version >= 3.3 required for kitty». Mismo muro que OBS.",
     "nombre": "kitty",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "alacritty",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "wezterm",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "ghostty",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "xterm",
     "parientes": []
    }
   ],
   "porque": "`foot` está y alcanza; pero quien llega de otra distro busca el suyo por nombre, y el doc 20 §II.2 ya los listaba como «barato». kitty: 13 de sus 14 deps ya están en el catálogo (falta librsync, opcional)"
  },
  {
   "categoria": "editores",
   "faltan": [
    "neovim",
    "emacs"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "neovim",
     "parientes": [
      "vim"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    },
    {
     "estado": "falta",
     "nombre": "emacs",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "micro",
     "parientes": []
    },
    {
     "estado": "tiene-sin-viajar",
     "nombre": "kakoune",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "nano",
     "parientes": []
    }
   ],
   "porque": "`vim` y `helix` están. ⚠ Existe `bob-nvim` —el GESTOR DE VERSIONES de neovim— y no existe neovim: el conductor sin el motor, como `crun` sin podman"
  },
  {
   "categoria": "shells",
   "faltan": [
    "fish"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "fish",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "elvish",
     "parientes": []
    }
   ],
   "porque": "bash, zsh y nushell están"
  },
  {
   "categoria": "lanzador, notificaciones y bloqueo",
   "faltan": [
    "rofi",
    "wofi",
    "bemenu",
    "tofi",
    "swaync",
    "gtklock",
    "waylock"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "rofi",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "wofi",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "fuzzel",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "bemenu",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "tofi",
     "parientes": []
    },
    {
     "estado": "tiene-sin-viajar",
     "nombre": "mako",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "dunst",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "swaync",
     "parientes": [
      "sway"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "swaylock",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "gtklock",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "waylock",
     "parientes": []
    }
   ],
   "porque": "el esqueleto de un escritorio Wayland que no sea GNOME/KDE: sin lanzador no se abre nada"
  },
  {
   "categoria": "audio de escritorio",
   "faltan": [
    "pavucontrol",
    "pamixer",
    "playerctl",
    "easyeffects",
    "wiremix"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "pavucontrol",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "pamixer",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "playerctl",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "easyeffects",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "wiremix",
     "parientes": [
      "wire"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    }
   ],
   "porque": "PipeWire suena y no hay con qué subirle el volumen desde una ventana"
  },
  {
   "categoria": "capturas y portapapeles",
   "faltan": [
    "satty",
    "swappy",
    "flameshot",
    "kanshi"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "satty",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "swappy",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "flameshot",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "wtype",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "kanshi",
     "parientes": []
    }
   ],
   "porque": "grim, slurp, wl-clipboard y cliphist ya están"
  },
  {
   "categoria": "visores de imagen",
   "faltan": [
    "imv",
    "nsxiv",
    "feh",
    "loupe",
    "eog"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "imv",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "nsxiv",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "feh",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "loupe",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "eog",
     "parientes": []
    }
   ],
   "porque": "ninguno: una foto no se abre"
  },
  {
   "categoria": "archivos comprimidos ajenos",
   "faltan": [
    "unzip",
    "zip",
    "p7zip",
    "7zip",
    "unrar"
   ],
   "items": [
    {
     "cubierto_por": "libarchive",
     "cubierto_porque": "bsdunzip -o x.zip extrae y conserva el árbol — probado con un zip deflate con subdirectorio el 2026-10-19",
     "estado": "falta",
     "nombre": "unzip",
     "parientes": []
    },
    {
     "cubierto_por": "libarchive",
     "cubierto_porque": "bsdtar -a -cf x.zip … crea un zip que python zipfile lee y verifica — probado el 2026-10-19",
     "estado": "falta",
     "nombre": "zip",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "p7zip",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "7zip",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "unrar",
     "parientes": []
    }
   ],
   "porque": "⚠ EL ARGUMENTO DE ESTA FILA ERA FALSO Y LO MEDÍ DESPUÉS: decía «no se puede abrir un .zip» porque `libzip` es una biblioteca y no el comando. Cierto para libzip — y falso como conclusión: `libarchive` estaba SELLADO y trae `bsdunzip`/`bsdtar`, verificados con un zip real en lectura Y escritura. Se declaró en `cli` el 2026-10-19. Lo que falta son los ALIAS (`unzip`, `zip`) para que un script ajeno que los invoque no falle, y 7z/rar sin medir"
  },
  {
   "categoria": "imprimir de verdad",
   "faltan": [
    "cups-filters",
    "ghostscript",
    "gutenprint",
    "hplip"
   ],
   "items": [
    {
     "estado": "tiene-y-viaja",
     "nombre": "cups",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "cups-filters",
     "parientes": [
      "cups"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    },
    {
     "estado": "falta",
     "nombre": "ghostscript",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "gutenprint",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "hplip",
     "parientes": []
    }
   ],
   "porque": "cups solo no imprime: los filtros y los drivers son otro paquete"
  },
  {
   "categoria": "escanear",
   "faltan": [
    "sane-backends",
    "simple-scan"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "sane-backends",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "simple-scan",
     "parientes": [
      "simple-http-server"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    }
   ],
   "porque": "ningún camino hoy"
  },
  {
   "categoria": "documentos técnicos",
   "faltan": [
    "texlive",
    "pandoc",
    "groff"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "texlive",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "pandoc",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "typst",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "groff",
     "parientes": []
    }
   ],
   "porque": "nada que componga un PDF desde texto marcado"
  },
  {
   "categoria": "páginas de manual",
   "faltan": [
    "man-pages",
    "texinfo"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "man-pages",
     "parientes": [
      "mandoc",
      "mandown",
      "mani"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    },
    {
     "estado": "falta",
     "nombre": "texinfo",
     "parientes": []
    }
   ],
   "porque": "`mandoc` LEE man; falta el CONTENIDO y el formateador de info"
  },
  {
   "categoria": "virtualización",
   "faltan": [
    "qemu",
    "libvirt",
    "virt-manager"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "qemu",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "libvirt",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "virt-manager",
     "parientes": []
    }
   ],
   "porque": "ni invitado ni anfitrión: no se puede probar la propia ISO sin salir"
  },
  {
   "categoria": "contenedores",
   "faltan": [
    "podman",
    "docker",
    "buildah",
    "flatpak",
    "distrobox"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "podman",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "docker",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "buildah",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "flatpak",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "distrobox",
     "parientes": []
    }
   ],
   "porque": "`crun` está (el motor); falta quien lo conduzca"
  },
  {
   "categoria": "java",
   "faltan": [
    "openjdk",
    "jdk",
    "temurin"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "openjdk",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "jdk",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "temurin",
     "parientes": []
    }
   ],
   "porque": "un ecosistema entero queda fuera sin una JVM"
  },
  {
   "categoria": "bases de datos de servidor",
   "faltan": [
    "postgresql",
    "mariadb",
    "redis"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "postgresql",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "mariadb",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "redis",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "valkey",
     "parientes": []
    }
   ],
   "porque": "sqlite está; un servicio con varios clientes no"
  },
  {
   "categoria": "depurar y medir",
   "faltan": [
    "gdb",
    "lldb",
    "valgrind",
    "ltrace",
    "perf",
    "patchelf"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "gdb",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "lldb",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "valgrind",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "ltrace",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "perf",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "patchelf",
     "parientes": [
      "patch"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    }
   ],
   "porque": "se construye la distro entera y no hay con qué mirar un core"
  },
  {
   "categoria": "discos y salud del equipo",
   "faltan": [
    "smartmontools",
    "nvme-cli",
    "hdparm",
    "gparted"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "smartmontools",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "nvme-cli",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "hdparm",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "gparted",
     "parientes": [
      "parted"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    }
   ],
   "porque": "nada que avise de un disco muriéndose"
  },
  {
   "categoria": "otros lenguajes",
   "faltan": [
    "deno",
    "bun",
    "ruby",
    "php",
    "julia",
    "ghc",
    "ocaml",
    "elixir",
    "erlang"
   ],
   "items": [
    {
     "estado": "tiene-sin-viajar",
     "nombre": "nodejs",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "deno",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "bun",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "ruby",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "php",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "julia",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "ghc",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "ocaml",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "elixir",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "erlang",
     "parientes": []
    }
   ],
   "porque": "python3, lua, go, rust y perl están. ⚠ `zig` NO es receta: vive como artefacto `seed-zig` fuera del catálogo, y es el compilador de TODO el corpus"
  },
  {
   "categoria": "empaquetadores de python",
   "faltan": [
    "pipx",
    "poetry"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "pipx",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "uv",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "poetry",
     "parientes": []
    }
   ],
   "porque": "pip no viaja y no hay forma de instalar una herramienta python"
  },
  {
   "categoria": "construcción C clásica",
   "faltan": [
    "autoconf",
    "automake",
    "ninja"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "autoconf",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "automake",
     "parientes": [
      "make"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    },
    {
     "cubierto_por": "samurai",
     "cubierto_porque": "MEDIDO: un artefacto vigente instala un binario con ese nombre exacto. Falta la receta propia, no la capacidad",
     "estado": "falta",
     "nombre": "ninja",
     "parientes": []
    }
   ],
   "porque": "⚠ ESTA FILA ES LA MÁS DUDOSA DEL CHECKLIST y conviene que lo diga: cmake, meson, make y samurai existen y NO viajan en ninguna imagen — probablemente a propósito, porque una imagen de producto no se construye a sí misma. La receta de `nodejs` ya tomó esa decisión por escrito para su caso («acá Node es un compilador más, no software que la distro publique»). ⇒ lo que falta acá puede no ser un hueco sino un PERFIL de desarrollo que no existe. Se deja medido y sin declarar. `ninja` además lo instala `samurai` con ese nombre exacto (1.9.0, medido). Y `gcc` está RETENIDO a propósito (sólo `gcc-libs`), `clang` es `clang18`: eso no es hueco, es decisión"
  },
  {
   "categoria": "vpn y red gestionada",
   "faltan": [
    "openvpn",
    "iwd",
    "nmtui",
    "impala",
    "mosh",
    "sshfs"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "openvpn",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "iwd",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "nmtui",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "impala",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "mosh",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "sshfs",
     "parientes": []
    }
   ],
   "porque": "networkmanager, wireguard-tools y wpa_supplicant están"
  },
  {
   "categoria": "bluetooth usable",
   "faltan": [
    "blueman",
    "bluetuith"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "blueman",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "bluetuith",
     "parientes": []
    }
   ],
   "porque": "`bluez` viaja; falta con qué emparejar un auricular"
  },
  {
   "categoria": "contraseñas",
   "faltan": [
    "keepassxc",
    "pass"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "keepassxc",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "pass",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "gopass",
     "parientes": []
    }
   ],
   "porque": "nada: la gente guarda sus claves en un .txt o no usa la distro"
  },
  {
   "categoria": "respaldos",
   "faltan": [
    "borgbackup",
    "rsnapshot"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "borgbackup",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "rsnapshot",
     "parientes": []
    }
   ],
   "porque": "restic y rclone están"
  },
  {
   "categoria": "descargas y torrent",
   "faltan": [
    "aria2",
    "transmission",
    "qbittorrent"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "aria2",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "transmission",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "qbittorrent",
     "parientes": []
    }
   ],
   "porque": "curl y wget están"
  },
  {
   "categoria": "navegadores",
   "faltan": [
    "chromium",
    "qutebrowser",
    "librewolf",
    "brave"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "chromium",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "qutebrowser",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "librewolf",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "brave",
     "parientes": []
    }
   ],
   "porque": "firefox y atuq están; el motor Blink no tiene ningún camino"
  },
  {
   "categoria": "mensajería",
   "faltan": [
    "dino",
    "gajim",
    "element-desktop",
    "telegram-desktop",
    "signal-desktop"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "dino",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "gajim",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "element-desktop",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "telegram-desktop",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "signal-desktop",
     "parientes": []
    }
   ],
   "porque": "ningún cliente de chat: ni XMPP, ni Matrix, ni los propietarios"
  },
  {
   "categoria": "música",
   "faltan": [
    "mpd",
    "ncmpcpp",
    "rhythmbox",
    "audacious"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "mpd",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "ncmpcpp",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "rhythmbox",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "audacious",
     "parientes": []
    }
   ],
   "porque": "mpv y cmus están para reproducir un fichero; falta biblioteca y daemon"
  },
  {
   "categoria": "video",
   "faltan": [
    "vlc",
    "celluloid",
    "totem"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "vlc",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "celluloid",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "totem",
     "parientes": []
    }
   ],
   "porque": "mpv está"
  },
  {
   "categoria": "imagen y diseño",
   "faltan": [
    "gimp",
    "inkscape",
    "krita",
    "darktable"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "gimp",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "inkscape",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "krita",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "darktable",
     "parientes": []
    }
   ],
   "porque": "⚠ la suite ArtCraft propia cubre esto con 12 apps (photocraft, vectorcraft, …): estos renglones son los nombres AJENOS que alguien busca, no un hueco de capacidad"
  },
  {
   "categoria": "gestores de archivos",
   "faltan": [
    "thunar",
    "ranger"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "thunar",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "ranger",
     "parientes": []
    }
   ],
   "porque": "yazi, nnn, lf, broot y dolphin/nautilus están"
  },
  {
   "categoria": "lectores de PDF",
   "faltan": [
    "mupdf",
    "sioyek",
    "evince"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "mupdf",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "sioyek",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "evince",
     "parientes": []
    }
   ],
   "porque": "zathura y okular están"
  },
  {
   "categoria": "notas",
   "faltan": [
    "obsidian",
    "logseq",
    "joplin",
    "zettlr"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "obsidian",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "logseq",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "joplin",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "zettlr",
     "parientes": []
    }
   ],
   "porque": "ninguno"
  },
  {
   "categoria": "otros compositores Wayland",
   "faltan": [
    "hyprland",
    "river",
    "niri",
    "labwc",
    "wayfire"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "hyprland",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "river",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "niri",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "labwc",
     "parientes": [
      "lab"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    },
    {
     "estado": "falta",
     "nombre": "wayfire",
     "parientes": []
    }
   ],
   "porque": "hay cinco escritorios (mirada, sway, cosmic, gnome, kde); éstos son los que la gente nombra y no están. Decisión de alcance, no olvido"
  },
  {
   "categoria": "juegos",
   "faltan": [
    "wine",
    "steam",
    "gamescope",
    "lutris",
    "mangohud"
   ],
   "items": [
    {
     "estado": "falta",
     "nombre": "wine",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "steam",
     "parientes": [
      "steam-runtime-sniper",
      "steampipe"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    },
    {
     "estado": "falta",
     "nombre": "gamescope",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "lutris",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "mangohud",
     "parientes": []
    }
   ],
   "porque": "decisión abierta: arrastra Vulkan, que la distro hoy no publica"
  },
  {
   "categoria": "infra ajena",
   "faltan": [
    "terraform",
    "ansible"
   ],
   "items": [
    {
     "estado": "tiene-y-viaja",
     "nombre": "kubectl",
     "parientes": []
    },
    {
     "estado": "tiene-y-viaja",
     "nombre": "helm",
     "parientes": []
    },
    {
     "estado": "falta",
     "nombre": "terraform",
     "parientes": [
      "terraform-docs",
      "terraform-ls"
     ],
     "pista": "nombre parecido en el catálogo (verificar, NO es equivalencia)"
    },
    {
     "estado": "falta",
     "nombre": "ansible",
     "parientes": []
    }
   ],
   "porque": "decisión abierta: son herramientas de operar OTRA cosa"
  }
 ],
 "en_alguna_imagen": 604,
 "recetas_alcanzables": 1379,
 "resumen": {
  "falta": 148,
  "tiene-sin-viajar": 4,
  "tiene-y-viaja": 18
 },
 "schema": "takana-censo-distro/1"
}
