{download}`Download the template here <gep-x.md>`.

% Delete above this line

(gep-x)=

# GEP X — Template and Instructions

```{list-table}
- * Author
  * [First Author](<https://github.com/USERNAME>),
    [Second Author](<https://github.com/USERNAME>)
- * Status
  * <Draft | Active | Accepted | Provisional | Deferred | Rejected | Withdrawn | Final
    | Superseded>
- * Type
  *  <Standards Track | Process>
- * Created
  * <date created on, in yyyy-mm-dd format>
- * Resolution
  * One of [Accepted | Rejected |
    Withdrawn](<https://gettsim.zulipchat.com/#narrow/stream/309998-GEPs/topic/GEP.XXX>)
    once resolution has been found
```

## Abstract

The abstract should be a short description of what the GEP will achieve.

Note that the — in the title is an elongated dash, not - (a minus sign).

## Motivation and Scope

This section describes the need for the proposed change. It should describe the existing
problem, who it affects, what it is trying to solve, and why. This section should
explicitly address the scope of and key requirements for the proposed change.

## Usage and Impact

This section describes how users of GETTSIM will use features described in this GEP. It
should be comprised mainly of code examples that wouldn't be possible without acceptance
and implementation of this GEP, as well as the impact the proposed changes would have on
the ecosystem. This section should be written from the perspective of the users of
GETTSIM, and the benefits it will provide them; and as such, it should include
implementation details only if necessary to explain the functionality.

## Backward compatibility

This section describes the ways in which the GEP breaks backward compatibility.

The [#GEPs] stream will contain the GEP up to and including this section. This is to
avoid losing users who are not interested in implementation details and instead focus
the discussion on usage and impact of the intended features.

## Detailed description

This section should provide a detailed description of the proposed change. It should
include examples of how the new functionality would be used, intended use-cases and
pseudo-code illustrating its use.

## Related Work

This section should list relevant and/or similar technologies, possibly in other
libraries. It does not need to be comprehensive, just list the major examples of prior
and relevant art.

## Implementation

This section lists the major steps required to implement the GEP. Where possible, it
should be noted where one step is dependent on another, and which steps may be
optionally omitted. Where it makes sense, each step should include a link to related
pull requests as the implementation progresses.

Any pull requests or development branches containing work on this GEP should be linked
to from here. (A GEP does not need to be implemented in a single pull request if it
makes sense to implement it in discrete phases).

## Alternatives

If there were any alternative solutions to solving the same problem, they should be
discussed here, along with a justification for the chosen approach.

## Discussion

This section may just be a bullet list including links to any discussions regarding the
GEP:

- Links to relevant GitHub issues, pull requests.
- Discussion on Zulip

## References and Footnotes

## Copyright

This document has been placed in the public domain. [^id1]

[^id1]: Each GEP must either be explicitly labeled as placed in the public domain (see
    this GEP as an example) or licensed under the [Open Publication License].

[#geps]: https://gettsim.zulipchat.com/#narrow/stream/309998-GEPs
[open publication license]: https://www.opencontent.org/openpub/
