{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/influence-so/json-schema/influence-so-navigation-schema.json",
  "title": "Navigation",
  "description": "The docs navigation model: header tabs, the sidebar tree, partition selectors, and pinned links.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/influence-so-openapi.json#/components/schemas/Navigation",
  "properties": {
    "actions": {
      "items": {
        "$ref": "#/$defs/NavLink"
      },
      "type": "array"
    },
    "cta": {
      "oneOf": [
        {
          "$ref": "#/$defs/NavLink"
        },
        {
          "type": "null"
        }
      ]
    },
    "featured": {
      "items": {
        "$ref": "#/$defs/NavLink"
      },
      "type": "array"
    },
    "repoUrl": {
      "type": [
        "string",
        "null"
      ]
    },
    "root": {
      "description": "The tree root's route (`/`, or a locale/version prefix).",
      "type": "string"
    },
    "selectors": {
      "items": {
        "$ref": "#/$defs/NavSelector"
      },
      "type": "array"
    },
    "sidebar": {
      "items": {
        "$ref": "#/$defs/NavNode"
      },
      "type": "array"
    },
    "tabs": {
      "items": {
        "$ref": "#/$defs/NavTab"
      },
      "type": "array"
    }
  },
  "required": [
    "featured",
    "selectors",
    "sidebar",
    "tabs"
  ],
  "type": "object",
  "$defs": {
    "NavLink": {
      "properties": {
        "href": {
          "description": "Link target — an internal route or an external URL.",
          "type": "string"
        },
        "icon": {
          "description": "Optional icon name.",
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "required": [
        "href",
        "label"
      ],
      "type": "object"
    },
    "NavNode": {
      "description": "A sidebar entry: a page (linking to its route) or a group holding further nodes.",
      "oneOf": [
        {
          "properties": {
            "badge": {
              "type": "string"
            },
            "deprecated": {
              "type": "boolean"
            },
            "description": {
              "type": "string"
            },
            "icon": {
              "type": "string"
            },
            "kind": {
              "const": "page",
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "pageId": {
              "description": "The page's stable content id.",
              "type": "string"
            },
            "route": {
              "description": "The page's route.",
              "type": "string"
            }
          },
          "required": [
            "kind",
            "label",
            "pageId",
            "route"
          ],
          "type": "object"
        },
        {
          "properties": {
            "badge": {
              "type": "string"
            },
            "children": {
              "items": {
                "$ref": "#/$defs/NavNode"
              },
              "type": "array"
            },
            "collapsed": {
              "type": "boolean"
            },
            "icon": {
              "type": "string"
            },
            "kind": {
              "const": "group",
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "path": {
              "description": "The group's route prefix (not necessarily a page).",
              "type": "string"
            },
            "route": {
              "description": "The group's index page route, when it has one.",
              "type": "string"
            }
          },
          "required": [
            "children",
            "kind",
            "label"
          ],
          "type": "object"
        }
      ]
    },
    "NavSelector": {
      "description": "A top-level partition selector (products, versions, languages).",
      "properties": {
        "items": {
          "items": {
            "properties": {
              "description": {
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "tag": {
                "type": "string"
              }
            },
            "required": [
              "label",
              "path"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "kind": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "required": [
        "items",
        "kind",
        "label"
      ],
      "type": "object"
    },
    "NavTab": {
      "properties": {
        "href": {
          "description": "The clickable target when it differs from `path` (the section's first page).",
          "type": "string"
        },
        "icon": {
          "type": "string"
        },
        "label": {
          "type": "string"
        },
        "path": {
          "description": "The tab's section prefix.",
          "type": "string"
        }
      },
      "required": [
        "label",
        "path"
      ],
      "type": "object"
    }
  }
}