Skip to main content
Glama

Ausgabenlimit lesen

get_business_budgets
Read-onlyIdempotent

Read budget definitions, spending limits and recorded consumption. Use get_business_change to find changes across resources or recover approval requests; this tool reads the selected budget’s evidence.

Pick the question

  • How much may be spent now? Call without arguments. Advertising, roles and questions report availability separately.

  • Which stored frame should change? List view=frames, then take that row’s budgetId into an exact read.

  • Which role share should change? Read its budgetId+allocationId together.

  • What changed in a known budget? Use view=history with its budgetId. To trace one share, match kind/allocationId within that parent’s history.

Finish the read

Follow hasMore even if a history page has no matching share: unrelated events still consume limit. Frame pages seek by ID, not date; history follows newest-recorded append order. Keep the returned continuation with its original selection.

Consumption is not available cash; missing historical revisions stay unknown. Missing frames yield budgets=[]; unavailable role data stays null; storage failures are errors. Requires accounting:read and operations:read. Read current state before update_business_budget/archive_business_budget. New frames use create_business_budget; new shares use create_business_role_budget.

Input Schema

NameRequiredDescriptionDefault
viewNoframes discovers current stored definitions; history requires budgetId and reads retained forward-recorded frame/role states. Earlier revisions remain unknown. Omit view and budgetId for the active spending snapshot.
limitNoframes/history only: maximum records per page, 1–100; omitted means 50.
cursorNohistory only: unchanged pagination.nextCursor for the same tenant, actor and budgetId. Newest recorded revisions first in native append order; live pages, not a frozen snapshot. Not a frame-list anchor or change-index cursor.
budgetIdNoCopy the exact workspace frame ID from budgets or frames. With view=history selects its recorded frame/role revisions; alone reads current state including archived frames (missing ID: budgets=[]). Exclusive with view=frames.
allocationIdNoExact role-share ID from roleBudgets, together with that row's budgetId and no view/list options. Reads its current state and revision, including archived shares; an absent pair returns roleBudgets=[].
afterBudgetIdNoframes only: pagination.nextBudgetId from the previous page. Seek strictly after that exact ID; it must still exist in this workspace and selection. Keep includeArchived unchanged for a complete traversal.
includeArchivedNoframes only: include archived frames alongside active ones; omitted/false means active only. Archived frames cannot fund new spending.

Output Schema

