{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "GraphClientInterface::listPolicies options",
  "type": "object",
  "additionalProperties": true,
  "properties": {
    "select": {
      "description": "Optional $select. Accepts comma-separated string or array of strings. Sanitized against contract allowed_select.",
      "oneOf": [
        { "type": "string" },
        { "type": "array", "items": { "type": "string" } }
      ]
    },
    "expand": {
      "description": "Optional $expand. Accepts comma-separated string or array of strings. For string input, splitting is top-level only (commas inside balanced parentheses are not separators). Sanitized against contract allowed_expand.",
      "oneOf": [
        { "type": "string" },
        { "type": "array", "items": { "type": "string" } }
      ]
    },
    "filter": { "type": "string", "description": "Optional $filter." },
    "top": { "type": "integer", "minimum": 1, "description": "Optional $top." },
    "platform": { "type": "string", "description": "Optional platform filter (contract-specific)." },
    "client_request_id": { "type": "string", "description": "Optional client request id for Graph correlation." },

    "tenant": { "type": "string", "description": "Optional tenant override (primarily for diagnostics/commands)." },
    "access_token": { "type": "string", "description": "Optional delegated access token override." },

    "client_id": { "type": "string" },
    "client_secret": { "type": "string" },
    "scope": {
      "description": "Optional scope override.",
      "oneOf": [
        { "type": "string" },
        { "type": "array", "items": { "type": "string" } }
      ]
    },
    "token_url": { "type": "string" }
  }
}
