Repository navigation
File Index
Pablo Martínez López edited this page Nov 4, 2026
·
27 revisions
English · Español
Where each area of the repository lives and which wiki page documents it. File lists are taken from the source tree; for per-file behaviour follow the page link.
| Path | Responsibility | Page |
|---|---|---|
package.json, pnpm-workspace.yaml
|
Scripts, dependencies, pnpm policy | Development-Setup |
biome.json, knip.json, lint-staged.config.mjs, .husky/
|
Lint, dead-code and commit hooks | Development-Setup, Testing-and-CI |
vite.config.ts, vitest.config.ts, tsconfig*.json
|
Build and test configuration | Frontend-Architecture |
.github/workflows/ci.yml, release.yml
|
CI gates and release pipeline | Testing-and-CI, Releases-and-Auto-Updates |
scripts/ |
idiomas.mjs, sin-title-nativo.mjs, release.mjs, release-notas.mjs, emoji-noto.mjs, iconos.mjs (writes src/lib/iconos/incluidos.ts, pnpm iconos), icon/back-image helpers, android-env.sh (the Android environment, to be sourced), i18n-anadir.py (adds strings to the 15 dictionaries without clashes), sin-hover-solo.mjs (pnpm check:tactil), __tests__/ (idiomas.test.mjs, release-notas.test.mjs) |
Testing-and-CI, Releases-and-Auto-Updates, Frontend-Architecture |
README.md, README.es.md, docs/presentacion/
|
User-facing presentation and screenshots | User-Guide |
docs/packs-de-marcos.md |
Original pack-format document | Frame-Packs |
server/ (separate repository proxy-builder-server, ignored) |
The room server: src/ (protocol, identity, playgroups, invitations, rooms, election, HTTP/WebSocket), migraciones/, test/ (with ejemplos/ for the contract), docs/ (protocolo.md, despliegue.md), deploy/ (systemd, nginx, iroh-relay) |
Online-Play |
CLAUDE.md |
Project instructions for the AI assistant | Conventions |
| Path | Responsibility | Page |
|---|---|---|
src-tauri/src/main.rs, src-tauri/src/lib.rs, src-tauri/src/state.rs
|
Startup, command registration, AppState
|
Rust-App-Layer |
src-tauri/src/error.rs, src-tauri/src/jobs.rs, src-tauri/src/registro.rs
|
AppError, long jobs, logging |
IPC-and-Error-Handling, Rust-App-Layer |
src-tauri/src/protocol.rs, src-tauri/src/render.rs
|
pbimg:// protocol, thumbnails and render cache |
Rust-App-Layer, Live-Preview |
src-tauri/src/commands/ (cards, carpetas, decklist, diseno, export, fichero, fuentes, iconos, identify, layout, library, mesa, pasar, sistema, stats, temas, actualizar) |
Tauri commands by area | IPC-and-Error-Handling |
src-tauri/src/store/ (db, decks, blobs, colecciones, etiquetas, listas, partidas, linaje, presets, settings, migrations/0001…0009) |
SQLite persistence and blob store | Storage-and-Blobs |
src-tauri/src/package.rs |
.pbdeck import/export (with game lists) |
Deck-Package-Format |
src-tauri/src/biblioteca.rs |
Offline deck details for the library | Deck-Library |
src-tauri/src/scryfall/ (client, rate, cache, models, resolve, busquedas, fichas, fichas_auto, nombres) |
Scryfall client and resolution | Scryfall-Integration |
src-tauri/src/archidekt.rs |
Archidekt deck import | Decklist-Parsing |
src-tauri/src/fuentes/ (mod, cockatrice, mtgio, mtgjson) |
Allow-listed external sources | External-Sources |
src-tauri/src/ocr.rs, src-tauri/src/originales.rs, src-tauri/src/commands/identify.rs
|
OCR and original-name identification | Card-Identification-and-OCR |
src-tauri/src/diseno/ (borrador, recursos, pintar, vista, arte, lote, png, traduccion, portapapeles, original, descargables, letras_libres, idioma, letras_cjk) |
Designer application side (idioma: complete a design language in a deck; letras_cjk: download the Japanese, Korean and Chinese fonts) |
Designer-App-Layer, Frame-Packs |
src-tauri/src/temas.rs |
tweakcn theme install | Themes-and-Skins |
src-tauri/src/iconos.rs, src-tauri/src/commands/iconos.rs
|
Iconify client for the icon picker: catalogue, search, icon data, chosen icons kept offline, SVG sanitising | Icons |
src-tauri/src/actualizar.rs |
In-app updater (desktop installers and the Android APK, feature actualizar-local for tests) |
Releases-and-Auto-Updates |
src-tauri/src/tls.rs |
The TLS of each platform; the only place that builds an HTTP client or verifier | Rust-App-Layer |
src-tauri/src/ciclo.rs |
Android lifecycle: save when the app goes to the background, reconnect when it comes back | Rust-App-Layer, Mobile |
src-tauri/src/android.rs and src-tauri/plugins/android-extra/ (src/lib.rs, src/movil.rs, android/ with the Kotlin AndroidExtraPlugin, permissions/) |
The contract with the own Android plugin: share, install an APK, screen on and full screen, multicast lock, name of a content://, files opened from outside. Only Rust calls it |
Rust-App-Layer, Mobile |
src-tauri/src/fichero.rs, src-tauri/src/abrir.rs, src-tauri/src/commands/fichero.rs
|
Chosen files as paths or content://, ZIPs, sharing; a .pbdeck opened from another app |
IPC-and-Error-Handling, Export, Mobile |
src-tauri/src/pasar/ (mod, encontrar, recibir, enviar, imagenes, protocolo, tipos, pruebas), src-tauri/src/commands/pasar.rs, src-tauri/src/store/linaje.rs and src-tauri/crates/proxy-core/src/compartir.rs
|
Moving decks between devices over the shared iroh node: nearby devices, codes and QR, the offer, the transfer, deck lineage and "without proxies" decks | Deck-Sharing |
src-tauri/src/enlace.rs |
proxybuilder://unirse/<code> invitation links (deep link, single instance) |
Online-Play |
src-tauri/src/mesa/ (sesion, preparar, imagenes, guardada, historial, repeticion, tapete, dados, encuentro, originales, ejemplo) and src-tauri/src/commands/mesa.rs
|
Game table session around the mesa crate, deck and image preparation, saved game, history of finished games, replay, mat, look of the dice, mesa_*, partida* and repeticion_* commands |
Game-Table |
src-tauri/src/red/ (perfil, identidad, nodo, protocolo, codigo, colores, anfitrion, invitado, mirada, imagenes, latencia, sucesion, vuelta, mesa, pruebas, pruebas_procesos, fixtures/) and src-tauri/src/commands/red.rs
|
Online play: debug profiles, identity, iroh node, game protocol, direct code, host, guest, spectator, images over the network, red_* commands |
Online-Play |
src-tauri/src/red/servidor/ (mensajes, cliente, sala, fixtures/) and src-tauri/src/commands/salas.rs
|
Room-server protocol, WebSocket client, the room in the app (mesh, host, migration), salas_* commands |
Online-Play |
src-tauri/tauri.conf.json, src-tauri/tauri.android.conf.json, src-tauri/capabilities/ (default, escritorio, movil), src-tauri/build.rs
|
Tauri configuration (the Android file is a merge patch) | Rust-App-Layer |
src-tauri/gen/android/ |
The Android (Gradle) project, versioned: manifest with the proxybuilder:// and .pbdeck intent filters, FileProvider paths, app/build.gradle.kts with the release signing; the signing key and keystore.properties are never in the repository |
Mobile, Releases-and-Auto-Updates |
src-tauri/assets/ (letras-libres.json, packs-descargables.json, letras-cjk.json, reverso-generico.png) |
Pinned catalogues (free fonts, downloadable packs, Noto Sans JP/KR/SC/TC) and the generic card back | Frame-Packs, Designer-App-Layer |
| Path | Responsibility | Page |
|---|---|---|
src-tauri/crates/proxy-core/src/model.rs |
Deck model and cuentan rule |
Deck-Model |
src-tauri/crates/proxy-core/src/paper.rs, src-tauri/crates/proxy-core/src/units.rs
|
Paper sizes and unit conversions | Layout-Engine |
src-tauri/crates/proxy-core/src/layout/ (plan, grid, arrange) |
PagePlan |
Layout-Engine |
src-tauri/crates/proxy-core/src/imaging/ (frame, bleed, corners, edges, adjust, blur, decode, encode, probe, pipeline, mitades) |
Image processing | Imaging-and-PDF |
src-tauri/crates/proxy-core/src/pdf/ (compose, estimate, calibration) |
PDF generation | Imaging-and-PDF, Export |
src-tauri/crates/proxy-core/src/decklist/ (mod, exportar) |
List parser and exporter | Decklist-Parsing |
src-tauri/crates/proxy-core/src/stats/ (mod, funciones, mana, prob) |
Statistics | Statistics |
src-tauri/crates/proxy-core/src/diseno/ (modelo, efectivo, pack, texto, pintar, render, componer, maquetacion, estructura, cuerpos, simbolos, letras, emoji, borrador, textos_motor, tipos_idiomas) |
Designer engine (textos_motor: fixed words the engine paints per design language; tipos_idiomas: offline type lines in other languages) |
Designer-Engine, Designer-Composition, Frame-Packs |
src-tauri/crates/proxy-core/assets/marcos/builtin/, src-tauri/crates/proxy-core/assets/marcos/original/imagenes.json, src-tauri/crates/proxy-core/assets/fuentes/
|
Built-in pack, Original hash manifest, bundled fonts (Spectral, Montserrat, Caladea, and Noto-COLRv1.ttf with Noto-COLRv1-LICENSE.txt for colour emoji) |
Frame-Packs, Designer-Engine |
src-tauri/crates/proxy-core/tests/ (dorados.rs, layouts.rs, dorados/, comun/, compatibilidad/diseno-2.5.9.json) |
Golden and layout tests, and the saved 2.5.9 design for compatibility tests | Testing-and-CI, Designer-Engine |
| Path | Responsibility | Page |
|---|---|---|
src-tauri/crates/mesa/src/modelo.rs, formato.rs, ids.rs, error.rs
|
The game model (Partida, Carta, zones, players), formats and options, ids, Rechazo
|
Game-Engine |
src-tauri/crates/mesa/src/preparar.rs |
Deck sections for the table and dealing a game (secciones_de_mesa, candidatas_de_lista, iniciar) |
Game-Engine |
src-tauri/crates/mesa/src/lista.rs |
Game lists: ListaDeJuego, CartaDeLista, AvisoLista, Construccion, comprobar
|
Game-Engine, Game-Table |
src-tauri/crates/mesa/src/accion.rs |
The action catalogue (Accion, Cambio, Evento, VERSION_CATALOGO) |
Game-Engine |
src-tauri/crates/mesa/src/azar.rs |
xoshiro256** randomness | Game-Engine |
src-tauri/crates/mesa/src/resolver.rs, aplicar.rs
|
Permissions and randomness; applying events | Game-Engine |
src-tauri/crates/mesa/src/visibilidad.rs, vista.rs
|
Who sees what; views and patches for the screen | Game-Engine |
src-tauri/crates/mesa/src/registro.rs, huella.rs
|
Event log, undo, redo, replay; game fingerprint | Game-Engine |
src-tauri/crates/mesa/src/resumen.rs |
The summary of a game (resumir, ResumenPartida, Puesto): places, rounds and duration counted from the log |
Game-Engine, Game-Table |
src-tauri/crates/mesa/src/muerte.rs, ausencia.rs, encuentro.rs
|
Who is out and why, keeping the hand of an absent player, the best-of scoreboard and the sideboard swap | Game-Engine |
src-tauri/crates/mesa/src/sparring/ (mod, reacciones, amenaza, cartas) and src-tauri/crates/mesa/assets/sparring/cartas.json
|
The sparring phantom: its data, when and how it reacts, threat weights and its 128 cards | Game-Engine |
src-tauri/crates/mesa/tests/ (acciones.rs, propiedad.rs, registro.rs, preparar.rs, catalogo.rs, fixtures.rs, equipos.rs, formatos.rs, turnos.rs, encuentro.rs, muerte.rs, resumen.rs, comun/, catalogo/v1.json) |
Per-action, property, visibility, undo and compatibility tests; fixtures.rs writes the view-and-patches fixture of the screen store test |
Game-Engine, Game-Table, Testing-and-CI |
| Path | Responsibility | Page |
|---|---|---|
main.tsx, App.tsx
|
Entry, providers, window reveal | Frontend-Architecture, Settings-and-Shell |
bindings/ |
Generated TypeScript types (do not edit) | IPC-and-Error-Handling |
lib/ (ipc, errores, trabajos, dialogos, dialogos-abiertos, cierre, image-url, imagen-viva, deck-ops, cartas, idiomas, por-idioma, themes, tema-inicial, temas-instalados, use-ocupado, iconos/incluidos (generated), SmoothScroll, utils) |
Shared helpers (use-ocupado: busy state of slow buttons; idiomas: the table of the 15 languages; por-idioma: ByLang beyond es/en; cierre and dialogos-abiertos: what blocks closing the app) |
Frontend-Architecture, IPC-and-Error-Handling |
stores/ (deck-store, plan-store, ui-store, trabajo-store, actualizacion-store, edicion-store, mesa-store, chat-store, repeticion-store, red-store, salas-store, iconos-store; __tests__/fixtures/mesa-parches.json) |
Screen state | State-Stores |
lib/ mobile helpers: formato, plataforma, atras, ciclo-de-vida, teclado, escaner, pulsacion-larga, nombre-deck and use-nombre-deck (the factory deck name shown in the current language) |
Format (desktop, tablet, phone) and touch, "is this a phone?", the Android Back button, saving when the app goes to the background, the on-screen keyboard, the only entry to the QR scanner plugin, long press | Mobile, Frontend-Architecture |
components/ touch pieces: barra-superior, hoja-menu, hoja, dialogo-adaptable, ayuda-tactil, ayuda-al-tocar, con-ayuda, lista-secciones, etiquetas-tactiles, pulsacion-larga, manija-redimensionar
|
The phone's top bar and menu sheet (BarraSuperior, HojaMenu and its rows), sheets, dialogs that go full screen on a phone, tooltips that open on tap, sectioned lists, names of icon buttons on long press, resize handles |
Mobile, Frontend-Architecture |
features/pasar/ |
Send and receive decks: the dialog, nearby devices, code and QR, the offer, the image catch-up | Deck-Sharing |
components/, components/ui/
|
Shared and base components (including selector-idioma.tsx, emoji.tsx, icono.tsx, selector-icono.tsx, contenido-contextual.tsx and estado-carga.tsx) |
Frontend-Architecture, Settings-and-Shell |
assets/emoji/ |
Noto Color Emoji images for the UI, fuentes.json, LICENSE.md
|
Frontend-Architecture |
i18n/ (<code>/ per language, plurales-es.json, cargar.ts, traducir.ts, tipos.ts, GLOSARIO.md) |
Interface dictionaries by language and area, the Spanish plural forms, lazy loading, translation with plurals, translators' glossary | Internationalization |
themes.css, index.css, fonts.css
|
Theme tokens, global rules, fonts | Themes-and-Skins |
features/decklist/ |
Left panel | Decklist-Panel |
features/variants/ |
Add card, printings, linking | Add-Card-and-Variants, Card-Identification-and-OCR |
features/set-browser/ |
Set browser | Set-Browser |
features/preview/ |
Sheets, slots, menu, drag | Live-Preview |
features/export/ |
Right panel, presets, list export | Export |
features/stats/ |
Statistics dialog | Statistics |
features/library/ (including partidas-deck, the «Partidas» tab of the properties) |
Deck library screen | Deck-Library |
features/card-editor/ |
«Editar carta» | Card-Editor-Dialog |
features/disenar/ |
«Diseñar» view | Designer-UI |
features/mesa/ (listas/ with eleccion and lista-dialog, mesa-screen, entrada, tablero, disposicion, arrastre, carta-mesa, insignias, pt, imagen-carta, precarga, vista-grande, vida-fantasma, marcas-jugador, notas, notas-mesa, objetivo, mulligan, vida-jugador, ayudas-turno, barra-mesa, partida-local, config-local, ajustes-partida, config-sala, mirar, mesas, selector-disposicion, tablero-mini, lento, equipos, dano-comandante, plano-activo, planes, planar, encuentro, banquillo-dialog, muerte, dano-de-quien, cuentas-muerte, originales, en-vivo/, menus/, dialogos/, acciones, operaciones, atajos, textos-eventos, categorias-eventos, cuentas-registro, registro-panel, chat, cuentas-chat, reaccion-eventos, fin-partida, cuentas-fin, historial-general, cuentas-historial, repeticion, cuentas-repeticion, sonidos, audio, conexion, pantalla, fps, tapete-dialog, colores, flip, entrada-movil, lectura-movil, movil/ with the seats bar, controls, full-screen hand and life screen) |
The «Jugar» tab: entrance, board, menus, dialogs, shortcuts, side panel with the log and the chat, end summary, replay, sounds | Game-Table |
features/mesa/dados/ (geometria, azar, fisica, escena3d, css3d, plano, piezas, simbolos, cola, capa, aspecto, texturas, sonidos) |
Dice and coins on the table: the solids, the Rapier physics, the three.js scene, the CSS 3D and 2D levels, the roll queue and its layer, the look of the dice (styles and face backgrounds) and their synthesised sound | Game-Table |
features/mesa/sparring/ (boton, reaccion, como-funciona, carta-fantasma, textos) |
The sparring on screen: the bar button and panel, the reaction prompt, the explanation and the texts | Game-Table |
features/mesa/red/ (red-dialog, conexion-red, estado-red, ausentes, volver-red) |
Online by direct code: the «Jugar en red» dialog and lobby, network notices, player chips and the reconnecting notice on the table | Online-Play |
features/salas/ (salas-dialog, playgroup-panel, sala-espera, conexion-salas) |
«Jugar con amigos»: playgroups, invitations, rooms and the lobby with the room server | Online-Play |
features/settings/ (including mesa.tsx, Settings > «Mesa de juego», and almacenamiento.tsx, Settings > «Almacenamiento»), features/shell/ (app-shell, confirmar-cierre, save-indicator, scroll-por-vista, use-deck-inicial, actualizacion-automatica, and for phones barra-movil, atras-shell, mesa-completa) |
Settings dialog, shell, close guard, updates UI | Settings-and-Shell, Releases-and-Auto-Updates |
features/tutorial/ (pasos.ts, tutorial.tsx) |
Guided tour of each screen, help button target | Tutorials |
Use and build · Uso y desarrollo
- User-Guide · Guía de usuario
- Development-Setup · Preparación del entorno de desarrollo
- Testing-and-CI · Tests y CI
- Releases-and-Auto-Updates · Versiones y actualizaciones automáticas
- Conventions · Convenciones
Architecture · Arquitectura
- Architecture · Arquitectura
- IPC-and-Error-Handling · IPC y manejo de errores
- Rust-App-Layer · Capa de aplicación Rust
Data · Datos
- Deck-Model · Modelo del mazo
- Storage-and-Blobs · Almacenamiento y blobs
- Deck-Package-Format · Formato del paquete de mazo
- Deck-Library · Biblioteca de mazos
Getting cards · Conseguir cartas
- Decklist-Parsing · Parseo de la lista del mazo
- Scryfall-Integration · Integración con Scryfall
- External-Sources · Fuentes externas
- Card-Identification-and-OCR · Identificación de cartas y OCR
Layout, images, PDF · Maquetación, imagen y PDF
- Layout-Engine · Motor de maquetación
- Imaging-and-PDF · Imagen y PDF
- Export · Exportación
- Live-Preview · Vista previa en vivo
- Statistics · Estadísticas
Card designer · Diseñador de cartas
- Designer-Overview · Visión general del diseñador
- Designer-Engine · Motor del diseñador
- Designer-Composition · Composición del diseñador
- Frame-Packs · Packs de marcos
- Designer-App-Layer · Capa de aplicación del diseñador
- Designer-UI · Interfaz del diseñador
- Card-Editor-Dialog · Diálogo Editar carta
Game table · Mesa de juego
Mobile · Móvil
Frontend · Frontend
- Frontend-Architecture · Arquitectura del frontend
- State-Stores · Stores de estado
- Internationalization · Internacionalización
- Themes-and-Skins · Temas y skins
- Icons · Iconos
- Settings-and-Shell · Ajustes y shell
- Tutorials · Tutoriales
- Decklist-Panel · Panel de la lista del mazo
- Add-Card-and-Variants · Añadir carta y variantes
- Set-Browser · Explorador de sets
Reference · Referencia