changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$defs": {
+ "ActionCapability": {
+ "description": "One entry in a resource's `_actions` block: may the caller perform it, and if not, why.",
+ "properties": {
+ "allowed": {
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "reason": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "ProjectResponse": {
+ "description": "Public representation of a project, returned by `GET /api/v1/orgs/{org}/projects` (list),\n`GET .../projects/{project}` (detail), and the body of a successful create/update. Drops\nthe dashboard-only nested `Environments` collection from ProjectDto — the\npublic API surfaces environments via their own endpoint (Task 6), not embedded here.\nUpdatedAt is only populated from ProjectDto (the detail/create\nshape); ProjectListItemDto doesn't carry it, so list rows leave it `null`.\nDefaultFlagLifetimeDays is the project's default flag lifetime in days, or null (#3194).",
+ "properties": {
+ "_actions": {
+ "additionalProperties": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ActionCapability"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": "Capability hints: which operations the authenticated caller may perform on this resource, each with allowed + optional reason. Computed from the caller's role and the resource's state. Injected at runtime; safe to ignore. Present only on top-level resource responses — nested occurrences (e.g. a rule inside a targeting-config response) do not carry it.",
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "createdAt": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "defaultFlagLifetimeDays": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "description": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "id": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "key": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "name": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "updatedAt": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ }
+ },
+ "description": "A page of results plus an opaque cursor for the next page, or null when this is the last\npage. Wire keys are frozen: `items` (already lowercase under the camelCase policy) and\n`next_cursor` (pinned explicitly — the policy alone would emit `nextCursor`).",
+ "properties": {
+ "_actions": {
+ "additionalProperties": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ActionCapability"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "description": "Capability hints: which operations the authenticated caller may perform on this resource, each with allowed + optional reason. Computed from the caller's role and the resource's state. Injected at runtime; safe to ignore. Present only on top-level resource responses — nested occurrences (e.g. a rule inside a targeting-config response) do not carry it.",
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "items": {
+ "items": {
+ "anyOf": [
+ {
+ "$ref": "#/$defs/ProjectResponse"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "type": [
+ "array",
+ "null"
+ ]
+ },
+ "next_cursor": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+}