title: 'Feature Proposal: '
labels: ['feature: proposal']
body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking the time to propose a feature! Please fill this template out as completely as possible.
          * Please check to see if there's an existing issue or discussion and, if so, reply there instead.
          * Please provide as much detail as you can.

        NOTE: We will likely move at least some of these discussions to a more formal RFC process. For reference examples, see:
          * https://github.com/video-dev/media-ui-extensions
          * https://github.com/lit/rfcs
  - type: checkboxes
    attributes:
      label: Is there an existing issue for this?
      description: Please search to see if an issue already exists for the bug you encountered.
      options:
        - label: I have searched the existing issues
          required: true
  - type: dropdown
    id: packages
    validations:
      required: true
    attributes:
      label: Which package(s) does this apply to? Select all that apply
      multiple: true
      options:
        - Core (@videojs/core)
        - Icons (@videojs/icons)
        - HTML (@videojs/html)
        - Media (@videojs/media)
        - React (@videojs/react)
        - Utils (@videojs/utils)
        - Other (describe)
  - type: textarea
    id: summary
    attributes:
      label: Summary
      description: One paragraph explanation of the feature.
    validations:
      required: true
  - type: textarea
    id: motivation
    attributes:
      label: Motivation
      description: Why are we doing this? What use cases does it support? What is the expected outcome? Consider listing any specific Goals and Non-Goals as sub-sections.
    validations:
      required: true
  - type: textarea
    id: guide-explanation
    validations:
      required: true
    attributes:
      label: Guide Level Explanation
      description: |
        Explain the proposal as if it was already included in the API and you were teaching it to another developer. That generally means:
          * Introducing new named concepts.
          * Explaining the feature largely in terms of examples.
          * If applicable, provide sample error messages.
  - type: textarea
    id: reference-explanation
    validations:
      required: true
    attributes:
      label: Reference Level Explanation
      description: |
        This is the technical portion. Explain the design in sufficient detail that:
          * Its interaction with other features is clear.
          * It is reasonably clear how the feature would be implemented.
          * Corner cases are dissected by example.

        The section should return to the examples given in the previous section, and explain more fully how the detailed proposal makes those examples work.
  - type: textarea
    id: drawbacks
    validations:
      required: true
    attributes:
      label: Drawbacks
      description: Why should we *not* do this?
  - type: textarea
    id: rationale-and-alternatives
    validations:
      required: true
    attributes:
      label: Rationale and alternatives
      description: |
        * Why is this design the best in the space of possible designs?
        * What other designs have been considered and what is the rationale for not choosing them?
        * What is the impact of not doing this?
  - type: textarea
    id: prior-art
    validations:
      required: true
    attributes:
      label: Prior art
      description: |
        Discuss prior art, both the good and the bad, in relation to this proposal.
        A few examples of what this can include are:

        * Does this feature already exist in a player?
        * Does this feature have an equivalent in other component frameworks, particularly ones similar to our architecture?
        * Has this feature been discussed in a blog post, paper, or presentation?

        This section is intended to encourage you as an author to think about the lessons from other players, and provide readers of your proposal with a fuller picture.
        If there is no prior art, that is fine - your ideas are interesting to us whether they are brand new or if it is an adaptation from other languages.
  - type: textarea
    id: unresolved-questions
    validations:
      required: true
    attributes:
      label: Unresolved questions
      description: |
        * What parts of the design do you expect to resolve through the proposal process before this gets merged?
        * What parts of the design do you expect to resolve through the implementation of this feature before stabilization?
        * What related issues do you consider out of scope for this proposal that could be addressed in the future independently of the solution that comes out of this proposal?
