Deberías poder usar el buen trabajo de otras personas sin convertirte en experto en licencias, y sin dejar de lado en silencio a quienes lo crearon. Por eso Lolly conserva la fuente de cada obra que incorpora, lee la licencia que se registró para ella, calcula qué pide esa licencia para el uso que realmente estás haciendo, hace la parte que un programa puede hacer y nombra la parte que solo tú puedes hacer.
Nada de esto es asesoría legal, y nada de esto es un fallo sobre tu proyecto. Lolly registra hechos, aplica un pequeño conjunto de reglas leídas de los propios textos legales de las licencias, y muestra su razonamiento. Una licencia con condiciones es una elección normal y permitida. Nunca se presenta como un recurso dañado.
Tres hechos, mantenidos aparte
"CC BY 4.0", "este uso necesita un crédito" y "el crédito está en el archivo que acabas de descargar" son tres afirmaciones distintas, y Lolly las mantiene separadas:
- Evidencia es lo que declaró una fuente, registrado tal como se encontró, con quién lo dijo y dónde se leyó. Una importación posterior nunca sobrescribe un registro anterior.
- Obligación es lo que las reglas revisadas hacen de esa evidencia para un uso, una vía de entrega y un público. Las condiciones de compartir siguen siendo condicionales mientras trabajas en privado.
- Entrega es lo que los bytes terminados llevan realmente, medido al volver a leerlos. Lolly dice que los créditos están incluidos solo después de que una lectura los haya encontrado en el archivo entregado.
Dónde lo ves por primera vez
Los conjuntos de emojis son el caso cotidiano. Twemoji está bajo CC BY 4.0, así que un encabezado con un emoji se exporta con la obra ya acreditada y nada más que hacer de tu parte. Ambos conjuntos de OpenMoji están bajo CC BY-SA 4.0, así que recolorear uno de sus glifos con un tratamiento de marca es una adaptación, y compartir esa adaptación te pide elegir una licencia compatible una sola vez. Elegir el conjunto nunca está bloqueado, y el control del conjunto nombra la licencia justo donde la eliges. Las mismas reglas se aplican a una ilustración del catálogo, un LUT, una tipografía y cualquier otra obra registrada.
Las palabras que usa Lolly
Un mismo vocabulario en el panel de exportación, Verify, la línea de comandos y el resultado legible por máquina.
| Qué ves | Qué significa |
|---|---|
| Los créditos de origen se incluirán. | El crédito está preparado y la vía puede llevarlo. Todavía no se ha escrito nada, así que esto no es un mensaje de éxito. |
| Créditos incluidos en los metadatos de este archivo. | Los bytes entregados se releyeron, la credencial se verificó y se encontró en ellos cada fuente requerida. |
| Los créditos y las credenciales están en el paquete de descarga. | El crédito viaja como un archivo complementario junto al resultado. Mantenlos juntos cuando los compartas. |
| Añade este crédito a la descripción de la publicación. | La vía elegida no lleva ni credencial ni crédito legible, así que el texto del crédito queda en tus manos para pegarlo. |
| Si compartes esta adaptación, necesita una licencia compatible. | Se cambió una fuente ShareAlike y el resultado se dirige a algo distinto del uso privado. Elegir es una sola acción, no un diálogo por cada colocación. |
| Licencia de origen no registrada. | No se registró nada para esta fuente. Eso es un vacío por llenar, no un hallazgo en contra de la obra. |
| Condiciones registradas, aún no interpretadas. | El identificador se reconoce y sus condiciones están listadas, y ninguna regla de aquí las lee. Ni aprobación automática, ni prohibición automática. |
| Dos declaraciones de licencia no coinciden. | Dos registros nombran licencias distintas, y nada ha elegido cuál permiso aplica. |
| Ningún crédito requerido bajo la dedicatoria CC0 registrada. | La dedicatoria no pide nada. Aun así se ofrece un crédito de cortesía. |
| Los créditos no están en el archivo que se entregó. | Se prometió un crédito, la relectura no lo encontró, y el archivo sigue siendo tuyo. Exporta de nuevo, o usa el texto del crédito a mano. |
Lolly no usa "copyright verificado", "legalmente seguro", "totalmente autorizado" o "derechos aclarados", y no hay una sola insignia verde de licencia en ningún lugar del producto. Esas palabras afirmarían algo que ningún programa puede comprobar.
Las licencias que Lolly ha revisado
Versión de reglas rights-rules-2026-09-13.2. Cada regla de abajo se leyó del propio texto legal de la licencia, y la sección de la que proviene se cita junto a ella tanto en engine/src/rights-profiles.ts como aquí. Una versión y un puerto se conservan tal como se registraron: una declaración de CC BY 3.0 conserva su propia versión en lugar de reportarse como 4.0 solo porque el selector de la app prefiere 4.0.
| Licencia | Qué pide de un uso que Lolly puede hacer | Leído de |
|---|---|---|
| CC BY 4.0 | El autor, el título, el aviso de copyright, el nombre de la licencia y su enlace, el enlace a la fuente y una indicación de los cambios, cada uno cuando la fuente lo proporcionó. Ningún uso queda excluido, el uso comercial incluido. | Código legal, secciones 2(a)(1) y 3(a) |
| CC BY-SA 4.0 | El mismo crédito. Además, si compartes una adaptación, sale bajo una licencia compatible: CC BY-SA 4.0, la Free Art License 1.3, o GPL-3.0-or-later, que funciona en una sola dirección. Esas tres se llevan como datos de la lista de Creative Commons, nunca comparadas por nombre. | Código legal, secciones 3(a) y 3(b); la lista de licencias compatibles |
| CC0 1.0 | Nada. La dedicatoria no lleva ninguna condición, así que Lolly ofrece un crédito de cortesía y nunca lo presenta como obligatorio. | La dedicatoria, secciones 2 y 3; las preguntas frecuentes de CC sobre acreditar |
| CC-PDDC | Nada. Lo que se registra es la propia afirmación y quién la hizo, porque una certificación es la declaración de una parte, no una prueba. | Párrafos de la dedicatoria y certificación |
| Apache License 2.0 | Los avisos de la fuente y el texto de atribución del archivo NOTICE viajan con una obra distribuida. Un uso en tiempo de ejecución no pide nada. Una licencia que pide un texto de aviso y una obra que no lleva ninguno se reporta como un vacío. | Apache License 2.0, sección 4, condiciones 1 a 4 |
| MIT | La línea de copyright y el aviso de permiso viajan con las copias y las partes sustanciales. Los usos en tiempo de ejecución y de referencia no piden nada. | MIT, la condición del aviso de permiso |
| SIL OFL 1.1 | Representar texto con la tipografía no pide nada del texto. Pasar el archivo de la tipografía lleva consigo la licencia, el aviso de copyright y la regla del nombre reservado. | OFL 1.1, condiciones 2, 3 y 5; las preguntas frecuentes de OFL sobre documentos |
Registrado, no interpretado
CC BY-NC, CC BY-ND y las combinaciones NC-SA y NC-ND se reconocen, sus condiciones se listan, y ninguna regla de aquí las lee. Reportan licence.unknown con una línea que nombra las condiciones. Un contexto comercial no se puede deducir de un precio o una cuenta, y cada texto combinado necesita su propia revisión antes de que una regla lo toque.
Tres respuestas honestas más, ninguna de las cuales es un permiso:
- Un identificador
LicenseRef-vuelve tal cual. Apunta a una definición almacenada y nunca es propietario solo por su forma de escribirse. - Una declaración que nada reconoce vuelve sin analizar, con el texto original conservado al lado.
A OR Bes una elección que ofreció el titular de los derechos, así que se devuelve cada alternativa y no se selecciona ninguna.A AND Bes acumulativo, y estas reglas lo registran así en lugar de leer dos perfiles juntos.
La información de licencia ausente nunca se interpreta como evidencia de que una obra es libre de transmitir.
Lo que Lolly hace por ti
- En el catálogo. La ficha de una obra muestra su fuente y su autor, el nombre canónico de la licencia con la etiqueta original conservada debajo, un crédito copiable donde hay uno registrado, y una línea que dice qué pide su uso. Una tarjeta indica el requisito; nunca afirma que una exportación se completó.
- En el panel de exportación. Aparece una tarjeta de créditos de origen en cuanto un render usa trabajo registrado. Muestra el estado, el texto del crédito detrás de Detalles, un botón para copiar el crédito, y una tarjeta en línea cuando falta una decisión. Una decisión nunca es un diálogo bloqueante: una descarga con una acción pendiente sigue adelante, y el trabajo privado sigue siendo utilizable.
- En el archivo. Una exportación que colocó trabajo registrado escribe un ingrediente de origen de Content Credentials por cada obra distinta, vinculado a los bytes originales en su dirección pública, con el autor, la licencia y su enlace, la fuente, la revisión y los cambios. Lolly firma lo que observó. Nunca firma una afirmación en nombre del artista original, y Verify dice cuál de las dos cosas ocurrió.
- Después de escribir. Los bytes entregados se releen antes de que algo diga que los créditos están incluidos. Una credencial que no se verificó no cuenta como un crédito entregado.
- En un archivo
.lollyeditable. Los bytes viajan solo cuando una licencia revisada registra el permiso para transmitir la fuente, y elCREDITS.txtdel paquete enumera qué viajó, bajo qué licencia, y qué se retuvo y por qué motivo. Una licencia no registrada se retiene. Aun así puedes incluir contenido retenido de forma deliberada, y el archivo de créditos registra que fue tu elección. - En Verify. Un panel de fuentes enumera cada fuente que registra un archivo, con un resumen calculado, el crédito, un botón para copiar el crédito, un enlace para abrir la fuente que solo se abre a petición, y los límites declarados de lo que se inspeccionó. Una pregunta de comprobar para este uso solo se hace cuando eliges un uso, y no se consulta nada para responderla.
- Cuando quitas metadatos. Quitar los metadatos te dice cuántos créditos de origen ya no lleva el archivo, ofrece el texto del crédito, y ofrece un archivo limpio con los créditos al lado. Los bytes ya limpiados nunca se vuelven a estampar.
Lo que sigue siendo tuyo
- Tu elección de licencia es tuya. Reclamar un archivo separa tres estados que antes eran uno solo: ninguna licencia pública declarada, un aviso explícito de todos los derechos reservados, y una concesión de licencia pública real. Lolly escribe una línea de derechos solo para las dos últimas, y nunca a partir de tu perfil.
- Tu trabajo no se relicencia por ti. Los términos de una fuente y tu propia declaración de la salida son registros separados. Una condición ShareAlike se aplica a la adaptación que rige, no automáticamente a todo lo demás que hayas creado.
- El trabajo privado sigue siendo utilizable. Las condiciones que se aplican al compartir se plantean cuando el compartir está en juego. Nada de esto se convierte en una prohibición de importar, y ningún cuestionario de licencias se interpone entre tú y tus propios archivos.
- Una decisión se recuerda contra sus propios hechos. Cada elección que registras queda sellada con una huella de las obras, los usos, la vía y el público sobre los que se tomó. Cambia el conjunto, el tratamiento, el formato o el público, y la pregunta se hace de nuevo. No existe un interruptor general de "ignorar licencias", porque cerrar una advertencia de un clic no puede entregar un crédito ni conceder un permiso.
- Tus datos se mantienen aparte del crédito de un tercero. Quitar tus propios metadatos personales no quita a un artista acreditado, y un crédito requerido nunca es excusa para exportar tus datos de contacto.
En la línea de comandos
Un render imprime un bloque Rights: en la salida de error estándar cuando la evaluación tiene un crédito requerido o un problema. Lleva el estado, una línea por problema como code - summary, lo que arrojó la relectura del archivo entregado, y el texto del crédito para pegar.
Rights: actions-required
licence.adaptation-choice - If you share this adaptation, it needs a compatible licence.
Credential intact. It records 1 source. The exporter recorded it; the source did not sign a credential of its own.
Credits included in this file's metadata.
"water wave (OpenMoji Color 17.0.0)" by Vanessa Boutzikoudi (OpenMoji), CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/, source https://raw.githubusercontent.com/hfg-gmuend/openmoji/f9fc506a3f913be9897ab0181d611d4c910a4104/color/svg/1F30A.svg, changes: recoloured.Esas dos afirmaciones son independientes, que es justo el sentido de mantenerlas separadas: el crédito está en el archivo, y todavía falta una decisión de licencia antes de compartir el archivo. El archivo se escribe de todos modos.
| Estado | Significado | Salida |
|---|---|---|
ready | Nada está a la espera de una persona. | 0 |
actions-required | Queda una decisión pendiente antes de compartir el archivo. El archivo se escribe de todos modos. | 4 |
use-not-covered | Una regla revisada dice que la licencia no cubre este uso. | 4 |
unknown | Los únicos problemas son vacíos: una licencia que no se registró, o condiciones que no se interpretan. | 0 |
delivery-failed | Lo establece un recibo, nunca una evaluación: un crédito prometido no se encontró en los bytes entregados. El panel de exportación lo muestra; la CLI reporta el mismo hecho en su línea de relectura en su lugar. | no se imprime |
La salida 4 es el código que esta CLI ya le da a una comprobación de protección que dijo que no. Deliberadamente no es 3, que significa "reintentar en otro ejecutor", porque una decisión de licencia estará esperando en cualquier ejecutor que exista.
--rights=private declara que este render no se está entregando a nadie. El bloque se sigue imprimiendo y el crédito sigue ahí para copiar; lo que se retira es la condición que se aplica al compartir, y no se registra ninguna afirmación de entrega. No hay ninguna opción para ignorar una condición: --rights=ignore es un error de uso.
Los códigos de problema son estables y legibles por máquina, independientes del texto traducido:
attribution.source-missing, attribution.delivery-missing, licence.adaptation-choice, licence.use-not-covered, licence.grant-conflict, licence.unknown, source.redistribution-unknown, credential.ingredient-missing.
A través de MCP, lolly_verify devuelve una carga rights con el resumen, una fila por cada fuente registrada y los límites declarados; un lolly_render sin navegador devuelve status, issues, credits, fingerprint y una marca creditsInFile que se mide releyendo los bytes.
Dónde viven las reglas
Cuatro módulos del motor, todos puros: sin red, sin reloj, sin sistema de archivos. Los datos de las reglas están versionados y viven en el repositorio, nunca se descargan.
| Módulo | Qué contiene |
|---|---|
engine/src/rights-profiles.ts | La tabla de identificadores, el lector mínimo de expresiones SPDX, los perfiles revisados con sus citas, y la única regla sobre si un crédito puede imprimir un enlace. |
engine/src/rights-evaluate.ts | Clasificación, problemas, el plan de atribución y la huella. Determinista: los mismos hechos en un orden distinto dan la misma respuesta. |
engine/src/rights-attribution.ts | Créditos legibles, los archivos complementarios, los ingredientes de origen y el recibo medido después de escribir. |
engine/src/rights-report.ts | Una credencial verificada, releída como las tres preguntas que hace Verify. |
Los archivos de expectativas en tests/fixtures/rights/ se redactaron a partir de los textos de las licencias y no de la salida del evaluador, y su README cita la sección detrás de cada expectativa.
Lo que esto no hace
Dicho sin rodeos, porque un vacío que no se nombra se lee como una promesa.
- NC y ND no se interpretan. Sus condiciones se registran y se reportan como desconocidas.
- Ningún destino está confirmado. Lolly prepara un pie de foto; que un conector acepte una solicitud no es prueba de que un crédito llegó a un lector, y nada de esto promete que una subida posterior, una captura de pantalla o una transcodificación conserven los metadatos ocultos.
- Los campos de crédito de metadatos nativos no se escriben a partir del plan. Los créditos viajan en Content Credentials y en texto legible. Los campos de crédito por fuente de IPTC y XMP todavía no se rellenan a partir del plan de atribución.
- Las correcciones y la retirada no están construidas. Añadir un autor faltante o una corrección local a una obra registrada, y retirar un registro, no tienen interfaz.
- Los proveedores conectados no están construidos. El stock comprado, un permiso personalizado y una cuenta de proveedor no tienen vía de importación, así que sus concesiones solo pueden registrarse como tu propia declaración.
- La política de la organización no se combina con estos resultados. Hoy, la política de exportación y las condiciones de licencia están separadas, y una aprobación de la organización no es un permiso de un titular de derechos.
- Varias vías de entrega todavía no están en este camino. Descargar un original del catálogo, un ZIP masivo, una descarga derivada, Enviar y Copiar imagen todavía no evalúan ni llevan estos créditos.