{
  "lexicon": 1,
  "id": "sh.tangled.git.temp.analyzeMerge",
  "defs": {
    "main": {
      "type": "query",
      "description": "Check if a merge is possible between two branches",
      "parameters": {
        "type": "params",
        "required": ["repo", "patch", "branch"],
        "properties": {
          "repo": {
            "type": "string",
            "format": "did",
            "description": "DID of the repository"
          },
          "patch": {
            "type": "string",
            "description": "Patch or pull request to check for merge conflicts"
          },
          "branch": {
            "type": "string",
            "description": "Target branch to merge into"
          }
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "type": "object",
          "required": ["is_conflicted"],
          "properties": {
            "is_conflicted": {
              "type": "boolean",
              "description": "Whether the merge has conflicts"
            },
            "conflicts": {
              "type": "array",
              "description": "List of files with merge conflicts",
              "items": {
                "type": "ref",
                "ref": "#conflictInfo"
              }
            }
          }
        }
      }
    },
    "conflictInfo": {
      "type": "object",
      "required": ["filename", "reason"],
      "properties": {
        "filename": {
          "type": "string",
          "description": "Name of the conflicted file"
        },
        "reason": {
          "type": "string",
          "description": "Reason for the conflict"
        }
      }
    }
  }
}
