name: Feature Request
description: Suggest a new feature or enhancement
labels: ["enhancement", "triage"]
body:
  - type: markdown
    attributes:
      value: |
        Thank you for your feature suggestion. Please provide detailed information.
        Feature requests without sufficient detail may be closed.

  - type: checkboxes
    id: checklist
    attributes:
      label: Pre-submission Checklist
      description: Please confirm the following before submitting
      options:
        - label: I have searched existing issues and this feature has not been requested
          required: true
        - label: This feature aligns with the Trojan protocol specification or extends it reasonably
          required: true

  - type: dropdown
    id: category
    attributes:
      label: Feature Category
      options:
        - Performance
        - Security
        - Authentication
        - Configuration
        - CLI/UX
        - Monitoring/Metrics
        - Protocol Extension
        - Platform Support
        - Documentation
        - Other
    validations:
      required: true

  - type: textarea
    id: problem
    attributes:
      label: Problem Statement
      description: What problem does this feature solve? Why is it needed?
      placeholder: I'm always frustrated when...
    validations:
      required: true

  - type: textarea
    id: solution
    attributes:
      label: Proposed Solution
      description: Describe your proposed solution in detail
      placeholder: |
        I would like to see...

        Example usage:
        ```
        trojan server --new-flag value
        ```
    validations:
      required: true

  - type: textarea
    id: alternatives
    attributes:
      label: Alternatives Considered
      description: What alternatives have you considered?
      placeholder: I have also considered...
    validations:
      required: true

  - type: dropdown
    id: breaking
    attributes:
      label: Breaking Change
      description: Would this feature require breaking changes?
      options:
        - "No"
        - "Yes - config format change"
        - "Yes - CLI interface change"
        - "Yes - protocol change"
        - "Unsure"
    validations:
      required: true

  - type: dropdown
    id: contribution
    attributes:
      label: Contribution
      description: Are you willing to contribute this feature?
      options:
        - "Yes, I can submit a PR"
        - "Yes, with guidance"
        - "No, but I can help test"
        - "No"
    validations:
      required: true

  - type: textarea
    id: additional
    attributes:
      label: Additional Context
      description: Any other context, mockups, or references
    validations:
      required: false
