{
    "ancient-metadata": {
        "severity": "warning",
        "text": "The AppStream metadata should be updated to follow a more recent version of the specification.<br\/>Please consult <a href=\"http:\/\/freedesktop.org\/software\/appstream\/docs\/chap-Quickstart.html\">the XML quickstart guide<\/a> for more information."
    },
    "asv-addon-extends-missing": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component is an addon, but no `extends` tag was specified."
    },
    "asv-app-categories-missing": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This component is in no valid categories, even though it should be. Please check its metainfo file and desktop-entry file."
    },
    "asv-app-description-required": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component is missing a long description. Components of this type must have a long description."
    },
    "asv-artifact-bundle-type-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The value set as artifact bundle type is invalid."
    },
    "asv-artifact-checksum-type-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The selected checksumming algorithm is unsupported or unknown."
    },
    "asv-artifact-filename-not-basename": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The artifact filename must be a file basename, not a (relative or absolute) path."
    },
    "asv-artifact-invalid-platform-triplet": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The platform triplet for this release is invalid. It must be in the form of `architecture-oskernel-osenv` - refer to the AppStream documentation or information on normalized GNU triplets for more information and valid fields."
    },
    "asv-artifact-size-type-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The size type is unknown. Must be `download` or `installed`."
    },
    "asv-artifact-type-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The value set as artifact type is invalid. Must be either `source` or `binary`."
    },
    "asv-branding-color-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This color is not a valid HTML color code."
    },
    "asv-branding-color-scheme-type-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The value of this color scheme preference is not valid."
    },
    "asv-branding-color-type-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The type of this color is not valid."
    },
    "asv-bundle-unknown-type": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `bundle` tag has an unknown type and can not be used."
    },
    "asv-catalog-localized-description-section": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This element (paragraph, list, etc.) of a &lt;description\/&gt; tag must not be localized individually in catalog metadata. Localize the whole &lt;description\/&gt; tag instead. The AppStream metadata catalog generator (e.g. `appstream-generator`) will already do the right thing when compiling the data."
    },
    "asv-category-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The category name is not valid. Refer to the XDG Menu Specification for a list of valid category names."
    },
    "asv-cid-contains-hyphen": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component ID contains a hyphen\/minus. Using a hyphen is strongly discouraged, to improve interoperability with other tools such as D-Bus. A good option is to replace any hyphens with underscores (`_`)."
    },
    "asv-cid-contains-uppercase-letter": {
        "severity": "pedantic",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component ID should only contain lowercase characters."
    },
    "asv-cid-desktopapp-is-not-rdns": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component ID is not a reverse domain-name. Please update the ID to avoid future issues and be compatible with all AppStream implementations.\nYou may also consider to update the name of the accompanying .desktop file to follow the latest version of the Desktop-Entry specification and use a rDNS name for it as well. In any case, do not forget to mention the new desktop-entry in a &lt;launchable\/&gt; tag for this component to keep the application launchable from software centers and the .desktop file data associated with the metainfo data."
    },
    "asv-cid-domain-not-lowercase": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The domain part of the rDNS component ID (first two parts) must only contain lowercase characters."
    },
    "asv-cid-has-number-prefix": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component ID contains a segment starting with a number. Starting a segment of the reverse-DNS ID with a number is strongly discouraged, to keep interoperability with other tools such as D-Bus. Ideally, prefix these segments with an underscore."
    },
    "asv-cid-invalid-character": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component ID contains an invalid character. Only ASCII characters, dots and numbers are permitted."
    },
    "asv-cid-is-not-rdns": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component ID is required to follow a reverse domain-name scheme for its name. See the AppStream specification for details."
    },
    "asv-cid-maybe-not-rdns": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component ID might not follow the reverse domain-name schema (the TLD used by it is not known to the validator)."
    },
    "asv-cid-missing-affiliation-freedesktop": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component is part of the Freedesktop project, but its ID does not start with fd.o&apos;s reverse-DNS name (&quot;org.freedesktop&quot;)."
    },
    "asv-cid-missing-affiliation-gnome": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component is part of the GNOME project, but its ID does not start with GNOMEs reverse-DNS name (&quot;org.gnome&quot;)."
    },
    "asv-cid-missing-affiliation-kde": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component is part of the KDE project, but its ID does not start with KDEs reverse-DNS name (&quot;org.kde&quot;)."
    },
    "asv-cid-punctuation-prefix": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component ID starts with punctuation. This is not allowed."
    },
    "asv-circular-component-relation": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This component extends, provides, requires or recommends itself, which is certainly not intended and may confuse users or machines dealing with this metadata."
    },
    "asv-component-catalog-tag-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Invalid tag found in catalog metadata. Only `component` tags are permitted."
    },
    "asv-component-id-missing": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component is missing an ID (&lt;id\/&gt; tag)."
    },
    "asv-component-merge-in-metainfo": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component has a `merge` method defined. This is not allowed in metainfo files."
    },
    "asv-component-name-missing": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component is missing a name (&lt;name\/&gt; tag)."
    },
    "asv-component-priority-in-metainfo": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component has a priority value set. This is not allowed in metainfo files."
    },
    "asv-component-summary-missing": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component is missing a summary (&lt;summary\/&gt; tag)."
    },
    "asv-component-tag-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This tag or its namespace contains invalid characters. Only lower-cased ASCII letters, numbers, dots, hyphens and underscores are permitted."
    },
    "asv-component-tag-missing-namespace": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `tag` is missing a `namespace` attribute."
    },
    "asv-component-type-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The set component type is not a recognized, valid AppStream component type."
    },
    "asv-console-app-no-binary": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Type `console-application` component, but no information about binaries in $PATH was provided via a `provides\/binary` tag."
    },
    "asv-content-rating-missing": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This component has no `content_rating` tag to provide age rating information. You can generate the tag data online by answering a few questions at https:\/\/hughsie.github.io\/oars\/"
    },
    "asv-custom-invalid-tag": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The `custom` tag can only contain `value` children."
    },
    "asv-custom-key-duplicated": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>A key can only be used once."
    },
    "asv-custom-key-missing": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `custom` tag value is missing a `key` attribute."
    },
    "asv-custom-value-empty": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This custom value is empty."
    },
    "asv-description-enum-item-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Enumerations must only have list items (&lt;li\/&gt;) as children."
    },
    "asv-description-first-para-too-short": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The first `description\/p` paragraph of this component might be too short (&lt; 80 characters). Please consider starting with a longer paragraph to improve how the description looks like in software centers and to provide more detailed information on this component immediately in the first paragraph."
    },
    "asv-description-first-word-not-capitalized": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The description line does not start with a capitalized word, project name or number."
    },
    "asv-description-has-plaintext-url": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The description contains a web URL in plain text. This is not allowed, please use the &lt;url\/&gt; tag instead to share links."
    },
    "asv-description-markup-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>AppStream descriptions support only a limited set of tags to format text: Paragraphs (&lt;p\/&gt;) and lists (&lt;ul\/&gt;, &lt;ol\/&gt;). This description markup contains an invalid XML tag that would not be rendered correctly in applications supporting the metainfo specification."
    },
    "asv-description-para-markup-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This description paragraph contains invalid markup. Currently, only &lt;em\/&gt; and &lt;code\/&gt; are permitted."
    },
    "asv-desktop-app-launchable-missing": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `desktop-application` component is missing a `desktop-id` launchable tag. This means that this application can not be launched and has no association with its desktop-entry file. It also means no icon data or category information from the desktop-entry file will be available, which will result in this application being ignored entirely."
    },
    "asv-desktop-app-launchable-omitted": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `desktop-application` component has no `desktop-id` launchable tag, however it contains all the necessary information to display the application. The omission of the launchable entry means that this application can not be launched directly from installers or software centers. If this is intended, this information can be ignored, otherwise it is strongly recommended to add a launchable tag as well."
    },
    "asv-desktop-entry-bad-data": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Error while reading some data from the desktop-entry file."
    },
    "asv-desktop-entry-category-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>A category defined in the desktop-entry file is not valid. Refer to the XDG Menu Specification for a list of valid categories."
    },
    "asv-desktop-entry-empty-onlyshowin": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This desktop-entry file has the &apos;OnlyShowIn&apos; property set with an empty value. This might not be intended, as this will hide the application from all desktops. If you do want to hide the application from all desktops, using &apos;NoDisplay=true&apos; is more explicit."
    },
    "asv-desktop-entry-hidden-set": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This desktop-entry file has the &apos;Hidden&apos; property set. This is wrong for vendor-installed .desktop files, and nullifies all effects this .desktop file has (including MIME associations), which most certainly is not intentional."
    },
    "asv-desktop-entry-value-invalid-chars": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The value of this desktop-entry field contains invalid or non-printable UTF-8 characters, which can not be displayed properly."
    },
    "asv-desktop-entry-value-quoted": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This desktop-entry field value is quoted, which is likely unintentional."
    },
    "asv-desktop-file-load-failed": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Unable to load the desktop-entry file associated with this component."
    },
    "asv-desktop-file-not-found": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This component metadata refers to a non-existing .desktop file."
    },
    "asv-developer-name-has-url": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The &lt;developer_name\/&gt; can not contain a hyperlink."
    },
    "asv-dir-applications-not-found": {
        "severity": "pedantic",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>No XDG applications directory found."
    },
    "asv-dir-no-metadata-found": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>No AppStream metadata was found in this directory or directory tree."
    },
    "asv-driver-firmware-description-missing": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>It is recommended to add a long description to this component to present it better to users."
    },
    "asv-driver-no-modalias": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Type `driver` component, but no modalias information was provided via a `provides\/modalias` tag."
    },
    "asv-extends-not-allowed": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>An `extends` tag is specified, but the component is not of type `addon`, `localization` or `repository`."
    },
    "asv-file-read-failed": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Unable to read file."
    },
    "asv-font-description-missing": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>It would be useful to add a long description to this font to present it better to users."
    },
    "asv-font-no-font-data": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Type `font` component, but no font information was provided via a `provides\/font` tag."
    },
    "asv-generic-description-missing": {
        "severity": "pedantic",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This generic component is missing a long description. It may be useful to add one."
    },
    "asv-icon-remote-no-url": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Icons of type `remote` must contain an URL to the referenced icon."
    },
    "asv-icon-remote-not-found": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Unable to reach remote icon at the given web location - does it exist?"
    },
    "asv-icon-remote-not-secure": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Consider using a secure (HTTPS) URL for the remote icon link."
    },
    "asv-icon-stock-cached-has-url": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Icons of type `stock` or `cached` must not contain an URL, a full or an relative path to the icon. Only file basenames or stock names are allowed."
    },
    "asv-id-tag-has-type": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The &lt;id\/&gt; tag still contains a `type` property, probably from an old conversion to the recent metainfo format."
    },
    "asv-invalid-child-tag-name": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Tags of this name are not permitted in this section."
    },
    "asv-invalid-iso8601-date": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The AppStream specification requires a complete, ISO 8601 date string with at least day-granularity to denote dates. Please ensure the date string is valid."
    },
    "asv-launchable-unknown-type": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `launchable` tag has an unknown type and can not be used."
    },
    "asv-localization-extends-missing": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `localization` component is missing an `extends` tag, to specify the components it adds localization to."
    },
    "asv-localization-no-languages": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `localization` component does not define any languages this localization is for."
    },
    "asv-metadata-license-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The metadata itself does not seem to be licensed under a permissive license. Please license the data under a permissive license, like FSFAP, CC0-1.0 or 0BSD to allow distributors to include it in mixed data collections without the risk of license violations due to mutually incompatible licenses."
    },
    "asv-metadata-license-missing": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The essential tag `metadata_license` is missing. A license for the metadata itself always has to be defined."
    },
    "asv-metadata-license-too-complex": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The metadata itself seems to be licensed under a complex collection of licenses. Please license the data under a simple permissive license, like FSFAP, MIT or CC0-1.0 to allow distributors to include it in mixed data collections without the risk of license violations due to mutually incompatible licenses."
    },
    "asv-metainfo-ancient": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The metainfo file uses an ancient version of the AppStream specification, which can not be validated. Please migrate it to version 0.6 (or higher)."
    },
    "asv-metainfo-filename-cid-mismatch": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The metainfo filename does not match the component ID."
    },
    "asv-metainfo-invalid-icon-type": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Metainfo files may only contain icons of type `stock` or `remote`, the set type is not allowed."
    },
    "asv-metainfo-legacy-path": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The metainfo file is stored in a legacy path. Please place it in `\/usr\/share\/metainfo\/`."
    },
    "asv-metainfo-localized-description-tag": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>A &lt;description\/&gt; tag must not be localized in metainfo files (upstream metadata). Localize the individual paragraphs instead."
    },
    "asv-metainfo-localized-keywords-tag": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>A `keywords` tag must not be localized in metainfo files (upstream metadata). Localize the individual keyword entries instead."
    },
    "asv-metainfo-multiple-components": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The metainfo file specifies multiple components. This is not allowed."
    },
    "asv-metainfo-suggestion-type-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Suggestions of any type other than `upstream` are not allowed in metainfo files."
    },
    "asv-mimetypes-tag-deprecated": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The toplevel `mimetypes` tag is deprecated. Please use `mediatype` tags in a `provides` block instead to indicate that your software provides a media handler for the given types."
    },
    "asv-multiple-pkgname": {
        "severity": "pedantic",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The `pkgname` tag appears multiple times. You should evaluate creating a metapackage containing the metainfo and .desktop files in order to avoid defining multiple package names per component."
    },
    "asv-name-has-dot-suffix": {
        "severity": "pedantic",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component name should (likely) not end with a dot (`.`)."
    },
    "asv-nonstandard-gnome-extension": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This tag is a GNOME-specific extension to AppStream and not part of the official specification. Do not expect it to work in all implementations and in all software centers."
    },
    "asv-relation-control-in-requires": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Found a user input control relation in a `requires` tag. This means users will not be able to even install the component without having the defined input control available on the system. This is usually not intended and you want to use `control` in the `recommends` tag instead."
    },
    "asv-relation-control-value-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `control` item defines an unknown input method and is invalid. Check the specification for a list of permitted values."
    },
    "asv-relation-display-length-side-property-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `side` property of this `display_length` item contains an invalid value. It must either be `shortest` or `longest`, or unset to imply `shortest` to make the item value refer to either the shortest or longest side of the display."
    },
    "asv-relation-display-length-value-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `display_length` item contains an invalid display length. Its value must either be a shorthand string, or positive integer value denoting logical pixels. Please refer to the AppStream specification for more information on this tag."
    },
    "asv-relation-hardware-value-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `hardware` item contains an invalid value. It should be a Computer Hardware ID (CHID) UUID without braces."
    },
    "asv-relation-internet-bandwidth-offline": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The `bandwidth_mbitps` property is not allowed when using `offline-only` as value."
    },
    "asv-relation-internet-bandwidth-value-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The value of this property must be a positive integer value, describing the minimum required bandwidth in mbit\/s."
    },
    "asv-relation-internet-value-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The set tag value is not valid for an `internet` relation."
    },
    "asv-relation-invalid-tag": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Found an unknown tag in a requires\/recommends group. This is likely an error, because a component relation of this type is unknown."
    },
    "asv-relation-item-has-vercmp": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The relation item has a comparison operation set, but does not support any comparisons."
    },
    "asv-relation-item-has-version": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Found `version` property on required\/recommended item of a type that should not have or require a version."
    },
    "asv-relation-item-invalid-vercmp": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Invalid comparison operation on relation item. Only one of `eq\/ne\/lt\/gt\/le\/ge` is permitted."
    },
    "asv-relation-item-missing-compare": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Found `version` property on this required\/recommended item, but not `compare` property. It is recommended to explicitly define a comparison operation."
    },
    "asv-relation-item-no-value": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>A `requires` or `recommends` item requires a value to denote a valid relation."
    },
    "asv-relation-item-redefined": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This relation item has already been defined once for this or a different relation type. Please do not redefine relations."
    },
    "asv-relation-memory-in-requires": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Found a memory size relation in a `requires` tag. This means users will not be able to even install the component without having enough RAM. This is usually not intended and you want to use `memory` in the `recommends` tag instead."
    },
    "asv-relation-memory-value-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>A `memory` item must only contain a non-zero integer value, depicting a system memory size in mebibyte (MiB)"
    },
    "asv-release-issue-is-cve-but-no-cve-id": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The issue is tagged at security vulnerability with a CVE number, but its value does not look like a valid CVE identifier."
    },
    "asv-release-issue-type-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The value set as release issue type is invalid."
    },
    "asv-release-time-missing": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The release is missing either the `date` (preferred) or the `timestamp` property."
    },
    "asv-release-timestamp-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The release timestamp is invalid."
    },
    "asv-release-type-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The value set as release type is invalid."
    },
    "asv-release-urgency-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The value set as release urgency is not a known urgency value."
    },
    "asv-release-version-missing": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The release is missing the `version` property."
    },
    "asv-releases-download-failed": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Failed to download release metadata."
    },
    "asv-releases-external-not-found": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>A local release metadata file was not found. It is strongly recommended to validate this metadata together with the main MetaInfo file."
    },
    "asv-releases-info-missing": {
        "severity": "pedantic",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This component is missing information about releases. Consider adding a `releases` tag to describe releases and their changes."
    },
    "asv-releases-not-in-order": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The releases are not sorted in a latest to oldest version order. This is required as some tools will assume that the latest version is always at the top. Sorting releases also increases overall readability of the metainfo file."
    },
    "asv-releases-type-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The type of the releases block is invalid. It needs to either `embedded` (the default) or `external`."
    },
    "asv-releases-url-insecure": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The URL to an external release metadata file is insecure. This is not allowed, please use HTTPS URLs only."
    },
    "asv-root-tag-unknown": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This XML document has an unknown root tag. Maybe this file is not a metainfo document?"
    },
    "asv-runtime-no-provides": {
        "severity": "pedantic",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Since a `runtime` component is comprised of multiple other software components, their component-IDs may be listed in a `&lt;provides\/&gt;` section for this runtime."
    },
    "asv-runtime-project-license-no-ref": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Licenses for `runtime` components are usually too complex to reflect them in a simple SPDX expression. Consider using a `LicenseRef` and a web URL as value for this component&apos;s `project_license`. E.g. `LicenseRef-free=https:\/\/example.com\/licenses.html`"
    },
    "asv-screenshot-caption-too-long": {
        "severity": "pedantic",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The screenshot caption is too long (should be &lt;= 100 characters)"
    },
    "asv-screenshot-default-contains-video": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The default screenshot of a software component must not be a video. Use a static image as default screenshot and set the video as a secondary screenshot."
    },
    "asv-screenshot-default-missing": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>No screenshot is marked as default."
    },
    "asv-screenshot-image-invalid-type": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The image type must be either `source` or `thumbnail`."
    },
    "asv-screenshot-image-missing-height": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The `height` property must be present if the image type is `thumbnail`."
    },
    "asv-screenshot-image-missing-width": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The `width` property must be present if the image type is `thumbnail`."
    },
    "asv-screenshot-image-not-found": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Unable to reach the screenshot image on its remote location - does the image exist?"
    },
    "asv-screenshot-image-source-duplicated": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>There can only be one `source` image per screenshot and language."
    },
    "asv-screenshot-image-source-missing": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>A screenshot must have at least one image of type `source`."
    },
    "asv-screenshot-invalid-height": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The `height` property must be a positive integer."
    },
    "asv-screenshot-invalid-width": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The `width` property must be a positive integer."
    },
    "asv-screenshot-media-url-not-secure": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Consider using a secure (HTTPS) URL to reference this screenshot image or video."
    },
    "asv-screenshot-mixed-images-videos": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>A screenshot must contain either images or videos, but not both at the same time. Please use this screenshot exclusively for either static images or for videos."
    },
    "asv-screenshot-no-caption": {
        "severity": "pedantic",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The screenshot does not have a caption text. Consider adding one."
    },
    "asv-screenshot-no-media": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>A screenshot must contain at least one image or video in order to be useful. Please add an &lt;image\/&gt; to it."
    },
    "asv-screenshot-video-codec-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The selected video codec is not supported by AppStream and software centers may not be able to play the video. Only the AV1 and VP9 codecs are currently supported, using `av1` and `vp9` as values for the `codec` property."
    },
    "asv-screenshot-video-codec-missing": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The screenshot video does not specify which video codec was used in a `codec` property."
    },
    "asv-screenshot-video-container-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The selected video container format is not supported by AppStream and software centers may not be able to play the video. Only the WebM and Matroska video containers are currently supported, using `webm` and `mkv` as values for the `container` property."
    },
    "asv-screenshot-video-container-missing": {
        "severity": "pedantic",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The screenshot video does not specify which container format was used in a `container` property."
    },
    "asv-screenshot-video-file-wrong-container": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>For videos, only the WebM and Matroska (.mkv) container formats are currently supported. The file extension of the referenced video does not belong to either of these formats."
    },
    "asv-screenshot-video-not-found": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Unable to reach the screenshot video on its remote location - does the video file exist?"
    },
    "asv-service-no-service-launchable": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `service` component is missing a `launchable` tag of type `service`."
    },
    "asv-spdx-expression-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The SPDX license expression is invalid and could not be parsed."
    },
    "asv-spdx-license-unknown": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The license ID was not found in the SPDX database. Please check that the license ID is written in an SPDX-conformant way and is a valid free software license."
    },
    "asv-summary-first-word-not-capitalized": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The summary text does not start with a capitalized word, project name or number."
    },
    "asv-summary-has-dot-suffix": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component summary should not end with a dot (`.`)."
    },
    "asv-summary-has-tabs-or-linebreaks": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The component summary must not contain tabs or linebreaks."
    },
    "asv-summary-has-url": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The summary must not contain any URL. Use the `&lt;url\/&gt;` tags for links."
    },
    "asv-tag-duplicated": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This tag must only appear once in this context. Having multiple tags of this kind is not valid."
    },
    "asv-tag-empty": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The mentioned tag is empty, which is highly likely not intended as it should have content."
    },
    "asv-tag-invalid-text-content": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The mentioned tag has text content, even though it must not contain text."
    },
    "asv-tag-not-translatable": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This tag is not translatable."
    },
    "asv-type-property-required": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This tag requires a type property."
    },
    "asv-unknown-desktop-id": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The set value is not an identifier for a desktop environment as registered with Freedesktop.org."
    },
    "asv-unknown-provides-item-type": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The type of the item that the component provides is not known to AppStream."
    },
    "asv-unknown-tag": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Found invalid tag. Non-standard tags should be prefixed with `x-`. AppStream also provides the &lt;custom\/&gt; tag to add arbitrary custom data to metainfo files. This tag is read by AppStream libraries and may be useful instead of defining new custom toplevel or `x-`-prefixed tags if you just want to add custom data to a metainfo file."
    },
    "asv-update-contact-in-catalog-data": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The `update_contact` tag should not be included in catalog AppStream XML."
    },
    "asv-update-contact-no-mail": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The update-contact does not appear to be a valid email address (escaping of `@` is only allowed as `_at_` or `_AT_`)."
    },
    "asv-url-invalid-type": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Invalid `type` property for this `url` tag. URLs of this type are not known in the AppStream specification."
    },
    "asv-url-not-reachable": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Unable to reach remote location that this URL references - does it exist?"
    },
    "asv-url-not-secure": {
        "severity": "info",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>Consider using a secure (HTTPS) URL for this web link."
    },
    "asv-url-redefined": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>An URL of this type has already been defined."
    },
    "asv-url-uses-ftp": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This web link uses the FTP protocol. Consider switching to HTTP(S) instead."
    },
    "asv-web-app-no-category": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `web-application` component is missing categorizations. A `categories` block is likely missing."
    },
    "asv-web-app-no-icon": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `web-application` component is missing a `icon` tag to specify a valid icon."
    },
    "asv-web-app-no-url-launchable": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>This `web-application` component is missing a `launchable` tag of type `url`."
    },
    "asv-web-url-expected": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>A web URL was expected for this value."
    },
    "asv-xml-markup-invalid": {
        "severity": "warning",
        "text": "<code>{{location}}<\/code> - <em>{{hint}}<\/em><br\/>The XML of this file is malformed."
    },
    "description-from-package": {
        "severity": "info",
        "text": "This software component gets its description from the package it is located in.<br\/>\nThis has several disadvantages, like poor markup, too technical descriptions for users of software centers, different components having the same description, etc.<br\/>\nPlease consider to either hide this .desktop file from AppStream by adding a <code>X-AppStream-Ignore=true<\/code> field to its .desktop file, or to write a MetaInfo file for \nthis component to take the long description upstream. In future, components without MetaInfo file might be dropped from the metadata entirely.\nYou can consult the <a href=\"http:\/\/freedesktop.org\/software\/appstream\/docs\/chap-Quickstart.html\">XML quickstart guides<\/a> for more information on how to write a MetaInfo file.\n"
    },
    "description-missing": {
        "severity": "error",
        "text": "Software components of type '{{kind}}' require a long description, and we were unable to find one. Please add one via a MetaInfo file."
    },
    "desktop-entry-empty-onlyshowin": {
        "severity": "warning",
        "text": "The desktop-entry file `{{location}}` has the 'OnlyShowIn' property set with an empty value. This might not be intended, as this will hide the application from all desktops. If you do want to hide the application from all desktops, using 'NoDisplay=true' is more explicit. See <a href=\"https:\/\/standards.freedesktop.org\/desktop-entry-spec\/latest\/ar01s06.html\">the specification<\/a> for details."
    },
    "desktop-entry-hidden-set": {
        "severity": "warning",
        "text": "The desktop-entry file `{{location}}` has the 'Hidden' property set. This is wrong for vendor-installed .desktop files, and nullifies all effects this .desktop file has (including MIME associations), which most certainly is not intentional. See <a href=\"https:\/\/standards.freedesktop.org\/desktop-entry-spec\/latest\/ar01s06.html\">the specification<\/a> for details."
    },
    "desktop-file-error": {
        "severity": "error",
        "text": "Unable to read data from .desktop file: {{msg}}"
    },
    "duplicate-component": {
        "severity": "error",
        "text": "A component with this ID already exists. AppStream IDs must be unique, any subsequent components have been ignored. Please resolve the ID conflict!"
    },
    "file-read-error": {
        "severity": "error",
        "text": "Unable to read data from file <code>{{fname}}<\/code>: {{msg}}"
    },
    "filters-but-no-output": {
        "severity": "error",
        "text": "Component filters were set, but no output was generated at all. Likely none of the filtered components were found, try to relax the filters and ensure the input data is valid."
    },
    "font-load-error": {
        "severity": "error",
        "text": "Unable to load font '{{fname}}' from unit '{{unit_name}}: {{error}}"
    },
    "font-metainfo-but-no-font": {
        "severity": "error",
        "text": "A MetaInfo file with component-type <code>font<\/code> was found, but we could not find any matching font file (TrueType or OpenType) in the package.<br\/> This can mean that the <code>&lt;provides&gt; - &lt;font&gt;<\/code> tags contain wrong values that we could not map to the actual fonts, or that the package simply contained no fonts at all.<br\/> Fonts in this package: <em>{{font_names}}<\/em>"
    },
    "font-render-error": {
        "severity": "warning",
        "text": "Unable to render image for font '{{name}}': {{error}}"
    },
    "font-without-icon": {
        "severity": "warning",
        "text": "The component is a font, but somehow we failed to automatically generate an icon for it, and no custom icon was set explicitly. Is there a font file in the analyzed package, and does the MetaInfo file set the right font name to look for?"
    },
    "gui-app-without-icon": {
        "severity": "error",
        "text": "The component is a GUI application (application which has a .desktop file for the XDG menu and <code>Type=Application<\/code>), but we could not find a matching icon for this application."
    },
    "icon-format-unsupported": {
        "severity": "error",
        "text": "Icon file '{{icon_fname}}' uses an unsupported image file format."
    },
    "icon-not-found": {
        "severity": "error",
        "text": "The icon '{{icon_fname}}' was not found in the archive. This issue can have multiple reasons:\n<ul>\n  <li>The icon is not present in the archive.<\/li>\n  <li>The icon is in a wrong directory.<\/li>\n  <li>The icon is not available in a suitable size (at least 64x64px)<\/li>\n  <li>On Debian and Ubuntu, the icon is a symlink. The generator cannot read symlinks on these distributions - make the icon a real file.<\/li>\n<\/ul>\nTo make the icon easier to find, place it in <code>\/usr\/share\/icons\/hicolor\/&lt;size&gt;\/apps<\/code> and ensure the <code>Icon=<\/code> value\nof the .desktop file is set correctly.\n"
    },
    "icon-scaled-up": {
        "severity": "warning",
        "text": "Icon file '{{icon_name}}' was scaled up from {{icon_size}}px to {{scale_size}}px. Please try to supply a bigger icon."
    },
    "icon-too-small": {
        "severity": "error",
        "text": "Only a very small icon ('{{icon_name}}', {{icon_size}}px) could be located.\nPlease try to supply a bigger icon (at least 64x64px) in the Freedesktop icon path (<code>\/usr\/share\/icons\/hicolor\/%size%\/apps\/<\/code>).\n"
    },
    "icon-write-error": {
        "severity": "error",
        "text": "Unable to store icon <code>{{fname}}<\/code>: {{msg}}"
    },
    "image-write-error": {
        "severity": "error",
        "text": "Could write new image generated from '{{fname}}' (package '{{pkg_fname}}'): {{error}}\n"
    },
    "internal-error": {
        "severity": "error",
        "text": "A fatal problem appeared in the generator.\nPlease <a href=\"https:\/\/github.com\/ximion\/appstream-generator\/issues\">report a bug<\/a>: {{msg}}\n"
    },
    "internal-unknown-tag": {
        "severity": "error",
        "text": "The generator emitted a tag '{{tag}}' which is unknown. This is a bug in the metadata generator, please\n<a href=\"https:\/\/github.com\/ximion\/appstream-generator\/issues\">file a bugreport<\/a>.\n"
    },
    "metadata-serialization-failed": {
        "severity": "error",
        "text": "Could not create the final metadata. This could have many causes, including a generator bug, but the likeliest cause is an error in the input metadata.<br\/>\nThe error message was: {{msg}}\n"
    },
    "metainfo-duplicate-id": {
        "severity": "error",
        "text": "The component-id '{{cid}}' already appeared in package '{{pkgname}}'. AppStream-IDs must be unique, please resolve which package will be\nproviding this component by default.<br\/>\nThis issue may happen temporarily when metadata is moved from one package to another. In that case, ignore this issue, it will vanish soon.\n"
    },
    "metainfo-license-invalid": {
        "severity": "error",
        "text": "The MetaInfo file does not seem to be licensed under a permissive license that is in the allowed set for AppStream metadata. Valid permissive licenses include FSFAP, CC0-1.0 or MIT. Using one of the vetted permissive licenses is required to allow distributors to include the metadata in mixed data collections without the risk of license violations due to mixing incompatible licenses.We only support a limited set of licenses that went through legal review. Refer to <a href=\"https:\/\/www.freedesktop.org\/software\/appstream\/docs\/chap-Metadata.html#tag-metadata_license\">the specification documentation<\/a> for information on how to make '{{license}}' a valid expression, or consider replacing the license with one of the recognized licenses directly."
    },
    "metainfo-no-id": {
        "severity": "error",
        "text": "Could not determine an ID for the component in <code>{{fname}}<\/code>. The AppStream MetaInfo file likely lacks an <code>&lt;id\/&gt;<\/code> tag.<br\/>The identifier tag is essential for AppStream metadata, and must not be missing."
    },
    "metainfo-no-name": {
        "severity": "error",
        "text": "Component has no name specified. Ensure that the AppStream MetaInfo file or the .desktop file (if there is any) specify a component name."
    },
    "metainfo-no-summary": {
        "severity": "error",
        "text": "Component does not contain a short summary. Ensure that the components MetaInfo file has a <code>summary<\/code> tag, or that its .desktop file has a <code>Comment=<\/code> field set.<br\/>More information can be found in the <a href=\"http:\/\/standards.freedesktop.org\/desktop-entry-spec\/latest\/ar01s05.html\">Desktop Entry specification<\/a> and the <a href=\"https:\/\/www.freedesktop.org\/software\/appstream\/docs\/sect-Metadata-Application.html#tag-dapp-summary\">MetaInfo specification<\/a>."
    },
    "metainfo-parsing-error": {
        "severity": "error",
        "text": "Unable to parse AppStream MetaInfo file <code>{{fname}}<\/code>, the data is likely malformed.<br\/>Error: {{error}}"
    },
    "metainfo-releases-download-failed": {
        "severity": "warning",
        "text": "Unable to download release information from <code>{{url}}<\/code>. The error message was: {{msg}}."
    },
    "metainfo-releases-read-failed": {
        "severity": "error",
        "text": "Unable to read release information from <code>{{path}}<\/code>. The error message was: {{msg}}."
    },
    "metainfo-screenshot-but-no-media": {
        "severity": "warning",
        "text": "A screenshot has been found for this component, but apparently it does not have any images or videos defined. The screenshot entry has been ignored."
    },
    "metainfo-unknown-type": {
        "severity": "error",
        "text": "The component has an unknown type. Please make sure this component type is mentioned in the specification, and that the<code>type=<\/code> property of the component root-node in the MetaInfo XML file does not contain a spelling mistake."
    },
    "metainfo-validation-error": {
        "severity": "warning",
        "text": "Validation of the MetaInfo file failed: {{msg}}"
    },
    "missing-desktop-file": {
        "severity": "error",
        "text": "Found an AppStream MetaInfo XML file, but the associated .desktop file is missing. This often happens when the .desktop file is renamed, but the\n<code>&lt;launchable type=\"desktop-id\"\/&gt;<\/code> tag value of the AppStream MetaInfo file is not adapted as well, or if the MetaInfo file is located in a different package than the .desktop file.<br\/>\nPlease fix the packaging or work with upstream to resolve this issue.<br\/>\n<small>For older metadata, the desktop-id is inferred from the <code>&lt;id\/&gt;<\/code> tag. If the component metadata has no <code>launchable<\/code> tag and no\n<code>icon<\/code> tag of type <i>stock<\/i>, check if a .desktop file named after the component-ID is located in the same package.<\/small>\n"
    },
    "missing-launchable-desktop-file": {
        "severity": "warning",
        "text": "The MetaInfo file references a .desktop file with ID '{{desktop_id}}' in its <code>launchable<\/code> tag, but the file was not found in the same source tree. In order to be able to launch the software once it was installed, please place the MetaInfo file and its .desktop files in the same package."
    },
    "no-install-candidate": {
        "severity": "error",
        "text": "Component has no install candidate defined. A package must be associated with a package or bundle providing it."
    },
    "no-metainfo": {
        "severity": "warning",
        "text": "This software component is missing a <a href=\"https:\/\/freedesktop.org\/software\/appstream\/docs\/chap-Metadata.html#sect-Metadata-GenericComponent\">MetaInfo file<\/a> to provide metadata.<br\/>\nWe currently took some data from its desktop-entry file and the long description of the package it is located in.<br\/>\nThis has several disadvantages, like poor markup, too technical descriptions for users of software centers, different components having the same description, etc.<br\/>\nAdditionally, a lot of software with desktop-entry files should either not be installable and searchable via the software catalog (like desktop-specific settings applications) or be tagged accordingly via MetaInfo files.<br\/>\nPlease consider to either hide this desktop-entry file from AppStream by adding a <code>X-AppStream-Ignore=true<\/code> field to it, or to write a MetaInfo file for this component and send it upstream.<br\/>\nGenerating components from non-MetaInfo files is <b>deprecated<\/b>, if you do not add a MetaInfo file, \nthis software may vanish from the metadata catalog (and if it is a GUI application, no longer be visible in software centers) in a future distribution release.<br>\nYou can consult the <a href=\"http:\/\/freedesktop.org\/software\/appstream\/docs\/chap-Quickstart.html\">MetaInfo quickstart guides<\/a> for more information on how to write a MetaInfo file, \nor file a bug with the upstream author of this software component.\n"
    },
    "no-stock-icon": {
        "severity": "error",
        "text": "The component has no stock icon set, even though it requires one (or a `local` icon) to be valid."
    },
    "no-valid-category": {
        "severity": "error",
        "text": "This software component is no member of any valid category."
    },
    "os-without-icon": {
        "severity": "info",
        "text": "The component is an operating system, but no icon was found for it. Setting an icon would improve the look of this component in GUIs."
    },
    "pkg-empty-file": {
        "severity": "error",
        "text": "Could not extract file '{{fname}}' from package '{{pkg_fname}}'.\nIcon data was empty. The icon might be a symbolic link pointing at a file outside of this package.\nPlease do not do that and instead place the icons in their appropriate directories in <code>\/usr\/share\/icons\/hicolor\/<\/code>.\n"
    },
    "pkg-extract-error": {
        "severity": "error",
        "text": "Could not extract file '{{fname}}' from package '{{pkg_fname}}'. Error: {{error}}"
    },
    "screenshot-download-error": {
        "severity": "warning",
        "text": "Error while downloading screenshot from '{{url}}': {{error}}<br\/>This might be a temporary server issue, or the screenshot is no longer available."
    },
    "screenshot-image-too-big": {
        "severity": "warning",
        "text": "The image '{{fname}}' exceeds the maximum allowed file size of {{max_size}} (its size is {{size}}). Please create a smaller screenshot image."
    },
    "screenshot-no-thumbnails": {
        "severity": "info",
        "text": "No thumbnails have been generated for screenshot '{{url}}'.<br\/>This could mean that the original provided screenshot is too small to generate thumbnails from."
    },
    "screenshot-save-error": {
        "severity": "warning",
        "text": "Unable to store screenshot for '{{url}}': {{error}}"
    },
    "screenshot-video-audio-codec-unsupported": {
        "severity": "warning",
        "text": "The video '{{fname}}' contains an audio track using the '{{codec}}' codec. The only permitted audio codec is <a href=\"https:\/\/opus-codec.org\/\">Opus<\/a>."
    },
    "screenshot-video-check-failed": {
        "severity": "warning",
        "text": "Unable to inspect video file '{{fname}}'. This may have been caused by a configuration or network issue, or the supplied video file was faulty. The error message was: {{msg}}"
    },
    "screenshot-video-format-unsupported": {
        "severity": "warning",
        "text": "The video codec '{{codec}}' or container '{{container}}' of '{{fname}}' are not supported. Please encode the video as VP9 or AV1 using the WebM or Matroska container."
    },
    "screenshot-video-has-audio": {
        "severity": "info",
        "text": "The video '{{fname}}' contains an audio track. The audio may not be played by software centers, so ideally you should avoid using audio, or at least make the audio non-essential for understanding the screencast."
    },
    "screenshot-video-too-big": {
        "severity": "warning",
        "text": "The video '{{fname}}' exceeds the maximum allowed file size of {{max_size}} (its size is {{size}}). Please try to make a shorter screencast."
    },
    "translation-status-error": {
        "severity": "warning",
        "text": "Unable to read translation status data: {{msg}}"
    },
    "translations-not-found": {
        "severity": "warning",
        "text": "Unable to add languages information, even though a <code>translation<\/code> tag was present in the MetaInfo file. Please check that its value is set correctly, and all locale files are placed in the right directories (e.g. <code>\/usr\/share\/locale\/*\/LC_MESSAGES\/<\/code> for Gettext .mo files)."
    },
    "unit-read-error": {
        "severity": "error",
        "text": "Error while reading data from unit <code>{{name}}<\/code>: {{msg}}"
    },
    "web-app-without-icon": {
        "severity": "error",
        "text": "The component is a GUI web application, but it either has no icon set in its MetaInfo file, or we could not find a matching icon for this application."
    },
    "x-dev-testsuite-error": {
        "severity": "error",
        "text": "Dummy error hint for the testsuite. Var1: {{var1}}."
    },
    "x-dev-testsuite-info": {
        "severity": "info",
        "text": "Dummy info hint for the testsuite. Var1: {{var1}}."
    }
}
