{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/Plan",
  "title": "Plan",
  "type": "object",
  "description": "Represents a billing plan template defined in the Braintree Control Panel. Plans specify the recurring price, currency, billing frequency, and optional trial period that subscriptions inherit.",
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique identifier for the plan used when creating subscriptions."
    },
    "name": {
      "type": "string",
      "description": "Human-readable name for the plan."
    },
    "description": {
      "type": "string",
      "description": "Detailed description of the plan."
    },
    "price": {
      "type": "string",
      "description": "Base price per billing cycle as a decimal string.",
      "example": "9.99"
    },
    "currency_iso_code": {
      "type": "string",
      "description": "ISO 4217 currency code for the plan price.",
      "example": "USD"
    },
    "billing_frequency": {
      "type": "integer",
      "description": "How often the plan bills, in units of billing_frequency_unit. For example, 1 with billing_frequency_unit \"month\" means monthly.",
      "minimum": 1
    },
    "number_of_billing_cycles": {
      "type": "integer",
      "description": "Default number of billing cycles. Null means the plan continues indefinitely."
    },
    "trial_period": {
      "type": "boolean",
      "description": "Whether subscriptions to this plan include a trial period by default."
    },
    "trial_duration": {
      "type": "integer",
      "description": "Default trial duration for subscriptions to this plan."
    },
    "trial_duration_unit": {
      "type": "string",
      "description": "Unit for the default trial duration.",
      "enum": [
        "day",
        "month"
      ]
    },
    "add_ons": {
      "type": "array",
      "description": "Add-ons automatically applied to subscriptions using this plan.",
      "items": {
        "$ref": "#/components/schemas/AppliedModification"
      }
    },
    "discounts": {
      "type": "array",
      "description": "Discounts automatically applied to subscriptions using this plan.",
      "items": {
        "$ref": "#/components/schemas/AppliedModification"
      }
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the plan was created."
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "Timestamp when the plan was last updated."
    }
  }
}