@versatiles/style
    Preparing search index...

    Function sortDiagnostics

    • Diagnostics in a fixed order: most severe first, then by code, then by the option they concern.

      Specified rather than merely deterministic — two implementations that both "sort somehow" produce test diffs that disagree. Sorted once, at the end, so the order does not depend on which derivation happened to run first.

      Parameters

      • diagnostics: readonly (
            | {
                code: "input.notAStyle";
                data: { received: string };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "input.badOption";
                data: { cause: string };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "input.fetchFailed";
                data: { status: number; url: string };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "input.unreadable";
                data: { cause: string };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "schema.none";
                data: { vectorSources: number };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "source.schemaUnknown";
                data: { sourceId: string };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "schema.partial";
                data: { vectorSources: number };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "source.tilejsonUnavailable";
                data: { cause: string; sourceId: string; url: string };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "source.multiple";
                data: { sources: Record<string, string> };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "font.unavailable";
                data: { reason: "not-published"
                | "no-font-list"; requested: string[] };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "language.unavailable";
                data: { requested: string };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "projection.unsupported";
                data: { requested: string };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "icons.replaced";
                data: { sprite: unknown };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "color.conflict";
                data: {
                    chosen: string;
                    key: string;
                    observed: { color: string; layers: string[] }[];
                    rule: "topmost";
                };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "color.collapsed";
                data: {
                    chosen: string;
                    key: string;
                    observed: { color: string; feature: string; layers: string[] }[];
                };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "font.conflict";
                data: {
                    chosen: string;
                    observed: { count: number; font: string }[];
                    topic: string;
                };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "labelStyle.conflict";
                data: {
                    chosen: string
                    | number;
                    observed: { count: number; value: string | number }[];
                    property: string;
                    topic: string;
                };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "icon.conflict";
                data: {
                    chosen: number;
                    observed: { probe: string; ratio: number }[];
                    option: "scale" | "spacing";
                };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "language.conflict";
                data: {
                    chosen?: string;
                    observed: { language: string; probes: string[] }[];
                };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "theme.ambiguous";
                data: {
                    chosen: string;
                    cost: number;
                    margin: number;
                    runnerUp: string;
                    runnerUpCost: number;
                };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "color.lowConfidence";
                data: {
                    distance: number;
                    estimate: string;
                    evidenceShare: number;
                    key: string;
                    paletteColor: string;
                    residual: number;
                    threshold: number;
                };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "color.unobserved";
                data: { count: number; keys: string[]; total: number };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
            | {
                code: "layer.unread";
                data: { count: number };
                message: string;
                optionPath?: string;
                origin?: DiagnosticOrigin;
                severity: Severity;
            }
        )[]

      Returns (
          | {
              code: "input.notAStyle";
              data: { received: string };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "input.badOption";
              data: { cause: string };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "input.fetchFailed";
              data: { status: number; url: string };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "input.unreadable";
              data: { cause: string };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "schema.none";
              data: { vectorSources: number };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "source.schemaUnknown";
              data: { sourceId: string };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "schema.partial";
              data: { vectorSources: number };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "source.tilejsonUnavailable";
              data: { cause: string; sourceId: string; url: string };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "source.multiple";
              data: { sources: Record<string, string> };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "font.unavailable";
              data: { reason: "not-published"
              | "no-font-list"; requested: string[] };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "language.unavailable";
              data: { requested: string };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "projection.unsupported";
              data: { requested: string };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "icons.replaced";
              data: { sprite: unknown };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "color.conflict";
              data: {
                  chosen: string;
                  key: string;
                  observed: { color: string; layers: string[] }[];
                  rule: "topmost";
              };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "color.collapsed";
              data: {
                  chosen: string;
                  key: string;
                  observed: { color: string; feature: string; layers: string[] }[];
              };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "font.conflict";
              data: {
                  chosen: string;
                  observed: { count: number; font: string }[];
                  topic: string;
              };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "labelStyle.conflict";
              data: {
                  chosen: string
                  | number;
                  observed: { count: number; value: string | number }[];
                  property: string;
                  topic: string;
              };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "icon.conflict";
              data: {
                  chosen: number;
                  observed: { probe: string; ratio: number }[];
                  option: "scale" | "spacing";
              };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "language.conflict";
              data: {
                  chosen?: string;
                  observed: { language: string; probes: string[] }[];
              };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "theme.ambiguous";
              data: {
                  chosen: string;
                  cost: number;
                  margin: number;
                  runnerUp: string;
                  runnerUpCost: number;
              };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "color.lowConfidence";
              data: {
                  distance: number;
                  estimate: string;
                  evidenceShare: number;
                  key: string;
                  paletteColor: string;
                  residual: number;
                  threshold: number;
              };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "color.unobserved";
              data: { count: number; keys: string[]; total: number };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
          | {
              code: "layer.unread";
              data: { count: number };
              message: string;
              optionPath?: string;
              origin?: DiagnosticOrigin;
              severity: Severity;
          }
      )[]

      • {
            code: "input.notAStyle";
            data: { received: string };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "input.notAStyle"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { received: string }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "input.badOption";
            data: { cause: string };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "input.badOption"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { cause: string }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "input.fetchFailed";
            data: { status: number; url: string };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "input.fetchFailed"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { status: number; url: string }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "input.unreadable";
            data: { cause: string };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "input.unreadable"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { cause: string }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "schema.none";
            data: { vectorSources: number };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "schema.none"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { vectorSources: number }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "source.schemaUnknown";
            data: { sourceId: string };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "source.schemaUnknown"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { sourceId: string }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "schema.partial";
            data: { vectorSources: number };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "schema.partial"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { vectorSources: number }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "source.tilejsonUnavailable";
            data: { cause: string; sourceId: string; url: string };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "source.tilejsonUnavailable"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { cause: string; sourceId: string; url: string }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "source.multiple";
            data: { sources: Record<string, string> };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "source.multiple"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { sources: Record<string, string> }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "font.unavailable";
            data: { reason: "not-published" | "no-font-list"; requested: string[] };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "font.unavailable"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { reason: "not-published" | "no-font-list"; requested: string[] }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "language.unavailable";
            data: { requested: string };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "language.unavailable"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { requested: string }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "projection.unsupported";
            data: { requested: string };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "projection.unsupported"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { requested: string }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "icons.replaced";
            data: { sprite: unknown };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "icons.replaced"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { sprite: unknown }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "color.conflict";
            data: {
                chosen: string;
                key: string;
                observed: { color: string; layers: string[] }[];
                rule: "topmost";
            };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "color.conflict"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: {
              chosen: string;
              key: string;
              observed: { color: string; layers: string[] }[];
              rule: "topmost";
          }

          Plain JSON — a report may cross a worker boundary or be stored.

          • chosen: string
          • key: string
          • observed: { color: string; layers: string[] }[]
          • rule: "topmost"

            How the winner was picked, as a rule rather than a sentence.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "color.collapsed";
            data: {
                chosen: string;
                key: string;
                observed: { color: string; feature: string; layers: string[] }[];
            };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "color.collapsed"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: {
              chosen: string;
              key: string;
              observed: { color: string; feature: string; layers: string[] }[];
          }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "font.conflict";
            data: {
                chosen: string;
                observed: { count: number; font: string }[];
                topic: string;
            };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "font.conflict"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { chosen: string; observed: { count: number; font: string }[]; topic: string }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "labelStyle.conflict";
            data: {
                chosen: string | number;
                observed: { count: number; value: string | number }[];
                property: string;
                topic: string;
            };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "labelStyle.conflict"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: {
              chosen: string | number;
              observed: { count: number; value: string | number }[];
              property: string;
              topic: string;
          }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "icon.conflict";
            data: {
                chosen: number;
                observed: { probe: string; ratio: number }[];
                option: "scale" | "spacing";
            };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "icon.conflict"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: {
              chosen: number;
              observed: { probe: string; ratio: number }[];
              option: "scale" | "spacing";
          }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "language.conflict";
            data: {
                chosen?: string;
                observed: { language: string; probes: string[] }[];
            };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "language.conflict"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { chosen?: string; observed: { language: string; probes: string[] }[] }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "theme.ambiguous";
            data: {
                chosen: string;
                cost: number;
                margin: number;
                runnerUp: string;
                runnerUpCost: number;
            };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "theme.ambiguous"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: {
              chosen: string;
              cost: number;
              margin: number;
              runnerUp: string;
              runnerUpCost: number;
          }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "color.lowConfidence";
            data: {
                distance: number;
                estimate: string;
                evidenceShare: number;
                key: string;
                paletteColor: string;
                residual: number;
                threshold: number;
            };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "color.lowConfidence"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: {
              distance: number;
              estimate: string;
              evidenceShare: number;
              key: string;
              paletteColor: string;
              residual: number;
              threshold: number;
          }

          Plain JSON — a report may cross a worker boundary or be stored.

          • distance: number

            How far the estimate sat from the palette, and how far it had to sit to be taken.

          • estimate: string
          • evidenceShare: number

            0..1 — how strongly the readings constrained this key.

          • key: string
          • paletteColor: string
          • residual: number
          • threshold: number
        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "color.unobserved";
            data: { count: number; keys: string[]; total: number };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "color.unobserved"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { count: number; keys: string[]; total: number }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity
      • {
            code: "layer.unread";
            data: { count: number };
            message: string;
            optionPath?: string;
            origin?: DiagnosticOrigin;
            severity: Severity;
        }
        • Readonlycode: "layer.unread"

          Stable and machine-readable. What to switch on, filter by, count and translate.

        • Readonlydata: { count: number }

          Plain JSON — a report may cross a worker boundary or be stored.

        • Readonlymessage: string

          Plain English, so a consumer that only prints strings still works.

        • Optional ReadonlyoptionPath?: string

          The setting this concerns, in the vocabulary of the output options.

        • Optional Readonlyorigin?: DiagnosticOrigin
        • Readonlyseverity: Severity