# Contributing to Game Panel
 
This project accepts contributions. In order to contribute, you should
pay attention to a few things:
 
1. your code must follow the coding style rules
2. your code must be unit-tested
3. your code must be documented
4. your work must be signed (see below)
5. you may contribute through GitHub Pull Requests
 
# Coding and documentation Style
 
All contributions should be written in clear English. This applies to code,
comments, documentation, pull request descriptions, commit messages, and
user-facing strings unless a feature explicitly targets another locale.

- Follow the existing project structure, naming, and patterns before adding new
  abstractions.
- Keep changes focused and readable. Avoid unrelated refactors or formatting
  churn in the same pull request.
- Respect the formatting tools already used by the project.
- Use descriptive names: `camelCase` for variables and functions,
  `PascalCase` for components and types, and `UPPER_SNAKE_CASE` for constants
  and environment variables.
- Use TypeScript types at module boundaries and avoid `any` unless it is
  genuinely necessary.
- Comments should explain intent, constraints, or temporary workarounds, not
  restate obvious code.
- Update documentation when changing setup, scripts, environment variables, or
  user-visible behavior.
- Before submitting, make sure backend changes build, frontend changes lint and
  build, and document any manual validation done when no automated test exists.
 
# Submitting Modifications
 
The contributions should be submitted through Github Pull Requests
and follow the DCO which is defined below.
 
# Licensing for new files
 
Game Panel is licensed under the Apache License 2.0. Anything
contributed to Game Panel must be released under this license.
 
When introducing a new file into the project, please make sure it has a
copyright header making clear under which license it's being released.
 
# Developer Certificate of Origin (DCO)
 
To improve tracking of contributions to this project we will use a
process modeled on the modified DCO 1.1 and use a "sign-off" procedure
on patches that are being emailed around or contributed in any other
way.
 
The sign-off is a simple line at the end of the explanation for the
patch, which certifies that you wrote it or otherwise have the right
to pass it on as an open-source patch.  The rules are pretty simple:
if you can certify the below:
 
By making a contribution to this project, I certify that:
 
(a) The contribution was created in whole or in part by me and I have
    the right to submit it under the open source license indicated in
    the file; or
 
(b) The contribution is based upon previous work that, to the best of
    my knowledge, is covered under an appropriate open source License
    and I have the right under that license to submit that work with
    modifications, whether created in whole or in part by me, under
    the same open source license (unless I am permitted to submit
    under a different license), as indicated in the file; or
 
(c) The contribution was provided directly to me by some other person
    who certified (a), (b) or (c) and I have not modified it.
 
(d) The contribution is made free of any other party's intellectual
    property claims or rights.
 
(e) I understand and agree that this project and the contribution are
    public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.
 
 
then you just add a line saying
 
    Signed-off-by: Random J Developer <random@example.org>
 
using your real name (sorry, no pseudonyms or anonymous contributions.)
