{
  "lengua": "mesa",
  "epoca": 2,
  "nota": "Códigos estables de diagnóstico de la lengua de pliegos (Tórculo, parte 1, §13). El mensaje es libre; el código no. Un compilador conforme emite el conjunto de códigos de cada caso de la batería.",
  "codigos": {
    "E001": {"grave": "error", "es": "el pliego declara una época mayor que la del compilador", "en": "the pliego declares a newer epoch than the compiler supports"},
    "E010": {"grave": "error", "es": "afecto fuera del vocabulario cerrado", "en": "affect outside the closed vocabulary"},
    "E011": {"grave": "error", "es": "función o plano desconocidos en la cabecera de un clip", "en": "unknown function or shot in a clip header"},
    "E012": {"grave": "error", "es": "palabra suelta en una línea de movimiento (no es trayecto, manera, granulado, registro ni ventana)", "en": "stray word in a movement line (not a path, manner, grain, register or window)"},
    "E013": {"grave": "error", "es": "evento `>` fuera del vocabulario cerrado", "en": "`>` event outside the closed vocabulary"},
    "E014": {"grave": "error", "es": "registro de letrero desconocido", "en": "unknown sign register"},
    "E015": {"grave": "error", "es": "ESPACIO (sala) desconocido", "en": "unknown ESPACIO (room)"},
    "E016": {"grave": "error", "es": "color de voz desconocido en el REPARTO", "en": "unknown voice colour in REPARTO"},
    "E017": {"grave": "error", "es": "arco desconocido", "en": "unknown arc"},
    "E018": {"grave": "error", "es": "modificador de collage o campo de MARIONETA desconocido (detrás de `·` en `foto:`, `recorte:`, `clip:` o `MARIONETA`)", "en": "unknown collage modifier or MARIONETA field (after `·` in `foto:`, `recorte:`, `clip:` or `MARIONETA`)"},
    "E019": {"grave": "error", "es": "otra palabra fuera de un vocabulario cerrado", "en": "another word outside a closed vocabulary"},
    "E020": {"grave": "error", "es": "nombre ambiguo: dos candidatos empatan en el mismo nivel de la dimensión `nombre`", "en": "ambiguous name: two candidates tie at the same level of the `name` dimension"},
    "E021": {"grave": "error", "es": "palabra reservada usada como nombre de hablante o identificador", "en": "reserved word used as a speaker name or identifier"},
    "E022": {"grave": "error", "es": "referencia a algo que no existe (pieza, clip, id de ECO, personaje)", "en": "reference to something that does not exist (piece, clip, ECO id, character)"},
    "E023": {"grave": "error", "es": "línea que parece una orden y no lo es: se escribiría en pantalla sin querer (diálogo de quien no está en el REPARTO, línea de escena dentro de un clip, orden o verbo inexistentes)", "en": "a line that looks like an instruction and is not one: it would be printed on screen by accident (dialogue by someone not in REPARTO, a scene line inside a clip, an instruction or verb that does not exist)"},
    "E024": {"grave": "error", "es": "una pieza actúa (`NOMBRE acción`) sin estar en el REPARTO ni ser una MARIONETA", "en": "a piece acts (`NAME action`) without being in REPARTO or being a MARIONETA"},
    "E025": {"grave": "error", "es": "ancla muerta en el texto: `al decir «X»` y la voz escrita de ese beat no dice X", "en": "dead anchor in the text: `al decir «X»` and the written voice of that beat never says X"},
    "E030": {"grave": "error", "es": "dos gritos en un clip", "en": "two shouts in one clip"},
    "E031": {"grave": "error", "es": "dos acciones sobre el mismo sujeto en la misma ventana, o una duración declarada dos veces", "en": "two actions on the same subject in the same window, or a duration declared twice"},
    "E032": {"grave": "error", "es": "ciclo de ligaduras, cadena de más de tres eslabones o anidamiento excesivo", "en": "cycle of bindings, chain of more than three links, or nesting too deep"},
    "E033": {"grave": "error", "es": "pieza sin apoyo cuando su materia no flota", "en": "unsupported piece whose material does not float"},
    "E040": {"grave": "error", "es": "MÚSICA que no está en BANDA (o BANDA sin declarar)", "en": "MÚSICA cue not found in BANDA (or no BANDA declared)"},
    "E041": {"grave": "error", "es": "efecto `sonido:` que no está en EFECTOS ni en BANDA", "en": "`sonido:` effect found in neither EFECTOS nor BANDA"},
    "E042": {"grave": "error", "es": "AMBIENTE que no está en EFECTOS", "en": "AMBIENTE not found in EFECTOS"},
    "E050": {"grave": "error", "es": "`python:` nombra algo que no está en el bestiario", "en": "`python:` names something that is not in the bestiary"},
    "E051": {"grave": "error", "es": "pose que el bestiario no declara", "en": "pose not declared by the bestiary"},
    "E052": {"grave": "error", "es": "dibujo mal invocado: argumentos detrás de `·`, paréntesis, o argumentos que la firma de la pieza no admite", "en": "drawing invoked wrongly: arguments after `·`, parentheses, or arguments the piece's signature does not accept"},
    "E053": {"grave": "error", "es": "el bestiario declarado (`PYTHON` o `PIEZAS`) no existe junto al pliego", "en": "the declared bestiary (`PYTHON` or `PIEZAS`) does not exist next to the pliego"},
    "E054": {"grave": "error", "es": "acción que la pieza no declara (ni entre sus ACCIONES, ni sus POSES, ni sus CICLOS)", "en": "action the piece does not declare (neither among its ACCIONES, its POSES nor its CICLOS)"},
    "E060": {"grave": "error", "es": "rotura de una regla sin su `porque`", "en": "a rule broken without its `porque`"},
    "E090": {"grave": "error", "es": "línea mal formada (el parser no puede seguir)", "en": "malformed line (the parser cannot continue)"},
    "W101": {"grave": "aviso", "es": "SALTO DE EJE", "en": "axis jump (180-degree rule)"},
    "W102": {"grave": "aviso", "es": "SALTO DE TALLA", "en": "shot-size jump"},
    "W103": {"grave": "aviso", "es": "RACCORD DE MIRADA", "en": "eyeline mismatch"},
    "W104": {"grave": "aviso", "es": "RACCORD DE DIRECCIÓN", "en": "screen-direction mismatch"},
    "W105": {"grave": "aviso", "es": "RACCORD DE ESTADO", "en": "continuity-of-state mismatch"},
    "W110": {"grave": "aviso", "es": "evento reservado: la lengua lo acepta y el intérprete aún no lo realiza", "en": "reserved event: accepted by the language, not yet realized"},
    "W111": {"grave": "aviso", "es": "registro de letrero reservado", "en": "reserved sign register"},
    "W112": {"grave": "aviso", "es": "porcentaje pobre por debajo del 85 %", "en": "plain-dialect share below 85 %"},
    "W113": {"grave": "aviso", "es": "sin silencio final declarado", "en": "no final silence declared"},
    "W114": {"grave": "aviso", "es": "demasiados clips sin respiro", "en": "too many clips without a breather"},
    "W115": {"grave": "aviso", "es": "escena con dos o más personajes y sin EJE", "en": "scene with two or more characters and no EJE"},
    "W116": {"grave": "aviso", "es": "clip vacío", "en": "empty clip"},
    "W117": {"grave": "aviso", "es": "relojes no coprimos", "en": "clocks that are not coprime"},
    "W118": {"grave": "aviso", "es": "acción dudosa sobre una pieza (entra dos veces, actúa sobre algo ausente)", "en": "dubious action on a piece (enters twice, acts on something absent)"},
    "W120": {"grave": "aviso", "es": "ancla muerta: `al decir «X»` y la voz nunca dice X", "en": "dead anchor: `al decir «X»` and the voice never says X"},
    "W121": {"grave": "aviso", "es": "dos voces: clip con sonido dentro de un beat narrado sin `> espera al clip`", "en": "two voices: a sounding clip inside a narrated beat without `> espera al clip`"},
    "W122": {"grave": "aviso", "es": "ancla ilegible: casa con la voz pero no con su `di:`", "en": "illegible anchor: matches the voice but not its `di:`"},
    "W123": {"grave": "aviso", "es": "el beat se alarga: el clip dura más que la voz", "en": "the beat grows: the clip is longer than the voice"},
    "W124": {"grave": "aviso", "es": "página vacía: el beat abre cuadro nuevo y no pone nada mientras suena la voz", "en": "empty page: the beat opens a new frame and places nothing while the voice sounds"},
    "W125": {"grave": "aviso", "es": "texto en pantalla: una línea de prosa que se escribirá a máquina en el papel", "en": "text on screen: a prose line that will be typed on the paper"},
    "W130": {"grave": "aviso", "es": "revisión Lasseter (sobre la cronología real)", "en": "Lasseter review (on the real timeline)"},
    "W199": {"grave": "aviso", "es": "otro aviso", "en": "other warning"}
  }
}
