El tablero ya se puede renombrar y rediseñar en caliente
Cualquier casilla puede recibir un nombre y un logotipo nuevos, y el cambio llega a todas las partidas en curso, sin desplegar nada ni reiniciar.

En palabras sencillas
Las cuarenta casillas del tablero de opolyx estaban fijadas en el código. Cambiar una implicaba tocar código, revisarlo y desplegar, lo que encarecía muchísimo cualquier ajuste estacional, promocional o simplemente una errata.
Ahora se puede fijar un nombre y un logotipo para cualquier casilla desde el área de administración, y el cambio es inmediato, incluso en partidas que ya se están jugando. Llega a todos los sitios donde opolyx funciona en línea: la web, la versión incrustada en portales asociados y las repeticiones con las que se montan los clips.
La versión descargable sin conexión conserva su propio tablero incorporado, porque no tiene conexión desde la que traer nada.
Para los más técnicos
Esto funciona por dónde se resuelven los nombres y los logotipos. El tablero en sí es código y sigue siéndolo: el servidor de juego nunca lo lee de la base de datos, así que la lógica queda intacta y las repeticiones de partidas antiguas siguen siendo correctas. En cambio los nombres y logotipos se resuelven al renderizar, de modo que un mapa global de sustituciones basta para llegar a todas las superficies a la vez.
// lib/board/overrides.ts — render-time resolution, engine untouched
export function useFieldName(slug: string, fallbackKey: string): string {
const overrides = useBoardOverrides(); // provider, fetched once per page
return overrides[slug]?.name ?? t(fallbackKey); // else the translated default
}El almacenamiento es una tabla pequeña de lectura pública más un bucket público para las imágenes subidas. La lectura está abierta porque el tablero ya es público; la escritura queda reservada al rol de servicio, y se impone revocando los permisos por defecto en lugar de confiar en una política: la misma lección que nos dejaron tres migraciones anteriores.
