{
  "llm_version": "v0.46.6",
  "profiles": {
    "hooks": [
      {
        "id": "hooks.Def",
        "source": "cmd/sonny/hooks/hooks.go",
        "line": 79,
        "expression": "struct",
        "fields": [
          {
            "name": "id",
            "go_type": "string",
            "omit_empty": false,
            "line": 81
          },
          {
            "name": "events",
            "go_type": "[]string",
            "omit_empty": false,
            "line": 83
          },
          {
            "name": "match",
            "go_type": "string",
            "omit_empty": true,
            "line": 88
          },
          {
            "name": "command",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 91
          },
          {
            "name": "inject_output",
            "go_type": "bool",
            "omit_empty": true,
            "line": 94
          },
          {
            "name": "inject",
            "go_type": "string",
            "omit_empty": true,
            "line": 96
          },
          {
            "name": "goal",
            "go_type": "string",
            "omit_empty": true,
            "line": 98
          },
          {
            "name": "timeout_seconds",
            "go_type": "int",
            "omit_empty": true,
            "line": 100
          }
        ]
      },
      {
        "id": "hooks.File",
        "source": "cmd/sonny/hooks/schema.go",
        "line": 53,
        "expression": "struct",
        "fields": [
          {
            "name": "schema_version",
            "go_type": "string",
            "omit_empty": false,
            "line": 54
          },
          {
            "name": "hooks",
            "go_type": "[]Def",
            "omit_empty": false,
            "line": 55,
            "references": [
              "hooks.Def"
            ]
          }
        ]
      }
    ],
    "mcp_sidecar": [
      {
        "id": "llm_schema.MCPAuthConfig",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 272,
        "expression": "struct",
        "fields": [
          {
            "name": "type",
            "go_type": "MCPAuthType",
            "omit_empty": false,
            "line": 274,
            "references": [
              "llm_schema.MCPAuthType"
            ]
          },
          {
            "name": "api_key",
            "go_type": "string",
            "omit_empty": true,
            "line": 277
          },
          {
            "name": "api_key_header",
            "go_type": "string",
            "omit_empty": true,
            "line": 280
          },
          {
            "name": "api_key_env_var",
            "go_type": "string",
            "omit_empty": true,
            "line": 283
          },
          {
            "name": "token",
            "go_type": "string",
            "omit_empty": true,
            "line": 286
          },
          {
            "name": "username",
            "go_type": "string",
            "omit_empty": true,
            "line": 289
          },
          {
            "name": "password",
            "go_type": "string",
            "omit_empty": true,
            "line": 292
          }
        ]
      },
      {
        "id": "llm_schema.MCPAuthType",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 71,
        "expression": "string"
      },
      {
        "id": "llm_schema.MCPEgressPolicy",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 394,
        "expression": "struct",
        "fields": [
          {
            "name": "allow_hosts",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 405
          },
          {
            "name": "allow_ports",
            "go_type": "[]int",
            "omit_empty": true,
            "line": 409
          },
          {
            "name": "deny_private_networks",
            "go_type": "bool",
            "omit_empty": true,
            "line": 420
          },
          {
            "name": "allow_private_networks",
            "go_type": "bool",
            "omit_empty": true,
            "line": 426
          },
          {
            "name": "allow_plain_http",
            "go_type": "bool",
            "omit_empty": true,
            "line": 435
          },
          {
            "name": "proxy_url",
            "go_type": "string",
            "omit_empty": true,
            "line": 450
          }
        ]
      },
      {
        "id": "llm_schema.MCPServerType",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 20,
        "expression": "string"
      },
      {
        "id": "mcpconfig.rawConfig",
        "source": "cmd/sonny/mcpconfig/load.go",
        "line": 60,
        "expression": "struct",
        "fields": [
          {
            "name": "servers",
            "go_type": "[]rawServer",
            "omit_empty": false,
            "line": 61,
            "references": [
              "mcpconfig.rawServer"
            ]
          }
        ]
      },
      {
        "id": "mcpconfig.rawServer",
        "source": "cmd/sonny/mcpconfig/load.go",
        "line": 64,
        "expression": "struct",
        "fields": [
          {
            "name": "name",
            "go_type": "string",
            "omit_empty": false,
            "line": 65
          },
          {
            "name": "type",
            "go_type": "llmschema.MCPServerType",
            "omit_empty": false,
            "line": 66,
            "references": [
              "llm_schema.MCPServerType"
            ]
          },
          {
            "name": "command",
            "go_type": "string",
            "omit_empty": true,
            "line": 67
          },
          {
            "name": "args",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 68
          },
          {
            "name": "url",
            "go_type": "string",
            "omit_empty": true,
            "line": 69
          },
          {
            "name": "work_dir",
            "go_type": "string",
            "omit_empty": true,
            "line": 70
          },
          {
            "name": "env",
            "go_type": "map[string]string",
            "omit_empty": true,
            "line": 71
          },
          {
            "name": "env_allowlist",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 76
          },
          {
            "name": "env_inherit_all",
            "go_type": "bool",
            "omit_empty": true,
            "line": 80
          },
          {
            "name": "auth",
            "go_type": "llmschema.MCPAuthConfig",
            "omit_empty": true,
            "line": 81,
            "references": [
              "llm_schema.MCPAuthConfig"
            ]
          },
          {
            "name": "enabled",
            "go_type": "*bool",
            "omit_empty": true,
            "line": 82
          },
          {
            "name": "auto_connect",
            "go_type": "*bool",
            "omit_empty": true,
            "line": 83
          },
          {
            "name": "timeout",
            "go_type": "time.Duration",
            "omit_empty": true,
            "line": 85
          },
          {
            "name": "egress",
            "go_type": "*llmschema.MCPEgressPolicy",
            "omit_empty": true,
            "line": 92,
            "references": [
              "llm_schema.MCPEgressPolicy"
            ]
          },
          {
            "name": "integration",
            "go_type": "string",
            "omit_empty": true,
            "line": 99
          },
          {
            "name": "metadata",
            "go_type": "map[string]string",
            "omit_empty": true,
            "line": 102
          },
          {
            "name": "from_pack",
            "go_type": "string",
            "omit_empty": true,
            "line": 108
          }
        ]
      }
    ],
    "models": [
      {
        "id": "category.CanonicalModel",
        "source": "cmd/sonny/category/source.go",
        "line": 419,
        "expression": "struct",
        "fields": [
          {
            "name": "id",
            "go_type": "string",
            "omit_empty": false,
            "line": 420
          },
          {
            "name": "family",
            "go_type": "string",
            "omit_empty": true,
            "line": 421
          },
          {
            "name": "release",
            "go_type": "string",
            "omit_empty": true,
            "line": 422
          },
          {
            "name": "variant",
            "go_type": "string",
            "omit_empty": true,
            "line": 423
          },
          {
            "name": "context_window_tokens",
            "go_type": "int",
            "omit_empty": true,
            "line": 424
          },
          {
            "name": "params",
            "go_type": "map[string]string",
            "omit_empty": true,
            "line": 425
          },
          {
            "name": "price",
            "go_type": "*Price",
            "omit_empty": true,
            "line": 427,
            "references": [
              "category.Price"
            ]
          },
          {
            "name": "categories",
            "go_type": "map[string]CategoryFit",
            "omit_empty": true,
            "line": 428,
            "references": [
              "category.CategoryFit"
            ]
          }
        ]
      },
      {
        "id": "category.Catalog",
        "source": "cmd/sonny/category/category.go",
        "line": 80,
        "expression": "struct",
        "fields": [
          {
            "name": "version",
            "go_type": "int",
            "omit_empty": false,
            "line": 81
          },
          {
            "name": "categories",
            "go_type": "map[string]Category",
            "omit_empty": false,
            "line": 85,
            "references": [
              "category.Category"
            ]
          },
          {
            "name": "routing",
            "go_type": "Routing",
            "omit_empty": true,
            "line": 88,
            "references": [
              "category.Routing"
            ]
          },
          {
            "name": "sources",
            "go_type": "[]Source",
            "omit_empty": true,
            "line": 89,
            "references": [
              "category.Source"
            ]
          },
          {
            "name": "model_policy",
            "go_type": "ModelPolicy",
            "omit_empty": true,
            "line": 90,
            "references": [
              "category.ModelPolicy"
            ]
          },
          {
            "name": "models",
            "go_type": "[]CanonicalModel",
            "omit_empty": true,
            "line": 106,
            "references": [
              "category.CanonicalModel"
            ]
          }
        ]
      },
      {
        "id": "category.Category",
        "source": "cmd/sonny/category/category.go",
        "line": 50,
        "expression": "struct",
        "fields": [
          {
            "name": "uri",
            "go_type": "string",
            "omit_empty": false,
            "line": 51
          },
          {
            "name": "description",
            "go_type": "string",
            "omit_empty": true,
            "line": 52
          }
        ]
      },
      {
        "id": "category.CategoryFit",
        "source": "cmd/sonny/category/source.go",
        "line": 207,
        "expression": "struct",
        "fields": [
          {
            "name": "fitness",
            "go_type": "float64",
            "omit_empty": false,
            "line": 208
          },
          {
            "name": "settings",
            "go_type": "map[string]string",
            "omit_empty": true,
            "line": 209
          },
          {
            "name": "tuning_ref",
            "go_type": "string",
            "omit_empty": true,
            "line": 210
          },
          {
            "name": "evidence",
            "go_type": "*FitnessEvidence",
            "omit_empty": true,
            "line": 211,
            "references": [
              "category.FitnessEvidence"
            ]
          }
        ]
      },
      {
        "id": "category.FitnessEvidence",
        "source": "cmd/sonny/category/source.go",
        "line": 138,
        "expression": "struct",
        "fields": [
          {
            "name": "samples",
            "go_type": "int",
            "omit_empty": true,
            "line": 139
          },
          {
            "name": "evaluator",
            "go_type": "string",
            "omit_empty": true,
            "line": 140
          },
          {
            "name": "digest",
            "go_type": "string",
            "omit_empty": true,
            "line": 141
          },
          {
            "name": "observed_at",
            "go_type": "time.Time",
            "omit_empty": true,
            "line": 142
          }
        ]
      },
      {
        "id": "category.ModelPolicy",
        "source": "cmd/sonny/category/model_policy.go",
        "line": 34,
        "expression": "struct",
        "fields": [
          {
            "name": "blocked",
            "go_type": "ModelPolicySelectors",
            "omit_empty": true,
            "line": 35,
            "references": [
              "category.ModelPolicySelectors"
            ]
          }
        ]
      },
      {
        "id": "category.ModelPolicySelectors",
        "source": "cmd/sonny/category/model_policy.go",
        "line": 42,
        "expression": "struct",
        "fields": [
          {
            "name": "sources",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 43
          },
          {
            "name": "providers",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 44
          },
          {
            "name": "classes",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 45
          }
        ]
      },
      {
        "id": "category.Price",
        "source": "cmd/sonny/category/source.go",
        "line": 117,
        "expression": "struct",
        "fields": [
          {
            "name": "input_per_mtok",
            "go_type": "float64",
            "omit_empty": false,
            "line": 118
          },
          {
            "name": "output_per_mtok",
            "go_type": "float64",
            "omit_empty": false,
            "line": 119
          },
          {
            "name": "cache_read_per_mtok",
            "go_type": "float64",
            "omit_empty": true,
            "line": 120
          },
          {
            "name": "cache_write_per_mtok",
            "go_type": "float64",
            "omit_empty": true,
            "line": 121
          }
        ]
      },
      {
        "id": "category.Revival",
        "source": "cmd/sonny/category/source.go",
        "line": 81,
        "expression": "struct",
        "fields": [
          {
            "name": "initial_backoff",
            "go_type": "time.Duration",
            "omit_empty": true,
            "line": 82
          },
          {
            "name": "max_backoff",
            "go_type": "time.Duration",
            "omit_empty": true,
            "line": 83
          },
          {
            "name": "penalty_half_life",
            "go_type": "time.Duration",
            "omit_empty": true,
            "line": 84
          },
          {
            "name": "probe_timeout",
            "go_type": "time.Duration",
            "omit_empty": true,
            "line": 85
          }
        ]
      },
      {
        "id": "category.Routing",
        "source": "cmd/sonny/category/source.go",
        "line": 67,
        "expression": "struct",
        "fields": [
          {
            "name": "policy",
            "go_type": "string",
            "omit_empty": true,
            "line": 68
          },
          {
            "name": "price_weight",
            "go_type": "float64",
            "omit_empty": true,
            "line": 72
          },
          {
            "name": "revival",
            "go_type": "Revival",
            "omit_empty": true,
            "line": 75,
            "references": [
              "category.Revival"
            ]
          }
        ]
      },
      {
        "id": "category.SecretRef",
        "source": "cmd/sonny/category/source.go",
        "line": 471,
        "expression": "struct",
        "fields": [
          {
            "name": "mount",
            "go_type": "string",
            "omit_empty": true,
            "line": 472
          },
          {
            "name": "path",
            "go_type": "string",
            "omit_empty": true,
            "line": 473
          },
          {
            "name": "field",
            "go_type": "string",
            "omit_empty": true,
            "line": 474
          }
        ]
      },
      {
        "id": "category.Source",
        "source": "cmd/sonny/category/source.go",
        "line": 434,
        "expression": "struct",
        "fields": [
          {
            "name": "id",
            "go_type": "string",
            "omit_empty": false,
            "line": 435
          },
          {
            "name": "scheme",
            "go_type": "string",
            "omit_empty": false,
            "line": 436
          },
          {
            "name": "env_prefix",
            "go_type": "string",
            "omit_empty": true,
            "line": 441
          },
          {
            "name": "base_url",
            "go_type": "string",
            "omit_empty": true,
            "line": 444
          },
          {
            "name": "api_key_env",
            "go_type": "string",
            "omit_empty": true,
            "line": 447
          },
          {
            "name": "secret_ref",
            "go_type": "*SecretRef",
            "omit_empty": true,
            "line": 452,
            "references": [
              "category.SecretRef"
            ]
          },
          {
            "name": "pricing_url",
            "go_type": "string",
            "omit_empty": true,
            "line": 455
          },
          {
            "name": "pricing_format",
            "go_type": "string",
            "omit_empty": true,
            "line": 456
          },
          {
            "name": "prompt_cache_key",
            "go_type": "bool",
            "omit_empty": true,
            "line": 463
          },
          {
            "name": "models",
            "go_type": "[]SourceModel",
            "omit_empty": false,
            "line": 464,
            "references": [
              "category.SourceModel"
            ]
          }
        ]
      },
      {
        "id": "category.SourceModel",
        "source": "cmd/sonny/category/source.go",
        "line": 258,
        "expression": "struct",
        "fields": [
          {
            "name": "model",
            "go_type": "string",
            "omit_empty": false,
            "line": 259
          },
          {
            "name": "provider",
            "go_type": "string",
            "omit_empty": true,
            "line": 263
          },
          {
            "name": "classes",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 267
          },
          {
            "name": "enabled",
            "go_type": "*bool",
            "omit_empty": true,
            "line": 274
          },
          {
            "name": "ref",
            "go_type": "string",
            "omit_empty": true,
            "line": 282
          },
          {
            "name": "api_model",
            "go_type": "string",
            "omit_empty": true,
            "line": 286
          },
          {
            "name": "aliases",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 290
          },
          {
            "name": "context_window_tokens",
            "go_type": "int",
            "omit_empty": true,
            "line": 294
          },
          {
            "name": "params",
            "go_type": "map[string]string",
            "omit_empty": true,
            "line": 297
          },
          {
            "name": "price",
            "go_type": "*Price",
            "omit_empty": true,
            "line": 300,
            "references": [
              "category.Price"
            ]
          },
          {
            "name": "categories",
            "go_type": "map[string]CategoryFit",
            "omit_empty": false,
            "line": 301,
            "references": [
              "category.CategoryFit"
            ]
          },
          {
            "name": "modalities",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 306
          },
          {
            "name": "tools_with_reasoning",
            "go_type": "ToolsWithReasoning",
            "omit_empty": true,
            "line": 312,
            "references": [
              "category.ToolsWithReasoning"
            ]
          }
        ]
      },
      {
        "id": "category.ToolsWithReasoning",
        "source": "cmd/sonny/category/tools_reasoning.go",
        "line": 16,
        "expression": "string"
      }
    ],
    "recipe_inline_mcp": [
      {
        "id": "llm_schema.MCPAuthConfig",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 272,
        "expression": "struct",
        "fields": [
          {
            "name": "type",
            "go_type": "MCPAuthType",
            "omit_empty": false,
            "line": 274,
            "references": [
              "llm_schema.MCPAuthType"
            ]
          },
          {
            "name": "api_key",
            "go_type": "string",
            "omit_empty": true,
            "line": 277
          },
          {
            "name": "api_key_header",
            "go_type": "string",
            "omit_empty": true,
            "line": 280
          },
          {
            "name": "api_key_env_var",
            "go_type": "string",
            "omit_empty": true,
            "line": 283
          },
          {
            "name": "token",
            "go_type": "string",
            "omit_empty": true,
            "line": 286
          },
          {
            "name": "username",
            "go_type": "string",
            "omit_empty": true,
            "line": 289
          },
          {
            "name": "password",
            "go_type": "string",
            "omit_empty": true,
            "line": 292
          }
        ]
      },
      {
        "id": "llm_schema.MCPAuthType",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 71,
        "expression": "string"
      },
      {
        "id": "llm_schema.MCPCapabilityDigest",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 96,
        "expression": "string"
      },
      {
        "id": "llm_schema.MCPCompatFlags",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 456,
        "expression": "struct",
        "fields": [
          {
            "name": "accept_legacy_sse",
            "go_type": "bool",
            "omit_empty": true,
            "line": 459
          },
          {
            "name": "omit_protocol_version_header",
            "go_type": "bool",
            "omit_empty": true,
            "line": 463
          },
          {
            "name": "allow_unauthenticated_discovery",
            "go_type": "bool",
            "omit_empty": true,
            "line": 467
          }
        ]
      },
      {
        "id": "llm_schema.MCPEgressPolicy",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 394,
        "expression": "struct",
        "fields": [
          {
            "name": "allow_hosts",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 405
          },
          {
            "name": "allow_ports",
            "go_type": "[]int",
            "omit_empty": true,
            "line": 409
          },
          {
            "name": "deny_private_networks",
            "go_type": "bool",
            "omit_empty": true,
            "line": 420
          },
          {
            "name": "allow_private_networks",
            "go_type": "bool",
            "omit_empty": true,
            "line": 426
          },
          {
            "name": "allow_plain_http",
            "go_type": "bool",
            "omit_empty": true,
            "line": 435
          },
          {
            "name": "proxy_url",
            "go_type": "string",
            "omit_empty": true,
            "line": 450
          }
        ]
      },
      {
        "id": "llm_schema.MCPOAuthConfig",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 331,
        "expression": "struct",
        "fields": [
          {
            "name": "resource_metadata_url",
            "go_type": "string",
            "omit_empty": true,
            "line": 334
          },
          {
            "name": "authorization_server",
            "go_type": "string",
            "omit_empty": true,
            "line": 338
          },
          {
            "name": "client_id_ref",
            "go_type": "string",
            "omit_empty": true,
            "line": 341
          },
          {
            "name": "client_secret_ref",
            "go_type": "string",
            "omit_empty": true,
            "line": 342
          },
          {
            "name": "scopes",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 345
          },
          {
            "name": "audience",
            "go_type": "string",
            "omit_empty": true,
            "line": 348
          }
        ]
      },
      {
        "id": "llm_schema.MCPServerConfig",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 99,
        "expression": "struct",
        "fields": [
          {
            "name": "name",
            "go_type": "string",
            "omit_empty": false,
            "line": 101
          },
          {
            "name": "schema_version",
            "go_type": "string",
            "omit_empty": true,
            "line": 113
          },
          {
            "name": "type",
            "go_type": "MCPServerType",
            "omit_empty": false,
            "line": 116,
            "references": [
              "llm_schema.MCPServerType"
            ]
          },
          {
            "name": "command",
            "go_type": "string",
            "omit_empty": true,
            "line": 119
          },
          {
            "name": "args",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 122
          },
          {
            "name": "url",
            "go_type": "string",
            "omit_empty": true,
            "line": 130
          },
          {
            "name": "work_dir",
            "go_type": "string",
            "omit_empty": true,
            "line": 133
          },
          {
            "name": "env",
            "go_type": "map[string]string",
            "omit_empty": true,
            "line": 136
          },
          {
            "name": "env_allowlist",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 159
          },
          {
            "name": "env_inherit_all",
            "go_type": "bool",
            "omit_empty": true,
            "line": 165
          },
          {
            "name": "auth",
            "go_type": "MCPAuthConfig",
            "omit_empty": true,
            "line": 168,
            "references": [
              "llm_schema.MCPAuthConfig"
            ]
          },
          {
            "name": "enabled",
            "go_type": "bool",
            "omit_empty": false,
            "line": 171
          },
          {
            "name": "timeout",
            "go_type": "time.Duration",
            "omit_empty": true,
            "line": 174
          },
          {
            "name": "auto_connect",
            "go_type": "bool",
            "omit_empty": true,
            "line": 177
          },
          {
            "name": "headers",
            "go_type": "map[string]string",
            "omit_empty": true,
            "line": 194
          },
          {
            "name": "min_protocol_version",
            "go_type": "string",
            "omit_empty": true,
            "line": 199
          },
          {
            "name": "max_protocol_version",
            "go_type": "string",
            "omit_empty": true,
            "line": 200
          },
          {
            "name": "disable_standalone_sse",
            "go_type": "bool",
            "omit_empty": true,
            "line": 204
          },
          {
            "name": "max_retries",
            "go_type": "int",
            "omit_empty": true,
            "line": 208
          },
          {
            "name": "oauth",
            "go_type": "*MCPOAuthConfig",
            "omit_empty": true,
            "line": 229,
            "references": [
              "llm_schema.MCPOAuthConfig"
            ]
          },
          {
            "name": "tls",
            "go_type": "*MCPTLSConfig",
            "omit_empty": true,
            "line": 232,
            "references": [
              "llm_schema.MCPTLSConfig"
            ]
          },
          {
            "name": "egress",
            "go_type": "*MCPEgressPolicy",
            "omit_empty": true,
            "line": 248,
            "references": [
              "llm_schema.MCPEgressPolicy"
            ]
          },
          {
            "name": "capability_digest",
            "go_type": "MCPCapabilityDigest",
            "omit_empty": true,
            "line": 264,
            "references": [
              "llm_schema.MCPCapabilityDigest"
            ]
          },
          {
            "name": "compat",
            "go_type": "MCPCompatFlags",
            "omit_empty": true,
            "line": 268,
            "references": [
              "llm_schema.MCPCompatFlags"
            ]
          }
        ]
      },
      {
        "id": "llm_schema.MCPServerType",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 20,
        "expression": "string"
      },
      {
        "id": "llm_schema.MCPTLSConfig",
        "source": "devnw.dev/llm@v0.46.6/schema/mcp.go",
        "line": 352,
        "expression": "struct",
        "fields": [
          {
            "name": "min_version",
            "go_type": "string",
            "omit_empty": true,
            "line": 354
          },
          {
            "name": "server_name",
            "go_type": "string",
            "omit_empty": true,
            "line": 359
          },
          {
            "name": "ca_bundle_ref",
            "go_type": "string",
            "omit_empty": true,
            "line": 363
          },
          {
            "name": "pinned_sha256",
            "go_type": "[]string",
            "omit_empty": true,
            "line": 373
          },
          {
            "name": "insecure_skip_verify",
            "go_type": "bool",
            "omit_empty": true,
            "line": 383
          },
          {
            "name": "insecure_acknowledged",
            "go_type": "bool",
            "omit_empty": true,
            "line": 390
          }
        ]
      }
    ]
  },
  "release": "0.12.7",
  "roots": {
    "hooks": "hooks.File",
    "mcp_sidecar": "mcpconfig.rawConfig",
    "models": "category.Catalog",
    "recipe_inline_mcp": "llm_schema.MCPServerConfig"
  },
  "scope": "Reachable YAML declarations from selected roots. omitempty describes serialization, not requiredness. Custom decoders and semantic/runtime validators remain authoritative.",
  "source_commit": "192e590345c6a4bf1ef8f72b043b318084ea84d6"
}
