Loading...
Loading...
Reference
All 83 rules, across 7 categories. Reports cite these ids, so this is where to look one up. The list is generated from the checker's own source on every build — it cannot drift from what actually runs.
M — the .ograf.json itself, validated against the EBU schema and then across its own fields.
M-01Missing manifestM-02Manifest is not valid JSONM-03Schema violationM-04customAction missing `name`M-05Duplicate customAction idM-06customAction has no schemaM-07Optional — no descriptionM-08`main` file not found in packageM-09Valid semver versionM-10`$schema` is not the current EBU URLM-11Graphic declares no supported render modeM-12`id` contains a slashM-13`main` is not a .js or .mjs fileM-14`stepCount` is below the allowed minimumM-15`author` has no `name`M-16Duplicate actionDuration for \M-17Unsatisfiable requirement on \M-18Thumbnail is not a PNG, JPG, GIF or webpM-19Manifest filename does not end in `.ograf.json`G — the data schema controllers build operator forms from.
G-00GDD schema is well-formedG-01… schema is not an objectG-02GDD field has no `type`G-03`gddType` is not a stringG-04—G-05—G-06—G-07—G-08Not every option has a labelG-09Array field has no `items`G-10`default` does not match the field typeG-11`default` is not one of the allowed valuesG-12`pattern` is not a valid regular expressionG-13… schema root must be \G-14GDD schema is cyclic or extremely deepG-15file-path default is not in the packageS — what the package contains and how it is laid out.
S-01No single top-level folderS-02Main module not declaredS-03Referenced asset not in packageS-04README presentS-05No LICENSE file at rootS-06Optional — no preview imageS-07Fonts shipped without a licence fileS-08OS-generated files inside the zipS-09Large file: …S-10Package contains … manifestsC — the graphic module's source: exports, lifecycle, portability.
C-01Default export is a class extending HTMLElementC-02All six lifecycle methods presentC-03Module self-registers with customElements.defineC-04Non-async lifecycle method…: …C-05Top-level access to document/windowC-06Asset URLs computed from import.meta.urlC-07External / bare-module importsC-08Relative asset URL inside innerHTMLC-09Non-real-time method… missing: …X — stylesheet rules that decide whether a graphic survives a different renderer.
X-00No stylesheet foundX-01`position: fixed` usedX-02Remote @import in CSSX-03Remote font loaded in @font-faceX-04`body` selector in stylesheetX-05font-family without a generic fallbackX-06`!important` used in stylesheetX-07No positioned elementsX-08@font-face portability across mount modelsX-09Relative @import in CSSA — images, fonts and the licences that must ship beside them.
A-01Preview image is not 16:9A-02Preview image larger than 500 KBA-03Shipped font has no licence fileA-04Consider WebP for the previewA-05Unrecognised file extension: .…R — assertions made while the graphic actually runs in the sandbox.
R-01Module did not importR-02—R-03—R-04—R-05—R-06—R-07—R-08Uncaught error… during the runR-09Unhandled promise rejection… during the runR-10—R-11… took longer than … msR-12—R-13—R-14—A rule with no description raises more than one kind of finding, and its message says which. Run a package through the checker to see them in context.