changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "limitation": {
+ "description": "What this scan cannot see, in one paragraph. Read it before acting on the uncertain findings.",
+ "type": "string"
+ },
+ "summary": {
+ "additionalProperties": false,
+ "description": "What the scan covered and what it found. This is what comes back when the full result is diverted to a file.",
+ "properties": {
+ "declaredCount": {
+ "description": "Unresolvable keys covered by a declaredNamespaces entry — defined by contract, never written.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "filesDeclined": {
+ "description": "Files a syntax frontend declined; pattern matching read them instead.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "filesScanned": {
+ "description": "Source files read.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "ignoredCount": {
+ "description": "Unresolvable keys excluded by an orphanScan ignorePattern.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "locale": {
+ "description": "Locale the key definitions were resolved in.",
+ "type": "string"
+ },
+ "message": {
+ "description": "One sentence stating what the scan found.",
+ "type": "string"
+ },
+ "searchedLayersByApp": {
+ "additionalProperties": {
+ "description": "Layers searched for that unit's key usages.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "description": "What \"undefined\" meant per scan unit: a key defined only in a layer the unit does not consume is still undefined for it.",
+ "propertyNames": {
+ "description": "Scan unit name.",
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "uncertainCount": {
+ "description": "Findings static extraction could not verify.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "undefinedCount": {
+ "description": "Keys that render raw at runtime, which is the counter the always-on gate reads. After a write run this counts the ones still undefined.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "usedKeysChecked": {
+ "description": "Distinct statically referenced keys across every scan unit.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "writtenCount": {
+ "description": "Keys extracted into a locale file. Present only alongside written.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "usedKeysChecked",
+ "undefinedCount",
+ "uncertainCount",
+ "ignoredCount",
+ "declaredCount",
+ "filesScanned",
+ "filesDeclined",
+ "locale",
+ "searchedLayersByApp",
+ "message"
+ ],
+ "type": "object"
+ },
+ "uncertainKeys": {
+ "description": "Findings static extraction cannot verify. Never written, never counted by the gate.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "app": {
+ "description": "Scan unit the usage lives in — an app name, a layer name, or \"project-root\".",
+ "type": "string"
+ },
+ "key": {
+ "description": "The key source code calls and no consumed layer defines.",
+ "type": "string"
+ },
+ "reason": {
+ "description": "Why this is not a hard finding — a dynamically built key, an existence check, a vendor namespace.",
+ "type": "string"
+ },
+ "searchedLayers": {
+ "description": "Layers that unit can resolve keys from. All were searched.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "usages": {
+ "description": "Every call site of the key.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "file": {
+ "description": "Source file, relative to the project directory.",
+ "type": "string"
+ },
+ "line": {
+ "description": "1-based line number of the reference.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "file",
+ "line"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "key",
+ "app",
+ "searchedLayers",
+ "usages",
+ "reason"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "undefinedKeys": {
+ "description": "Hard findings: keys that render raw at runtime. A write run leaves them listed, because the call sites are what a reader has to visit either way.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "app": {
+ "description": "Scan unit the usage lives in — an app name, a layer name, or \"project-root\".",
+ "type": "string"
+ },
+ "key": {
+ "description": "The key source code calls and no consumed layer defines.",
+ "type": "string"
+ },
+ "searchedLayers": {
+ "description": "Layers that unit can resolve keys from. All were searched.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "usages": {
+ "description": "Every call site of the key.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "file": {
+ "description": "Source file, relative to the project directory.",
+ "type": "string"
+ },
+ "line": {
+ "description": "1-based line number of the reference.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "file",
+ "line"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "key",
+ "app",
+ "searchedLayers",
+ "usages"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "written": {
+ "additionalProperties": false,
+ "description": "Present only when write was asked for and the scan found something to write.",
+ "properties": {
+ "keys": {
+ "description": "The keys that reached the file, alphabetically.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "layer": {
+ "description": "Layer the keys were added to.",
+ "type": "string"
+ },
+ "locale": {
+ "description": "The project default locale — the only one written, and the source every other is filled from.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "layer",
+ "locale",
+ "keys"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "undefinedKeys",
+ "uncertainKeys",
+ "limitation",
+ "summary"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "reportFile": {
+ "description": "Absolute path the full JSON result was written to. Read the file for the findings; the summary below is all that came back.",
+ "type": "string"
+ },
+ "summary": {
+ "additionalProperties": false,
+ "description": "The counts from the full result, so a caller can act on them without reading the file.",
+ "properties": {
+ "declaredCount": {
+ "description": "Unresolvable keys covered by a declaredNamespaces entry — defined by contract, never written.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "filesDeclined": {
+ "description": "Files a syntax frontend declined; pattern matching read them instead.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "filesScanned": {
+ "description": "Source files read.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "ignoredCount": {
+ "description": "Unresolvable keys excluded by an orphanScan ignorePattern.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "locale": {
+ "description": "Locale the key definitions were resolved in.",
+ "type": "string"
+ },
+ "message": {
+ "description": "One sentence stating what the scan found.",
+ "type": "string"
+ },
+ "searchedLayersByApp": {
+ "additionalProperties": {
+ "description": "Layers searched for that unit's key usages.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "description": "What \"undefined\" meant per scan unit: a key defined only in a layer the unit does not consume is still undefined for it.",
+ "propertyNames": {
+ "description": "Scan unit name.",
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "uncertainCount": {
+ "description": "Findings static extraction could not verify.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "undefinedCount": {
+ "description": "Keys that render raw at runtime, which is the counter the always-on gate reads. After a write run this counts the ones still undefined.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "usedKeysChecked": {
+ "description": "Distinct statically referenced keys across every scan unit.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "writtenCount": {
+ "description": "Keys extracted into a locale file. Present only alongside written.",
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "usedKeysChecked",
+ "undefinedCount",
+ "uncertainCount",
+ "ignoredCount",
+ "declaredCount",
+ "filesScanned",
+ "filesDeclined",
+ "locale",
+ "searchedLayersByApp",
+ "message"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "reportFile",
+ "summary"
+ ],
+ "type": "object"
+ }
+ ],
+ "type": "object"
+}