# RoboCo Contributor License Agreement

Thank you for your interest in contributing to RoboCo (the "Project"), maintained by Renzo Franceschini (the "Maintainer").

This Contributor License Agreement ("Agreement") documents the rights granted by contributors to the Maintainer. It applies to individual contributors; an entity-level version is provided in the [Entity CLA](#entity-cla) section below. By signing this Agreement (see [How to sign](#how-to-sign)), You accept and agree to its terms for Your past, present, and future Contributions to the Project.

## 1. Definitions

- **"You"** (or **"Your"**) means the individual or legal entity that signs this Agreement.
- **"Contribution"** means any original work of authorship, including any modifications or additions to existing work, that You intentionally submit to the Project in any form, including but not limited to source code, object code, documentation, and configuration. It includes any Contribution You have submitted prior to signing this Agreement.
- **"Submit"** means any form of communication sent to the Project, including pull requests, patches, issues, and comments, but excluding communication conspicuously marked "Not a Contribution".
- **"Maintainer"** means Renzo Franceschini **and the Maintainer's successors and assigns**, including any legal entity that the Maintainer may later form or transfer the Project to.

## 2. Copyright license grant

You retain ownership of the copyright in Your Contribution. Subject to the terms of this Agreement, You hereby grant to the Maintainer and to recipients of software distributed by the Maintainer a **perpetual, worldwide, non-exclusive, royalty-free, irrevocable** copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contribution and such derivative works.

You further grant the Maintainer the right to **license and re-license Your Contribution under any license terms, including the AGPL-3.0, other open-source licenses, and proprietary or commercial license terms**, and to sublicense these rights through multiple tiers of sublicensees. You acknowledge that this right is what enables the Project to be offered under dual-licensing or commercial terms in the future.

For clarity, this grant is **in addition to** — and does not limit — the rights You grant to the public when Your Contribution is distributed as part of the Project under its then-current open-source license (currently AGPL-3.0).

## 3. Patent license grant

Subject to the terms of this Agreement, You grant to the Maintainer and to recipients of software distributed by the Maintainer a perpetual, worldwide, non-exclusive, royalty-free, irrevocable (except as stated below) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer Your Contribution, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution alone or by combination of Your Contribution with the Project. If any entity institutes patent litigation alleging that Your Contribution, or the Project to which You have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Agreement terminate.

## 4. Moral rights

To the fullest extent permitted by applicable law, You waive, and agree not to assert against the Maintainer or its licensees, any moral rights, rights of attribution or integrity, or similar rights You may have in Your Contribution that would otherwise restrict the exercise of the rights granted in Sections 2 and 3. Where such rights cannot be waived under applicable law, You agree not to enforce them against the Maintainer, its licensees, or downstream recipients.

## 5. Third-party materials

If You wish to submit work that is not Your original creation, You may submit it to the Project separately from any Contribution, identifying the complete details of its source and of any license or other restriction (including related patents, trademarks, and license agreements) of which You are personally aware, and conspicuously marking the work as "Submitted on behalf of a third party: [named here]". Such submissions are not Contributions under this Agreement and are not covered by the grants above.

## 6. Your representations

You represent that:

1. Each of Your Contributions is Your original creation, or You have sufficient rights to grant the licenses in this Agreement.
2. You are legally entitled to grant the above licenses. If Your employer has rights to intellectual property You create, You represent that You have received permission to make the Contributions on behalf of that employer, or that Your employer has waived such rights for Your Contributions.
3. Your Contribution does not, to Your knowledge, violate any third party's copyrights, trademarks, patents, or other intellectual property rights.
4. You will notify the Maintainer of any facts or circumstances of which You become aware that would make these representations inaccurate.

## 7. Disclaimer

Unless required by applicable law or agreed to in writing, You provide Your Contributions on an "AS IS" basis, without warranties or conditions of any kind, either express or implied.

## 8. No obligation

The Maintainer is under no obligation to accept or use any Contribution. The decision to include a Contribution in the Project is at the Maintainer's sole discretion.

## 9. Governing law

This Agreement is governed by and construed in accordance with the laws of **Italy**, without regard to its conflict-of-law provisions. Any dispute arising out of or relating to this Agreement shall be subject to the exclusive jurisdiction of the competent courts of Italy.

## 10. Entire agreement

This Agreement is the entire agreement between You and the Maintainer concerning Your Contributions and supersedes any prior agreement on that subject. If any provision is held unenforceable, the remaining provisions remain in full force, and the unenforceable provision will be enforced to the maximum extent permitted by law.

---

## Entity CLA

If You are signing on behalf of a legal entity (e.g., Your employer), the defined term "You" includes that entity and all entities that control, are controlled by, or are under common control with it. The individual signing represents that they are authorized to bind the entity to this Agreement. All other terms above apply unchanged.

---

## How to sign

Signing is automated through the **CLA Assistant** bot:

1. Open a pull request against the Project.
2. The bot will comment on your PR with a link to this Agreement.
3. Confirm your agreement by posting the exact comment the bot requests (for example: `I have read the CLA Document and I hereby sign the CLA`).

Your GitHub username and the signing timestamp are recorded so the signature can be verified on future contributions. This is a one-time action.
