{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "AnalysisProfile", "description": "Canonical Analysis Profile document whose exact JSON bytes are hashed.", "type": "object", "properties": { "analysis_adapter_version": { "description": "Analysis adapter implementation version.", "type": "integer", "format": "uint32", "minimum": 0 }, "analyzer_options": { "description": "Fully resolved, bytewise-name-sorted analyzer options.", "type": "array", "items": { "$ref": "#/$defs/ProfileOption" } }, "ghidra_version": { "description": "Exact Ghidra version.", "type": "string" }, "java_version": { "description": "Exact Java major version.", "type": "string" }, "loader_options": { "description": "Fully resolved, bytewise-name-sorted loader options.", "type": "array", "items": { "$ref": "#/$defs/ProfileOption" } }, "max_cpu": { "description": "Maximum analysis CPU count.", "$ref": "#/$defs/PositiveU64" }, "profile_version": { "type": "integer", "const": 1 }, "target": { "description": "Analysis-affecting Target Specification.", "$ref": "#/$defs/ProfileTarget" } }, "additionalProperties": false, "required": [ "profile_version", "ghidra_version", "java_version", "analysis_adapter_version", "target", "loader_options", "analyzer_options", "max_cpu" ], "$defs": { "PositiveU64": { "description": "A validated positive integer accepted by resource-limit flags.", "type": "integer", "format": "uint64", "minimum": 1 }, "ProfileOption": { "description": "Fully resolved typed Ghidra option.", "type": "object", "properties": { "name": { "description": "Canonical option name.", "type": "string" }, "value": { "description": "Typed canonical value without floating-point data.", "$ref": "#/$defs/ProfileOptionValue" } }, "additionalProperties": false, "required": [ "name", "value" ] }, "ProfileOptionValue": { "description": "Values permitted in canonical profile options.", "oneOf": [ { "description": "Boolean option.", "type": "object", "properties": { "type": { "type": "string", "const": "boolean" }, "value": { "type": "boolean" } }, "required": [ "type", "value" ] }, { "description": "Signed integer option.", "type": "object", "properties": { "type": { "type": "string", "const": "integer" }, "value": { "type": "integer", "format": "int64" } }, "required": [ "type", "value" ] }, { "description": "Exact UTF-8 string option.", "type": "object", "properties": { "type": { "type": "string", "const": "string" }, "value": { "type": "string" } }, "required": [ "type", "value" ] } ] }, "ProfileTarget": { "description": "Target fields which affect Analysis identity.", "type": "object", "properties": { "compiler_specification": { "description": "Exact compiler-specification identifier.", "type": "string" }, "loader": { "description": "Exact loader identifier.", "type": "string" }, "processor_language": { "description": "Exact processor-language identifier.", "type": "string" } }, "additionalProperties": false, "required": [ "loader", "processor_language", "compiler_specification" ] } } }