{
  "lexicon": 1,
  "id": "sh.tangled.git.temp.defs",
  "defs": {
    "branch": {
      "type": "object",
      "required": ["name", "commit"],
      "properties": {
        "name": {
          "type": "string",
          "description": "branch name"
        },
        "commit": {
          "type": "ref",
          "ref": "#commit",
          "description": "hydrated commit object"
        }
      }
    },
    "tag": {
      "type": "object",
      "required": ["name", "tagger", "target"],
      "properties": {
        "name": {
          "type": "string",
          "description": "tag name"
        },
        "tagger": { "type": "ref", "ref": "#signature" },
        "message": { "type": "string" },
        "target": { "type": "unknown" }
      }
    },
    "commit": {
      "type": "object",
      "required": ["hash", "author", "committer", "message", "tree"],
      "properties": {
        "hash": { "type": "ref", "ref": "#hash" },
        "author": { "type": "ref", "ref": "#signature" },
        "committer": { "type": "ref", "ref": "#signature" },
        "message": { "type": "string" },
        "tree": { "type": "ref", "ref": "#hash" }
      }
    },
    "hash": {
      "type": "string"
    },
    "signature": {
      "type": "object",
      "required": ["name", "email", "when"],
      "properties": {
        "name": {
          "type": "string",
          "description": "Person name"
        },
        "email": {
          "type": "string",
          "description": "Person email"
        },
        "when": {
          "type": "string",
          "format": "datetime",
          "description": "Timestamp of the signature"
        }
      }
    },
    "submodule": {
      "type": "object",
      "required": ["name", "url"],
      "properties": {
        "name": {
          "type": "string",
          "description": "Submodule name"
        },
        "url": {
          "type": "string",
          "description": "Submodule repository URL"
        },
        "branch": {
          "type": "string",
          "description": "Branch to track in the submodule"
        }
      }
    }
  }
}
