{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "ExperimentalFeatureListResponse",
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/ExperimentalFeature"
      }
    },
    "nextCursor": {
      "description": "Opaque cursor to pass to the next call to continue after the last item. If None, there are no more items to return.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "definitions": {
    "ExperimentalFeature": {
      "type": "object",
      "required": [
        "defaultEnabled",
        "enabled",
        "name",
        "stage"
      ],
      "properties": {
        "announcement": {
          "description": "Announcement copy shown to users when the feature is introduced. Null when this feature is not in beta.",
          "type": [
            "string",
            "null"
          ]
        },
        "defaultEnabled": {
          "description": "Whether this feature is enabled by default.",
          "type": "boolean"
        },
        "description": {
          "description": "Short summary describing what the feature does. Null when this feature is not in beta.",
          "type": [
            "string",
            "null"
          ]
        },
        "displayName": {
          "description": "User-facing display name shown in the experimental features UI. Null when this feature is not in beta.",
          "type": [
            "string",
            "null"
          ]
        },
        "enabled": {
          "description": "Whether this feature is currently enabled in the loaded config.",
          "type": "boolean"
        },
        "name": {
          "description": "Stable key used in config.toml and CLI flag toggles.",
          "type": "string"
        },
        "stage": {
          "description": "Lifecycle stage of this feature flag.",
          "allOf": [
            {
              "$ref": "#/definitions/ExperimentalFeatureStage"
            }
          ]
        }
      }
    },
    "ExperimentalFeatureStage": {
      "oneOf": [
        {
          "description": "Feature is available for user testing and feedback.",
          "type": "string",
          "enum": [
            "beta"
          ]
        },
        {
          "description": "Feature is still being built and not ready for broad use.",
          "type": "string",
          "enum": [
            "underDevelopment"
          ]
        },
        {
          "description": "Feature is production-ready.",
          "type": "string",
          "enum": [
            "stable"
          ]
        },
        {
          "description": "Feature is deprecated and should be avoided.",
          "type": "string",
          "enum": [
            "deprecated"
          ]
        },
        {
          "description": "Feature flag is retained only for backwards compatibility.",
          "type": "string",
          "enum": [
            "removed"
          ]
        }
      ]
    }
  }
}