{
"$defs": {
"JsonDiagnosticDetail": {
"description": "One detail item in a [`JsonDiagnostic`].",
"properties": {
"content": {
"type": "string"
},
"end_column": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"end_line": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"kind": {
"type": "string"
},
"start_column": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"start_line": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
}
},
"required": [
"kind",
"content"
],
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "A diagnostic message in transport-friendly JSON form.\n\nLine and column numbers are 1-based to match Monaco.\n\n## `$schema` field (bd-iey8o)\n\nEach instance carries a `$schema` field pointing at\n[`JsonDiagnostic::SCHEMA_URL`] so that consumers reading the\ndiagnostic over the wire (CLI stderr, WASM bridge, preview API)\ncan discover the JSON Schema describing this shape without prior\nknowledge. The field is a static-string field with a default\nmatching the const URL — the only place `JsonDiagnostic` is\nconstructed (`diagnostic_to_json`) sets it, and downstream\ntransforms like `with_source_file` preserve it.",
"properties": {
"$schema": {
"description": "JSON Schema URI describing this object's shape. Const value\nis [`JsonDiagnostic::SCHEMA_URL`]; included on the wire so\nconsumers can self-discover the contract.",
"type": "string"
},
"code": {
"type": [
"string",
"null"
]
},
"details": {
"items": {
"$ref": "#/$defs/JsonDiagnosticDetail"
},
"type": "array"
},
"end_column": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"end_line": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"hints": {
"items": {
"type": "string"
},
"type": "array"
},
"kind": {
"type": "string"
},
"problem": {
"type": [
"string",
"null"
]
},
"rendered": {
"description": "Pre-rendered ariadne source-context snippet (bd-352bh).\nPopulated when the diagnostic carries a `location` and the\nconverting site has a [`SourceContext`] to draw from\n(i.e. always, in [`diagnostic_to_json`]). Same text the\n`q2 render` CLI prints to stdout — ANSI-coded; strip on the\nJS side for browser display. Consumers can render this\nverbatim in a `<pre>` block for the rich source-context\nview, or ignore it and fall back to the structured fields\nfor a compact summary. `None` for unlocated diagnostics\n(rare but possible for project-level errors with no span).",
"type": [
"string",
"null"
]
},
"source_file": {
"description": "Source-file attribution for project-scoped diagnostics\n(bd-rqba). When the project pipeline emits a warning that\noriginates in *another* file (e.g., a sidebar entry that\nreferences a sibling page), this field carries that\nsibling's path so the in-app overlay can label the warning\nwith its source instead of free-floating text. `None` for\npage-local diagnostics whose location already pins them\nto the active page's source.",
"type": [
"string",
"null"
]
},
"start_column": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"start_line": {
"format": "uint32",
"minimum": 0,
"type": [
"integer",
"null"
]
},
"title": {
"type": "string"
}
},
"required": [
"$schema",
"kind",
"title",
"hints",
"details"
],
"title": "JsonDiagnostic",
"type": "object"
}