NameRequiredDescriptionDefault
viewNo
framesNoCurrent stored General definitions, including archived frames when selected; not earlier cap versions or measured consumption.
reasonNo
statusYesCurrent spending-limit read availability; section statuses remain independent.
budgetsNoExact reads contain only status and budgets, including archived frames; an absent ID returns an empty array.
historyNoRetained applied frame/role states from forward recording; no reconstructed old values, pending requests or measured consumption. Empty does not prove no earlier changes.
pendingNoLatest General request summary, not a human-card continuation.
budgetIdNo
coverageNo
paginationNo
suggestionNoUnconfirmed recommendation, never an active limit.
advertisingNoIndependent advertising-policy state. Unavailable retains only status/providerWrites; a proposed policy is not active and no provider change is performed.
roleBudgetsNo
budgetQuestionsNo
roleBudgetStatusNoIndependent role-section availability; unavailable retains roleBudgets=null.
budgetQuestionStatusNoIndependent question-section availability; unavailable retains budgetQuestions=null.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / allOf
      Removed value: -[
      -  {
      -    "else": {
      -      "else": {
      -        "not": {
      -          "anyOf": [
      -            {
      -              "required": [
      -                "includeArchived"
      -              ]
      -            },
      -            {
      -              "required": [
      -                "limit"
      -              ]
      -            },
      -            {
      -              "required": [
      -                "afterBudgetId"
      -              ]
      -            },
      -            {
      -              "required": [
      -                "cursor"
      -              ]
      -            }
      -          ]
      -        }
      -      },
      -      "if": {
      -        "properties": {
      -          "view": {
      -            "const": "history"
      -          }
      -        },
      -        "required": [
      -          "view"
      -        ]
      -      },
      -      "then": {
      -        "not": {
      -          "anyOf": [
      -            {
      -              "required": [
      -                "includeArchived"
      -              ]
      -            },
      -            {
      -              "required": [
      -                "afterBudgetId"
      -              ]
      -            }
      -          ]
      -        },
      -        "required": [
      -          "budgetId"
      -        ]
      -      }
      -    },
      -    "if": {
      -      "properties": {
      -        "view": {
      -          "const": "frames"
      -        }
      -      },
      -      "required": [
      -        "view"
      -      ]
      -    },
      -    "then": {
      -      "not": {
      -        "anyOf": [
      -          {
      -            "required": [
      -              "budgetId"
      -            ]
      -          },
      -          {
      -            "required": [
      -              "cursor"
      -            ]
      -          }
      -        ]
      -      }
      -    }
      -  },
      -  {
      -    "if": {
      -      "required": [
      -        "allocationId"
      -      ]
      -    },
      -    "then": {
      -      "not": {
      -        "anyOf": [
      -          {
      -            "required": [
      -              "view"
      -            ]
      -          }
      -        ]
      -      },
      -      "required": [
      -        "budgetId"
      -      ]
      -    }
      -  }
      -]
    • addedInput schema / oneOf
      Added value: +[
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "budgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "view"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "allocationId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "includeArchived"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "limit"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "afterBudgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "cursor"
      +          ]
      +        }
      +      ]
      +    },
      +    "title": "Active spending snapshot: no arguments"
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "view"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "allocationId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "includeArchived"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "limit"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "afterBudgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "cursor"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "budgetId"
      +    ],
      +    "title": "One General frame: budgetId only"
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "view"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "includeArchived"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "limit"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "afterBudgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "cursor"
      +          ]
      +        }
      +      ]
      +    },
      +    "required": [
      +      "budgetId",
      +      "allocationId"
      +    ],
      +    "title": "One role share: budgetId and allocationId"
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "budgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "allocationId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "cursor"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "view": {
      +        "const": "frames",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "view"
      +    ],
      +    "title": "Discover stored frames"
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "allocationId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "includeArchived"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "afterBudgetId"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "view": {
      +        "const": "history",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "view",
      +      "budgetId"
      +    ],
      +    "title": "Read recorded frame and role revisions"
      +  }
      +]
  2. Changed4 schema fields changed
    • changedInput schema / allOf
      Previous value: -[
      -  {
      -    "else": {
      -      "else": {
      -        "not": {
      -          "anyOf": [
      -            {
      -              "required": [
      -                "includeArchived"
      -              ]
      -            },
      -            {
      -              "required": [
      -                "limit"
      -              ]
      -            },
      -            {
      -              "required": [
      -                "afterBudgetId"
      -              ]
      -            },
      -            {
      -              "required": [
      -                "cursor"
      -              ]
      -            }
      -          ]
      -        }
      -      },
      -      "if": {
      -        "properties": {
      -          "view": {
      -            "const": "history"
      -          }
      -        },
      -        "required": [
      -          "view"
      -        ]
      -      },
      -      "then": {
      -        "not": {
      -          "anyOf": [
      -            {
      -              "required": [
      -                "includeArchived"
      -              ]
      -            },
      -            {
      -              "required": [
      -                "afterBudgetId"
      -              ]
      -            }
      -          ]
      -        },
      -        "required": [
      -          "budgetId"
      -        ]
      -      }
      -    },
      -    "if": {
      -      "properties": {
      -        "view": {
      -          "const": "frames"
      -        }
      -      },
      -      "required": [
      -        "view"
      -      ]
      -    },
      -    "then": {
      -      "not": {
      -        "anyOf": [
      -          {
      -            "required": [
      -              "budgetId"
      -            ]
      -          },
      -          {
      -            "required": [
      -              "cursor"
      -            ]
      -          }
      -        ]
      -      }
      -    }
      -  }
      -]New value: +[
      +  {
      +    "else": {
      +      "else": {
      +        "not": {
      +          "anyOf": [
      +            {
      +              "required": [
      +                "includeArchived"
      +              ]
      +            },
      +            {
      +              "required": [
      +                "limit"
      +              ]
      +            },
      +            {
      +              "required": [
      +                "afterBudgetId"
      +              ]
      +            },
      +            {
      +              "required": [
      +                "cursor"
      +              ]
      +            }
      +          ]
      +        }
      +      },
      +      "if": {
      +        "properties": {
      +          "view": {
      +            "const": "history"
      +          }
      +        },
      +        "required": [
      +          "view"
      +        ]
      +      },
      +      "then": {
      +        "not": {
      +          "anyOf": [
      +            {
      +              "required": [
      +                "includeArchived"
      +              ]
      +            },
      +            {
      +              "required": [
      +                "afterBudgetId"
      +              ]
      +            }
      +          ]
      +        },
      +        "required": [
      +          "budgetId"
      +        ]
      +      }
      +    },
      +    "if": {
      +      "properties": {
      +        "view": {
      +          "const": "frames"
      +        }
      +      },
      +      "required": [
      +        "view"
      +      ]
      +    },
      +    "then": {
      +      "not": {
      +        "anyOf": [
      +          {
      +            "required": [
      +              "budgetId"
      +            ]
      +          },
      +          {
      +            "required": [
      +              "cursor"
      +            ]
      +          }
      +        ]
      +      }
      +    }
      +  },
      +  {
      +    "if": {
      +      "required": [
      +        "allocationId"
      +      ]
      +    },
      +    "then": {
      +      "not": {
      +        "anyOf": [
      +          {
      +            "required": [
      +              "view"
      +            ]
      +          }
      +        ]
      +      },
      +      "required": [
      +        "budgetId"
      +      ]
      +    }
      +  }
      +]
    • addedInput schema / properties / allocationId
      Added value: +{
      +  "description": "Exact role-share ID from roleBudgets, together with that row's budgetId and no view/list options. Reads its current state and revision, including archived shares; an absent pair returns roleBudgets=[].",
      +  "maxLength": 160,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedOutput schema / oneOf
      Previous value: -[
      -  {
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "budgets"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "view"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "budgetId"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "history"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "frames"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "pagination"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "coverage"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "pending"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "suggestion"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "advertising"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "roleBudgets"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "roleBudgetStatus"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "budgetQuestions"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "budgetQuestionStatus"
      -          ]
      -        }
      -      ]
      -    },
      -    "properties": {
      -      "status": {
      -        "const": "unavailable",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "reason"
      -    ]
      -  },
      -  {
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "view"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "budgetId"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "history"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "frames"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "pagination"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "coverage"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "pending"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "suggestion"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "advertising"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "roleBudgets"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "roleBudgetStatus"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "budgetQuestions"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "budgetQuestionStatus"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "reason"
      -          ]
      -        }
      -      ]
      -    },
      -    "properties": {
      -      "status": {
      -        "const": "ok",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "budgets"
      -    ]
      -  },
      -  {
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "view"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "budgetId"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "history"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "frames"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "pagination"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "coverage"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "reason"
      -          ]
      -        }
      -      ]
      -    },
      -    "properties": {
      -      "status": {
      -        "const": "ok",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "budgets",
      -      "pending",
      -      "suggestion",
      -      "advertising",
      -      "roleBudgets",
      -      "roleBudgetStatus",
      -      "budgetQuestions",
      -      "budgetQuestionStatus"
      -    ]
      -  },
      -  {
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "budgets"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "budgetId"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "history"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "pending"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "suggestion"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "advertising"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "roleBudgets"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "roleBudgetStatus"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "budgetQuestions"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "budgetQuestionStatus"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "reason"
      -          ]
      -        }
      -      ]
      -    },
      -    "properties": {
      -      "coverage": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "completeRevisionHistory": {
      -            "const": false,
      -            "type": "boolean"
      -          },
      -          "measuredConsumptionIncluded": {
      -            "const": false,
      -            "type": "boolean"
      -          },
      -          "storedDefinitionsOnly": {
      -            "const": true,
      -            "type": "boolean"
      -          }
      -        },
      -        "required": [
      -          "storedDefinitionsOnly",
      -          "completeRevisionHistory",
      -          "measuredConsumptionIncluded"
      -        ],
      -        "type": "object"
      -      },
      -      "pagination": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "hasMore": {
      -            "type": "boolean"
      -          },
      -          "nextBudgetId": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "hasMore",
      -          "nextBudgetId"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "const": "ok",
      -        "type": "string"
      -      },
      -      "view": {
      -        "const": "frames",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "view",
      -      "frames",
      -      "coverage",
      -      "pagination"
      -    ]
      -  },
      -  {
      -    "not": {
      -      "anyOf": [
      -        {
      -          "required": [
      -            "budgets"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "frames"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "pending"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "suggestion"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "advertising"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "roleBudgets"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "roleBudgetStatus"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "budgetQuestions"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "budgetQuestionStatus"
      -          ]
      -        },
      -        {
      -          "required": [
      -            "reason"
      -          ]
      -        }
      -      ]
      -    },
      -    "properties": {
      -      "coverage": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "completeRetrospectiveHistory": {
      -            "const": false,
      -            "type": "boolean"
      -          },
      -          "earlierRevisions": {
      -            "const": "unknown",
      -            "type": "string"
      -          },
      -          "measuredConsumptionIncluded": {
      -            "const": false,
      -            "type": "boolean"
      -          },
      -          "recordedRevisionsOnly": {
      -            "const": true,
      -            "type": "boolean"
      -          }
      -        },
      -        "required": [
      -          "recordedRevisionsOnly",
      -          "completeRetrospectiveHistory",
      -          "earlierRevisions",
      -          "measuredConsumptionIncluded"
      -        ],
      -        "type": "object"
      -      },
      -      "pagination": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "hasMore": {
      -            "type": "boolean"
      -          },
      -          "nextCursor": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "hasMore",
      -          "nextCursor"
      -        ],
      -        "type": "object"
      -      },
      -      "status": {
      -        "const": "ok",
      -        "type": "string"
      -      },
      -      "view": {
      -        "const": "history",
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "status",
      -      "view",
      -      "budgetId",
      -      "history",
      -      "coverage",
      -      "pagination"
      -    ]
      -  }
      -]New value: +[
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "budgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "view"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "history"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "frames"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pagination"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "coverage"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pending"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "suggestion"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "advertising"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgetStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestions"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestionStatus"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "status": {
      +        "const": "unavailable",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "reason"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "view"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "history"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "frames"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pagination"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "coverage"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pending"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "suggestion"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "advertising"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgetStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestions"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestionStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "reason"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "status": {
      +        "const": "ok",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "budgets"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "view"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "history"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "frames"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pagination"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "coverage"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "reason"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "roleBudgetStatus": {
      +        "description": "Independent role-section availability; unavailable retains roleBudgets=null.",
      +        "enum": [
      +          "ok",
      +          "unavailable"
      +        ],
      +        "type": "string"
      +      },
      +      "status": {
      +        "const": "ok",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "budgets",
      +      "pending",
      +      "suggestion",
      +      "advertising",
      +      "roleBudgets",
      +      "roleBudgetStatus",
      +      "budgetQuestions",
      +      "budgetQuestionStatus"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "budgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "history"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pending"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "suggestion"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "advertising"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgetStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestions"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestionStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "reason"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "coverage": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "completeRevisionHistory": {
      +            "const": false,
      +            "type": "boolean"
      +          },
      +          "measuredConsumptionIncluded": {
      +            "const": false,
      +            "type": "boolean"
      +          },
      +          "storedDefinitionsOnly": {
      +            "const": true,
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "storedDefinitionsOnly",
      +          "completeRevisionHistory",
      +          "measuredConsumptionIncluded"
      +        ],
      +        "type": "object"
      +      },
      +      "pagination": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "hasMore": {
      +            "type": "boolean"
      +          },
      +          "nextBudgetId": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "hasMore",
      +          "nextBudgetId"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "const": "ok",
      +        "type": "string"
      +      },
      +      "view": {
      +        "const": "frames",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "view",
      +      "frames",
      +      "coverage",
      +      "pagination"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "budgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "frames"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pending"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "suggestion"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "advertising"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgetStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestions"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestionStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "reason"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "coverage": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "completeRetrospectiveHistory": {
      +            "const": false,
      +            "type": "boolean"
      +          },
      +          "earlierRevisions": {
      +            "const": "unknown",
      +            "type": "string"
      +          },
      +          "measuredConsumptionIncluded": {
      +            "const": false,
      +            "type": "boolean"
      +          },
      +          "recordedRevisionsOnly": {
      +            "const": true,
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "recordedRevisionsOnly",
      +          "completeRetrospectiveHistory",
      +          "earlierRevisions",
      +          "measuredConsumptionIncluded"
      +        ],
      +        "type": "object"
      +      },
      +      "pagination": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "hasMore": {
      +            "type": "boolean"
      +          },
      +          "nextCursor": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "hasMore",
      +          "nextCursor"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "const": "ok",
      +        "type": "string"
      +      },
      +      "view": {
      +        "const": "history",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "view",
      +      "budgetId",
      +      "history",
      +      "coverage",
      +      "pagination"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "budgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "view"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "history"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "frames"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pagination"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "coverage"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pending"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "suggestion"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "advertising"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestions"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestionStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "reason"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "roleBudgetStatus": {
      +        "const": "ok",
      +        "type": "string"
      +      },
      +      "roleBudgets": {
      +        "type": "array"
      +      },
      +      "status": {
      +        "const": "ok",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "roleBudgets",
      +      "roleBudgetStatus"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "budgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "view"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "history"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "frames"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pagination"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "coverage"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pending"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "suggestion"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "advertising"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestions"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestionStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "reason"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "roleBudgetStatus": {
      +        "const": "unavailable",
      +        "type": "string"
      +      },
      +      "roleBudgets": {
      +        "type": "null"
      +      },
      +      "status": {
      +        "const": "unavailable",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "roleBudgets",
      +      "roleBudgetStatus"
      +    ]
      +  }
      +]
    • changedOutput schema / properties / roleBudgets / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "additionalProperties": false,
      -      "description": "Role share; consumption includes descendants. Unassigned historical spending remains in company totals.",
      -      "properties": {
      -        "allocationId": {
      -          "type": "string"
      -        },
      -        "budgetId": {
      -          "type": "string"
      -        },
      -        "coverage": {
      -          "const": "recorded_role_spend_only",
      -          "type": "string"
      -        },
      -        "endsOn": {
      -          "type": "string"
      -        },
      -        "limitCents": {
      -          "type": "number"
      -        },
      -        "limitLabel": {
      -          "type": "string"
      -        },
      -        "parentAllocationId": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "periodLabel": {
      -          "type": "string"
      -        },
      -        "reachKey": {
      -          "type": "string"
      -        },
      -        "reachLabel": {
      -          "type": "string"
      -        },
      -        "remainingCents": {
      -          "type": "number"
      -        },
      -        "remainingLabel": {
      -          "type": "string"
      -        },
      -        "roleKey": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "roleTitle": {
      -          "type": [
      -            "string",
      -            "null"
      -          ]
      -        },
      -        "spentCents": {
      -          "type": "number"
      -        },
      -        "spentLabel": {
      -          "type": "string"
      -        },
      -        "startsOn": {
      -          "type": "string"
      -        }
      -      },
      -      "required": [
      -        "allocationId",
      -        "budgetId",
      -        "parentAllocationId",
      -        "roleKey",
      -        "roleTitle",
      -        "reachKey",
      -        "reachLabel",
      -        "startsOn",
      -        "endsOn",
      -        "periodLabel",
      -        "limitCents",
      -        "spentCents",
      -        "remainingCents",
      -        "limitLabel",
      -        "spentLabel",
      -        "remainingLabel",
      -        "coverage"
      -      ],
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "items": {
      +      "additionalProperties": false,
      +      "description": "Role share; consumption includes descendants. Unassigned historical spending remains in company totals.",
      +      "properties": {
      +        "allocationId": {
      +          "type": "string"
      +        },
      +        "archivedAt": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "budgetId": {
      +          "type": "string"
      +        },
      +        "coverage": {
      +          "const": "recorded_role_spend_only",
      +          "type": "string"
      +        },
      +        "endsOn": {
      +          "type": "string"
      +        },
      +        "lifecycleStatus": {
      +          "enum": [
      +            "active",
      +            "archived"
      +          ],
      +          "type": "string"
      +        },
      +        "limitCents": {
      +          "type": "number"
      +        },
      +        "limitLabel": {
      +          "type": "string"
      +        },
      +        "parentAllocationId": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "periodLabel": {
      +          "type": "string"
      +        },
      +        "reachKey": {
      +          "type": "string"
      +        },
      +        "reachLabel": {
      +          "type": "string"
      +        },
      +        "remainingCents": {
      +          "type": "number"
      +        },
      +        "remainingLabel": {
      +          "type": "string"
      +        },
      +        "revision": {
      +          "type": "string"
      +        },
      +        "roleKey": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "roleTitle": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "spentCents": {
      +          "type": "number"
      +        },
      +        "spentLabel": {
      +          "type": "string"
      +        },
      +        "startsOn": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "allocationId",
      +        "budgetId",
      +        "parentAllocationId",
      +        "revision",
      +        "lifecycleStatus",
      +        "archivedAt",
      +        "roleKey",
      +        "roleTitle",
      +        "reachKey",
      +        "reachLabel",
      +        "startsOn",
      +        "endsOn",
      +        "periodLabel",
      +        "limitCents",
      +        "spentCents",
      +        "remainingCents",
      +        "limitLabel",
      +        "spentLabel",
      +        "remainingLabel",
      +        "coverage"
      +      ],
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  3. Changed1 schema field changed
    • addedOutput schema / oneOf
      Added value: +[
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "budgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "view"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "history"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "frames"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pagination"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "coverage"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pending"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "suggestion"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "advertising"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgetStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestions"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestionStatus"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "status": {
      +        "const": "unavailable",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "reason"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "view"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "history"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "frames"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pagination"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "coverage"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pending"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "suggestion"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "advertising"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgetStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestions"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestionStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "reason"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "status": {
      +        "const": "ok",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "budgets"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "view"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "history"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "frames"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pagination"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "coverage"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "reason"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "status": {
      +        "const": "ok",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "budgets",
      +      "pending",
      +      "suggestion",
      +      "advertising",
      +      "roleBudgets",
      +      "roleBudgetStatus",
      +      "budgetQuestions",
      +      "budgetQuestionStatus"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "budgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetId"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "history"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pending"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "suggestion"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "advertising"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgetStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestions"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestionStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "reason"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "coverage": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "completeRevisionHistory": {
      +            "const": false,
      +            "type": "boolean"
      +          },
      +          "measuredConsumptionIncluded": {
      +            "const": false,
      +            "type": "boolean"
      +          },
      +          "storedDefinitionsOnly": {
      +            "const": true,
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "storedDefinitionsOnly",
      +          "completeRevisionHistory",
      +          "measuredConsumptionIncluded"
      +        ],
      +        "type": "object"
      +      },
      +      "pagination": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "hasMore": {
      +            "type": "boolean"
      +          },
      +          "nextBudgetId": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "hasMore",
      +          "nextBudgetId"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "const": "ok",
      +        "type": "string"
      +      },
      +      "view": {
      +        "const": "frames",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "view",
      +      "frames",
      +      "coverage",
      +      "pagination"
      +    ]
      +  },
      +  {
      +    "not": {
      +      "anyOf": [
      +        {
      +          "required": [
      +            "budgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "frames"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "pending"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "suggestion"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "advertising"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgets"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "roleBudgetStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestions"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "budgetQuestionStatus"
      +          ]
      +        },
      +        {
      +          "required": [
      +            "reason"
      +          ]
      +        }
      +      ]
      +    },
      +    "properties": {
      +      "coverage": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "completeRetrospectiveHistory": {
      +            "const": false,
      +            "type": "boolean"
      +          },
      +          "earlierRevisions": {
      +            "const": "unknown",
      +            "type": "string"
      +          },
      +          "measuredConsumptionIncluded": {
      +            "const": false,
      +            "type": "boolean"
      +          },
      +          "recordedRevisionsOnly": {
      +            "const": true,
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "recordedRevisionsOnly",
      +          "completeRetrospectiveHistory",
      +          "earlierRevisions",
      +          "measuredConsumptionIncluded"
      +        ],
      +        "type": "object"
      +      },
      +      "pagination": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "hasMore": {
      +            "type": "boolean"
      +          },
      +          "nextCursor": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "hasMore",
      +          "nextCursor"
      +        ],
      +        "type": "object"
      +      },
      +      "status": {
      +        "const": "ok",
      +        "type": "string"
      +      },
      +      "view": {
      +        "const": "history",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "status",
      +      "view",
      +      "budgetId",
      +      "history",
      +      "coverage",
      +      "pagination"
      +    ]
      +  }
      +]
  4. Changed21 schema fields changed
    • changedInput schema / allOf
      Previous value: -[
      -  {
      -    "else": {
      -      "not": {
      -        "anyOf": [
      -          {
      -            "required": [
      -              "includeArchived"
      -            ]
      -          },
      -          {
      -            "required": [
      -              "limit"
      -            ]
      -          },
      -          {
      -            "required": [
      -              "afterBudgetId"
      -            ]
      -          }
      -        ]
      -      }
      -    },
      -    "if": {
      -      "required": [
      -        "view"
      -      ]
      -    },
      -    "then": {
      -      "not": {
      -        "required": [
      -          "budgetId"
      -        ]
      -      }
      -    }
      -  }
      -]New value: +[
      +  {
      +    "else": {
      +      "else": {
      +        "not": {
      +          "anyOf": [
      +            {
      +              "required": [
      +                "includeArchived"
      +              ]
      +            },
      +            {
      +              "required": [
      +                "limit"
      +              ]
      +            },
      +            {
      +              "required": [
      +                "afterBudgetId"
      +              ]
      +            },
      +            {
      +              "required": [
      +                "cursor"
      +              ]
      +            }
      +          ]
      +        }
      +      },
      +      "if": {
      +        "properties": {
      +          "view": {
      +            "const": "history"
      +          }
      +        },
      +        "required": [
      +          "view"
      +        ]
      +      },
      +      "then": {
      +        "not": {
      +          "anyOf": [
      +            {
      +              "required": [
      +                "includeArchived"
      +              ]
      +            },
      +            {
      +              "required": [
      +                "afterBudgetId"
      +              ]
      +            }
      +          ]
      +        },
      +        "required": [
      +          "budgetId"
      +        ]
      +      }
      +    },
      +    "if": {
      +      "properties": {
      +        "view": {
      +          "const": "frames"
      +        }
      +      },
      +      "required": [
      +        "view"
      +      ]
      +    },
      +    "then": {
      +      "not": {
      +        "anyOf": [
      +          {
      +            "required": [
      +              "budgetId"
      +            ]
      +          },
      +          {
      +            "required": [
      +              "cursor"
      +            ]
      +          }
      +        ]
      +      }
      +    }
      +  }
      +]
    • changedInput schema / properties / budgetId / description
      Previous value: -"Exact General budget read, including archived frames, with current revision/consumption. Copy budgetId from budgets or frames. Missing ID returns budgets=[]. Exclusive with frame-list options."New value: +"Copy the exact workspace frame ID from budgets or frames. With view=history selects its recorded frame/role revisions; alone reads current state including archived frames (missing ID: budgets=[]). Exclusive with view=frames."
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "history only: unchanged pagination.nextCursor for the same tenant, actor and budgetId. Newest recorded revisions first in native append order; live pages, not a frozen snapshot. Not a frame-list anchor or change-index cursor.",
      +  "maxLength": 1024,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / limit / description
      Previous value: -"frames only: maximum definitions per page, 1–100; omitted means 50."New value: +"frames/history only: maximum records per page, 1–100; omitted means 50."
    • removedInput schema / properties / view / const
      Removed value: -"frames"
    • changedInput schema / properties / view / description
      Previous value: -"Discover stored General frame definitions without measured consumption, roles, policies, requests or prior cap revisions. Omit view and budgetId for the active spending snapshot."New value: +"frames discovers current stored definitions; history requires budgetId and reads retained forward-recorded frame/role states. Earlier revisions remain unknown. Omit view and budgetId for the active spending snapshot."
    • addedInput schema / properties / view / enum
      Added value: +[
      +  "frames",
      +  "history"
      +]
    • addedOutput schema / properties / budgetId
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / coverage / additionalProperties
      Removed value: -false
    • addedOutput schema / properties / coverage / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "completeRevisionHistory": {
      +        "const": false,
      +        "type": "boolean"
      +      },
      +      "measuredConsumptionIncluded": {
      +        "const": false,
      +        "type": "boolean"
      +      },
      +      "storedDefinitionsOnly": {
      +        "const": true,
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "storedDefinitionsOnly",
      +      "completeRevisionHistory",
      +      "measuredConsumptionIncluded"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "completeRetrospectiveHistory": {
      +        "const": false,
      +        "type": "boolean"
      +      },
      +      "earlierRevisions": {
      +        "const": "unknown",
      +        "type": "string"
      +      },
      +      "measuredConsumptionIncluded": {
      +        "const": false,
      +        "type": "boolean"
      +      },
      +      "recordedRevisionsOnly": {
      +        "const": true,
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "recordedRevisionsOnly",
      +      "completeRetrospectiveHistory",
      +      "earlierRevisions",
      +      "measuredConsumptionIncluded"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedOutput schema / properties / coverage / properties
      Removed value: -{
      -  "completeRevisionHistory": {
      -    "const": false,
      -    "type": "boolean"
      -  },
      -  "measuredConsumptionIncluded": {
      -    "const": false,
      -    "type": "boolean"
      -  },
      -  "storedDefinitionsOnly": {
      -    "const": true,
      -    "type": "boolean"
      -  }
      -}
    • removedOutput schema / properties / coverage / required
      Removed value: -[
      -  "storedDefinitionsOnly",
      -  "completeRevisionHistory",
      -  "measuredConsumptionIncluded"
      -]
    • removedOutput schema / properties / coverage / type
      Removed value: -"object"
    • addedOutput schema / properties / history
      Added value: +{
      +  "description": "Retained applied frame/role states from forward recording; no reconstructed old values, pending requests or measured consumption. Empty does not prove no earlier changes.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "allocationId": {
      +        "anyOf": [
      +          {
      +            "maxLength": 160,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "change": {
      +        "enum": [
      +          "created",
      +          "updated",
      +          "archived"
      +        ],
      +        "type": "string"
      +      },
      +      "definition": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "currencyCode": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "endsOn": {
      +            "type": "string"
      +          },
      +          "goal": {
      +            "type": "string"
      +          },
      +          "limitCents": {
      +            "maximum": 9007199254740991,
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "reachKey": {
      +            "type": "string"
      +          },
      +          "reachLabel": {
      +            "type": "string"
      +          },
      +          "startsOn": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "goal",
      +          "startsOn",
      +          "endsOn",
      +          "reachKey",
      +          "reachLabel",
      +          "limitCents",
      +          "currencyCode"
      +        ],
      +        "type": "object"
      +      },
      +      "kind": {
      +        "enum": [
      +          "frame",
      +          "role"
      +        ],
      +        "type": "string"
      +      },
      +      "lifecycleStatus": {
      +        "enum": [
      +          "active",
      +          "archived"
      +        ],
      +        "type": "string"
      +      },
      +      "parentAllocationId": {
      +        "anyOf": [
      +          {
      +            "maxLength": 160,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "receiptId": {
      +        "maxLength": 160,
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "recordedAt": {
      +        "type": "string"
      +      },
      +      "revision": {
      +        "description": "Digest of this recorded resource state. Re-read the current frame before preparing a change.",
      +        "pattern": "^[a-f0-9]{64}$",
      +        "type": "string"
      +      },
      +      "roleKey": {
      +        "anyOf": [
      +          {
      +            "maxLength": 160,
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "receiptId",
      +      "recordedAt",
      +      "kind",
      +      "change",
      +      "revision",
      +      "allocationId",
      +      "parentAllocationId",
      +      "roleKey",
      +      "lifecycleStatus",
      +      "definition"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • removedOutput schema / properties / pagination / additionalProperties
      Removed value: -false
    • addedOutput schema / properties / pagination / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "hasMore": {
      +        "type": "boolean"
      +      },
      +      "nextBudgetId": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "hasMore",
      +      "nextBudgetId"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "hasMore": {
      +        "type": "boolean"
      +      },
      +      "nextCursor": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      }
      +    },
      +    "required": [
      +      "hasMore",
      +      "nextCursor"
      +    ],
      +    "type": "object"
      +  }
      +]
    • removedOutput schema / properties / pagination / properties
      Removed value: -{
      -  "hasMore": {
      -    "type": "boolean"
      -  },
      -  "nextBudgetId": {
      -    "type": [
      -      "string",
      -      "null"
      -    ]
      -  }
      -}
    • removedOutput schema / properties / pagination / required
      Removed value: -[
      -  "hasMore",
      -  "nextBudgetId"
      -]
    • removedOutput schema / properties / pagination / type
      Removed value: -"object"
    • removedOutput schema / properties / view / const
      Removed value: -"frames"
    • addedOutput schema / properties / view / enum
      Added value: +[
      +  "frames",
      +  "history"
      +]
  5. Changed10 schema fields changed
    • addedInput schema / allOf
      Added value: +[
      +  {
      +    "else": {
      +      "not": {
      +        "anyOf": [
      +          {
      +            "required": [
      +              "includeArchived"
      +            ]
      +          },
      +          {
      +            "required": [
      +              "limit"
      +            ]
      +          },
      +          {
      +            "required": [
      +              "afterBudgetId"
      +            ]
      +          }
      +        ]
      +      }
      +    },
      +    "if": {
      +      "required": [
      +        "view"
      +      ]
      +    },
      +    "then": {
      +      "not": {
      +        "required": [
      +          "budgetId"
      +        ]
      +      }
      +    }
      +  }
      +]
    • addedInput schema / properties / afterBudgetId
      Added value: +{
      +  "description": "frames only: pagination.nextBudgetId from the previous page. Seek strictly after that exact ID; it must still exist in this workspace and selection. Keep includeArchived unchanged for a complete traversal.",
      +  "maxLength": 160,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / budgetId / description
      Previous value: -"Exact General budget read, including archived frames, with revision/lifecycleStatus. Missing ID returns budgets=[]. Omit for the active spending snapshot."New value: +"Exact General budget read, including archived frames, with current revision/consumption. Copy budgetId from budgets or frames. Missing ID returns budgets=[]. Exclusive with frame-list options."
    • addedInput schema / properties / includeArchived
      Added value: +{
      +  "description": "frames only: include archived frames alongside active ones; omitted/false means active only. Archived frames cannot fund new spending.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "frames only: maximum definitions per page, 1–100; omitted means 50.",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / view
      Added value: +{
      +  "const": "frames",
      +  "description": "Discover stored General frame definitions without measured consumption, roles, policies, requests or prior cap revisions. Omit view and budgetId for the active spending snapshot.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / coverage
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "completeRevisionHistory": {
      +      "const": false,
      +      "type": "boolean"
      +    },
      +    "measuredConsumptionIncluded": {
      +      "const": false,
      +      "type": "boolean"
      +    },
      +    "storedDefinitionsOnly": {
      +      "const": true,
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "storedDefinitionsOnly",
      +    "completeRevisionHistory",
      +    "measuredConsumptionIncluded"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / frames
      Added value: +{
      +  "description": "Current stored General definitions, including archived frames when selected; not earlier cap versions or measured consumption.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "budgetId": {
      +        "type": "string"
      +      },
      +      "createdAt": {
      +        "type": "string"
      +      },
      +      "currencyCode": {
      +        "description": "Stored currency; null means unknown, without an assumed EUR conversion.",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "endsOn": {
      +        "type": "string"
      +      },
      +      "goal": {
      +        "type": "string"
      +      },
      +      "lifecycleStatus": {
      +        "enum": [
      +          "active",
      +          "archived"
      +        ],
      +        "type": "string"
      +      },
      +      "limitCents": {
      +        "type": "number"
      +      },
      +      "reachKey": {
      +        "type": "string"
      +      },
      +      "reachLabel": {
      +        "type": "string"
      +      },
      +      "revision": {
      +        "type": "string"
      +      },
      +      "startsOn": {
      +        "type": "string"
      +      },
      +      "updatedAt": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "budgetId",
      +      "revision",
      +      "lifecycleStatus",
      +      "goal",
      +      "reachKey",
      +      "reachLabel",
      +      "startsOn",
      +      "endsOn",
      +      "limitCents",
      +      "currencyCode",
      +      "createdAt",
      +      "updatedAt"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / pagination
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "hasMore": {
      +      "type": "boolean"
      +    },
      +    "nextBudgetId": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "hasMore",
      +    "nextBudgetId"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / view
      Added value: +{
      +  "const": "frames",
      +  "type": "string"
      +}
  6. Changed4 schema fields changed
    • removedOutput schema / properties / expiresAt
      Removed value: -{
      -  "description": "Original stored request deadline in private FULL proposal mode; reading never renews it.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / proposalId
      Removed value: -{
      -  "type": "string"
      -}
    • changedOutput schema / properties / status / description
      Previous value: -"ok confirms this read only. Request statuses belong to the private FULL proposalId mode, not current budget state."New value: +"Current spending-limit read availability; section statuses remain independent."
    • changedOutput schema / properties / status / enum
      Previous value: -[
      -  "ok",
      -  "unavailable",
      -  "pending_owner",
      -  "approved",
      -  "expired",
      -  "not_found"
      -]New value: +[
      +  "ok",
      +  "unavailable"
      +]
  7. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": false,
      +  "properties": {
      +    "advertising": {
      +      "additionalProperties": false,
      +      "description": "Independent advertising-policy state. Unavailable retains only status/providerWrites; a proposed policy is not active and no provider change is performed.",
      +      "properties": {
      +        "budgetId": {
      +          "type": [
      +            "string",
      +            "null"
      +          ]
      +        },
      +        "campaigns": {
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "accountRef": {
      +                "type": "string"
      +              },
      +              "campaignRef": {
      +                "type": "string"
      +              },
      +              "enabled": {
      +                "type": "boolean"
      +              },
      +              "label": {
      +                "type": "string"
      +              },
      +              "provider": {
      +                "type": "string"
      +              },
      +              "segmentKey": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "segmentKey",
      +              "label",
      +              "provider",
      +              "accountRef",
      +              "campaignRef",
      +              "enabled"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "pending": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "expiresAt": {
      +                  "type": "string"
      +                },
      +                "proposalId": {
      +                  "type": "string"
      +                },
      +                "status": {
      +                  "const": "proposed",
      +                  "type": "string"
      +                },
      +                "value": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "currency": {
      +                      "description": "ISO-4217 budget currency. The current shared executable budget contract accepts EUR only; no exchange conversion is performed.",
      +                      "type": "string"
      +                    },
      +                    "dailyLimitCents": {
      +                      "description": "Global daily limit in integer cents of currency; must not exceed monthlyLimitCents and must cover the sum of enabled segment daily limits.",
      +                      "maximum": 9007199254740991,
      +                      "minimum": 0,
      +                      "type": "integer"
      +                    },
      +                    "endsOn": {
      +                      "description": "Last included day, on or after startsOn and no later than the end of that same month.",
      +                      "type": "string"
      +                    },
      +                    "monthlyLimitCents": {
      +                      "description": "Global monthly limit in the same currency; must cover enabled segment monthly limits. Zero is a zero limit.",
      +                      "maximum": 9007199254740991,
      +                      "minimum": 0,
      +                      "type": "integer"
      +                    },
      +                    "segments": {
      +                      "description": "Complete segment configuration, not a partial patch. Preserve unrelated entries; keys and provider/account/campaign identities must be unique. An empty array means no segment allocations.",
      +                      "items": {
      +                        "additionalProperties": false,
      +                        "properties": {
      +                          "accountRef": {
      +                            "description": "Existing authorized provider account reference from the current budget/campaign choices, never a credential or inferred account.",
      +                            "type": "string"
      +                          },
      +                          "campaignRefs": {
      +                            "description": "Distinct campaign references within that provider/account. Each provider/account/campaign identity may appear in only one segment; new references require current authorized choices.",
      +                            "items": {
      +                              "type": "string"
      +                            },
      +                            "type": "array"
      +                          },
      +                          "dailyLimitCents": {
      +                            "description": "Segment daily limit in integer cents of the budget currency, no higher than its monthly limit; zero is not unlimited.",
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "enabled": {
      +                            "description": "Whether this segment participates in the active budget allocation; not a provider campaign start/stop command.",
      +                            "type": "boolean"
      +                          },
      +                          "key": {
      +                            "description": "Stable segment key, unique within this budget; preserve it when changing an existing segment.",
      +                            "pattern": "^[a-z0-9][a-z0-9_-]{0,59}$",
      +                            "type": "string"
      +                          },
      +                          "label": {
      +                            "description": "Human-readable segment label; does not select a provider account or campaign.",
      +                            "type": "string"
      +                          },
      +                          "monthlyLimitCents": {
      +                            "description": "Segment monthly limit in the same currency. Totals of enabled segments must fit within both global limits.",
      +                            "maximum": 9007199254740991,
      +                            "minimum": 0,
      +                            "type": "integer"
      +                          },
      +                          "provider": {
      +                            "description": "Provider namespace of the bound account/campaign references; declaring it does not connect that provider.",
      +                            "enum": [
      +                              "google_ads",
      +                              "microsoft_ads",
      +                              "openai_ads"
      +                            ],
      +                            "type": "string"
      +                          }
      +                        },
      +                        "required": [
      +                          "key",
      +                          "label",
      +                          "provider",
      +                          "accountRef",
      +                          "campaignRefs",
      +                          "enabled",
      +                          "dailyLimitCents",
      +                          "monthlyLimitCents"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      "type": "array"
      +                    },
      +                    "startsOn": {
      +                      "description": "First included budget day, YYYY-MM-DD; must be the first day of the selected calendar month.",
      +                      "type": "string"
      +                    },
      +                    "timeZone": {
      +                      "description": "Valid IANA time-zone identifier for this budget's calendar; preserve the current setting unless explicitly requested to change it.",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "startsOn",
      +                    "endsOn",
      +                    "currency",
      +                    "timeZone",
      +                    "dailyLimitCents",
      +                    "monthlyLimitCents",
      +                    "segments"
      +                  ],
      +                  "type": "object"
      +                }
      +              },
      +              "required": [
      +                "status",
      +                "proposalId",
      +                "value",
      +                "expiresAt"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "providerWrites": {
      +          "const": false,
      +          "type": "boolean"
      +        },
      +        "revision": {
      +          "type": "string"
      +        },
      +        "status": {
      +          "enum": [
      +            "proposed",
      +            "unconfirmed",
      +            "changed",
      +            "scheduled",
      +            "expired",
      +            "confirmed",
      +            "unavailable"
      +          ],
      +          "type": "string"
      +        },
      +        "value": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "currency": {
      +                  "description": "ISO-4217 budget currency. The current shared executable budget contract accepts EUR only; no exchange conversion is performed.",
      +                  "type": "string"
      +                },
      +                "dailyLimitCents": {
      +                  "description": "Global daily limit in integer cents of currency; must not exceed monthlyLimitCents and must cover the sum of enabled segment daily limits.",
      +                  "maximum": 9007199254740991,
      +                  "minimum": 0,
      +                  "type": "integer"
      +                },
      +                "endsOn": {
      +                  "description": "Last included day, on or after startsOn and no later than the end of that same month.",
      +                  "type": "string"
      +                },
      +                "monthlyLimitCents": {
      +                  "description": "Global monthly limit in the same currency; must cover enabled segment monthly limits. Zero is a zero limit.",
      +                  "maximum": 9007199254740991,
      +                  "minimum": 0,
      +                  "type": "integer"
      +                },
      +                "segments": {
      +                  "description": "Complete segment configuration, not a partial patch. Preserve unrelated entries; keys and provider/account/campaign identities must be unique. An empty array means no segment allocations.",
      +                  "items": {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "accountRef": {
      +                        "description": "Existing authorized provider account reference from the current budget/campaign choices, never a credential or inferred account.",
      +                        "type": "string"
      +                      },
      +                      "campaignRefs": {
      +                        "description": "Distinct campaign references within that provider/account. Each provider/account/campaign identity may appear in only one segment; new references require current authorized choices.",
      +                        "items": {
      +                          "type": "string"
      +                        },
      +                        "type": "array"
      +                      },
      +                      "dailyLimitCents": {
      +                        "description": "Segment daily limit in integer cents of the budget currency, no higher than its monthly limit; zero is not unlimited.",
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "enabled": {
      +                        "description": "Whether this segment participates in the active budget allocation; not a provider campaign start/stop command.",
      +                        "type": "boolean"
      +                      },
      +                      "key": {
      +                        "description": "Stable segment key, unique within this budget; preserve it when changing an existing segment.",
      +                        "pattern": "^[a-z0-9][a-z0-9_-]{0,59}$",
      +                        "type": "string"
      +                      },
      +                      "label": {
      +                        "description": "Human-readable segment label; does not select a provider account or campaign.",
      +                        "type": "string"
      +                      },
      +                      "monthlyLimitCents": {
      +                        "description": "Segment monthly limit in the same currency. Totals of enabled segments must fit within both global limits.",
      +                        "maximum": 9007199254740991,
      +                        "minimum": 0,
      +                        "type": "integer"
      +                      },
      +                      "provider": {
      +                        "description": "Provider namespace of the bound account/campaign references; declaring it does not connect that provider.",
      +                        "enum": [
      +                          "google_ads",
      +                          "microsoft_ads",
      +                          "openai_ads"
      +                        ],
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "key",
      +                      "label",
      +                      "provider",
      +                      "accountRef",
      +                      "campaignRefs",
      +                      "enabled",
      +                      "dailyLimitCents",
      +                      "monthlyLimitCents"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  "type": "array"
      +                },
      +                "startsOn": {
      +                  "description": "First included budget day, YYYY-MM-DD; must be the first day of the selected calendar month.",
      +                  "type": "string"
      +                },
      +                "timeZone": {
      +                  "description": "Valid IANA time-zone identifier for this budget's calendar; preserve the current setting unless explicitly requested to change it.",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "startsOn",
      +                "endsOn",
      +                "currency",
      +                "timeZone",
      +                "dailyLimitCents",
      +                "monthlyLimitCents",
      +                "segments"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "status",
      +        "providerWrites"
      +      ],
      +      "type": "object"
      +    },
      +    "budgetQuestionStatus": {
      +      "description": "Independent question-section availability; unavailable retains budgetQuestions=null.",
      +      "enum": [
      +        "ok",
      +        "unavailable"
      +      ],
      +      "type": "string"
      +    },
      +    "budgetQuestions": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {
      +              "allocationId": {},
      +              "budgetId": {},
      +              "occurredAt": {
      +                "type": "string"
      +              },
      +              "policy": {
      +                "description": "Recorded policy reference, normally moduleKey/policyKey/version/evidenceKey/snapshotHash. Historical fields remain unchanged."
      +              },
      +              "question": {
      +                "description": "Recorded question text; historical journal payloads are retained without reinterpretation."
      +              },
      +              "questionId": {
      +                "type": "string"
      +              },
      +              "sourceRoleKey": {},
      +              "sourceTitle": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "spendEventId": {},
      +              "targetRoleKey": {},
      +              "targetTitle": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              }
      +            },
      +            "required": [
      +              "questionId",
      +              "occurredAt",
      +              "sourceTitle",
      +              "targetTitle"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "budgets": {
      +      "description": "Exact reads contain only status and budgets, including archived frames; an absent ID returns an empty array.",
      +      "items": {
      +        "additionalProperties": false,
      +        "description": "General frame with current revision and recorded consumption. Null consumption is unknown; recorded zero does not attest full coverage. Archived frames retain history and cannot fund new spending.",
      +        "properties": {
      +          "budgetId": {
      +            "type": "string"
      +          },
      +          "currencyCode": {
      +            "description": "Stored currency; null means unknown, without an assumed EUR conversion.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "endsOn": {
      +            "type": "string"
      +          },
      +          "goal": {
      +            "type": "string"
      +          },
      +          "lifecycleStatus": {
      +            "enum": [
      +              "active",
      +              "archived"
      +            ],
      +            "type": "string"
      +          },
      +          "limitCents": {
      +            "type": "number"
      +          },
      +          "limitLabel": {
      +            "type": "string"
      +          },
      +          "periodLabel": {
      +            "type": "string"
      +          },
      +          "reachKey": {
      +            "type": "string"
      +          },
      +          "reachLabel": {
      +            "type": "string"
      +          },
      +          "revision": {
      +            "type": "string"
      +          },
      +          "spentCents": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "spentLabel": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "startsOn": {
      +            "type": "string"
      +          },
      +          "withinLimit": {
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "budgetId",
      +          "revision",
      +          "lifecycleStatus",
      +          "goal",
      +          "reachKey",
      +          "reachLabel",
      +          "startsOn",
      +          "endsOn",
      +          "currencyCode",
      +          "periodLabel",
      +          "limitLabel",
      +          "spentLabel",
      +          "limitCents",
      +          "spentCents",
      +          "withinLimit"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "expiresAt": {
      +      "description": "Original stored request deadline in private FULL proposal mode; reading never renews it.",
      +      "type": "string"
      +    },
      +    "pending": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "goal": {
      +              "type": "string"
      +            },
      +            "limitLabel": {
      +              "type": "string"
      +            },
      +            "periodLabel": {
      +              "type": "string"
      +            },
      +            "proposalId": {
      +              "type": "string"
      +            },
      +            "reachLabel": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "proposalId",
      +            "goal",
      +            "reachLabel",
      +            "limitLabel",
      +            "periodLabel"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Latest General request summary, not a human-card continuation."
      +    },
      +    "proposalId": {
      +      "type": "string"
      +    },
      +    "reason": {
      +      "type": "string"
      +    },
      +    "roleBudgetStatus": {
      +      "description": "Independent role-section availability; unavailable retains roleBudgets=null.",
      +      "enum": [
      +        "ok",
      +        "unavailable"
      +      ],
      +      "type": "string"
      +    },
      +    "roleBudgets": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "additionalProperties": false,
      +            "description": "Role share; consumption includes descendants. Unassigned historical spending remains in company totals.",
      +            "properties": {
      +              "allocationId": {
      +                "type": "string"
      +              },
      +              "budgetId": {
      +                "type": "string"
      +              },
      +              "coverage": {
      +                "const": "recorded_role_spend_only",
      +                "type": "string"
      +              },
      +              "endsOn": {
      +                "type": "string"
      +              },
      +              "limitCents": {
      +                "type": "number"
      +              },
      +              "limitLabel": {
      +                "type": "string"
      +              },
      +              "parentAllocationId": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "periodLabel": {
      +                "type": "string"
      +              },
      +              "reachKey": {
      +                "type": "string"
      +              },
      +              "reachLabel": {
      +                "type": "string"
      +              },
      +              "remainingCents": {
      +                "type": "number"
      +              },
      +              "remainingLabel": {
      +                "type": "string"
      +              },
      +              "roleKey": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "roleTitle": {
      +                "type": [
      +                  "string",
      +                  "null"
      +                ]
      +              },
      +              "spentCents": {
      +                "type": "number"
      +              },
      +              "spentLabel": {
      +                "type": "string"
      +              },
      +              "startsOn": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "allocationId",
      +              "budgetId",
      +              "parentAllocationId",
      +              "roleKey",
      +              "roleTitle",
      +              "reachKey",
      +              "reachLabel",
      +              "startsOn",
      +              "endsOn",
      +              "periodLabel",
      +              "limitCents",
      +              "spentCents",
      +              "remainingCents",
      +              "limitLabel",
      +              "spentLabel",
      +              "remainingLabel",
      +              "coverage"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "status": {
      +      "description": "ok confirms this read only. Request statuses belong to the private FULL proposalId mode, not current budget state.",
      +      "enum": [
      +        "ok",
      +        "unavailable",
      +        "pending_owner",
      +        "approved",
      +        "expired",
      +        "not_found"
      +      ],
      +      "type": "string"
      +    },
      +    "suggestion": {
      +      "anyOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "confirmed": {
      +              "const": false,
      +              "type": "boolean"
      +            },
      +            "label": {
      +              "type": "string"
      +            },
      +            "limitCents": {
      +              "type": "number"
      +            },
      +            "sentence": {
      +              "type": "string"
      +            },
      +            "status": {
      +              "const": "suggested",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "limitCents",
      +            "label",
      +            "sentence",
      +            "status",
      +            "confirmed"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Unconfirmed recommendation, never an active limit."
      +    }
      +  },
      +  "required": [
      +    "status"
      +  ],
      +  "type": "object"
      +}
  8. Changed1 schema field changed
    • addedInput schema / properties / budgetId
      Added value: +{
      +  "description": "Exact General budget read, including archived frames, with revision/lifecycleStatus. Missing ID returns budgets=[]. Omit for the active spending snapshot.",
      +  "maxLength": 160,
      +  "minLength": 1,
      +  "type": "string"
      +}
  9. Changed1 schema field changed
    • removedInput schema / properties / proposalId
      Removed value: -{
      -  "description": "Exact stored budget request ID to read its lifecycle status and expiry. An eligible pending request can restore its same card; no re-preparation. Requires operator:prepare plus existing variant-specific access; omit for the spending snapshot.",
      -  "format": "uuid",
      -  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -  "type": "string"
      -}
  10. Changed1 schema field changed
    • changedInput schema / properties / proposalId / description
      Previous value: -"Exact stored budget proposal ID to restore the same human card, without re-preparing. Requires operator:prepare plus existing variant-specific access; omitted reads the spending snapshot."New value: +"Exact stored budget request ID to read its lifecycle status and expiry. An eligible pending request can restore its same card; no re-preparation. Requires operator:prepare plus existing variant-specific access; omit for the spending snapshot."
  11. Changed1 schema field changed
    • addedInput schema / properties / proposalId
      Added value: +{
      +  "description": "Exact stored budget proposal ID to restore the same human card, without re-preparing. Requires operator:prepare plus existing variant-specific access; omitted reads the spending snapshot.",
      +  "format": "uuid",
      +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      +  "type": "string"
      +}
  12. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe, idempotent, closed-world read, and the description layers genuinely new behavioral facts on top: required scopes (accounting:read, operations:read), that consumption is not available cash, that missing historical revisions stay unknown, and explicit failure shapes ('missing frames yield budgets=[]; unavailable role data stays null; storage failures are errors'). It also warns that pages are live rather than frozen snapshots and that unrelated events still consume the pagination limit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the purpose, then uses two headed sections with short bullets, which is well-scannable for a seven-parameter tool with five mutually exclusive modes. A few lines restate what the schema already says (append order, limit defaults, archived semantics), so it is slightly longer than strictly necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering safety, the only remaining agent needs are mode selection, permissions, pagination discipline, and error/empty-state behavior — all of which the description supplies. It is complete for correctly invoking this tool without trial and error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the oneOf titles already name the argument combinations, so the baseline is 3. The description still adds value beyond the schema by explaining combination rules in intent terms ('Read its budgetId+allocationId together', 'match kind/allocationId within that parent's history') and by telling the agent to keep a continuation with its original selection and to seek frame pages by ID rather than date.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource set — 'Read budget definitions, spending limits and recorded consumption' — and immediately distinguishes itself from get_business_change. The four-question routing block makes clear it is a multi-mode read covering snapshot, frames, role shares, and history, which an agent can distinguish from every sibling without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit alternatives are named with selection criteria: get_business_change for cross-resource changes and approval recovery, create_business_budget for new frames, create_business_role_budget for new shares, and a prerequisite to read current state before update_business_budget/archive_business_budget. The 'Pick the question' section maps four concrete intents to exact argument combinations, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources