diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 72e20d5..6e70e49 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -34,6 +34,8 @@ jobs:
persist-credentials: false
- name: Validate public-readiness contracts
run: bash tests/scripts/public-readiness-contract-tests.sh
+ - name: Validate MPL licensing contracts
+ run: bash tests/scripts/licensing-contract-tests.sh
- name: Validate website localization contracts
run: bash tests/scripts/website-localization-contract-tests.sh
- name: Validate public Wiki contracts
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 37263e2..c575c3f 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -4,9 +4,9 @@ Thank you for helping make HitTheKit more reliable, accessible, and useful.
Before participating, read the [Code of Conduct](CODE_OF_CONDUCT.md),
[support guide](SUPPORT.md), and [project governance](GOVERNANCE.md).
-HitTheKit is intended to remain available under both an open-source GPL license
-and a possible separate commercial-license path. That model requires clear
-copyright permissions for every substantial contribution.
+HitTheKit is intended to remain available under both the open-source MPL-2.0
+Community license and a possible separate commercial-license path. That model
+requires clear copyright permissions for every substantial contribution.
## Current contribution policy
diff --git a/FUNDING.md b/FUNDING.md
index 3e36c52..b06ed7f 100644
--- a/FUNDING.md
+++ b/FUNDING.md
@@ -54,7 +54,7 @@ help without creating a recurring commitment:
accessibility, and focused development time a meaningful one-time boost.
Custom monthly and one-time support remains available through GitHub Sponsors.
-Rewards are digital, low-maintenance, privacy-conscious and independent of GPL
+Rewards are digital, low-maintenance, privacy-conscious and independent of MPL
rights. Sponsorship does not purchase guaranteed features, roadmap control,
private GoMyRO access, commercial-song rights or a commercial HitTheKit license.
diff --git a/LICENSE b/LICENSE
index f288702..d0a1fa1 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,674 +1,373 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc.
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- Copyright (C)
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-.
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+ means each individual or legal entity that creates, contributes to
+ the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+ means the combination of the Contributions of others (if any) used
+ by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+ means Source Code Form to which the initial Contributor has attached
+ the notice in Exhibit A, the Executable Form of such Source Code
+ Form, and Modifications of such Source Code Form, in each case
+ including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ (a) that the initial Contributor has attached the notice described
+ in Exhibit B to the Covered Software; or
+
+ (b) that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the
+ terms of a Secondary License.
+
+1.6. "Executable Form"
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+ means a work that combines Covered Software with other material, in
+ a separate file or files, that is not Covered Software.
+
+1.8. "License"
+ means this document.
+
+1.9. "Licensable"
+ means having the right to grant, to the maximum extent possible,
+ whether at the time of the initial grant or subsequently, any and
+ all of the rights conveyed by this License.
+
+1.10. "Modifications"
+ means any of the following:
+
+ (a) any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered
+ Software; or
+
+ (b) any new file in Source Code Form that contains any Covered
+ Software.
+
+1.11. "Patent Claims" of a Contributor
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the
+ License, by the making, using, selling, offering for sale, having
+ made, import, or transfer of either its Contributions or its
+ Contributor Version.
+
+1.12. "Secondary License"
+ means either the GNU General Public License, Version 2.0, the GNU
+ Lesser General Public License, Version 2.1, the GNU Affero General
+ Public License, Version 3.0, or any later versions of those
+ licenses.
+
+1.13. "Source Code Form"
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that
+ controls, is controlled by, or is under common control with You. For
+ purposes of this definition, "control" means (a) the power, direct
+ or indirect, to cause the direction or management of such entity,
+ whether by contract or otherwise, or (b) ownership of more than
+ fifty percent (50%) of the outstanding shares or beneficial
+ ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+ for sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+ or
+
+(b) for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+ Form, as described in Section 3.1, and You must inform recipients of
+ the Executable Form how they can obtain a copy of such Source Code
+ Form by reasonable means in a timely manner, at a charge no more
+ than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter
+ the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+* *
+* 6. Disclaimer of Warranty *
+* ------------------------- *
+* *
+* Covered Software is provided under this License on an "as is" *
+* basis, without warranty of any kind, either expressed, implied, or *
+* statutory, including, without limitation, warranties that the *
+* Covered Software is free of defects, merchantable, fit for a *
+* particular purpose or non-infringing. The entire risk as to the *
+* quality and performance of the Covered Software is with You. *
+* Should any Covered Software prove defective in any respect, You *
+* (not any Contributor) assume the cost of any necessary servicing, *
+* repair, or correction. This disclaimer of warranty constitutes an *
+* essential part of this License. No use of any Covered Software is *
+* authorized under this License except under this disclaimer. *
+* *
+************************************************************************
+
+************************************************************************
+* *
+* 7. Limitation of Liability *
+* -------------------------- *
+* *
+* Under no circumstances and under no legal theory, whether tort *
+* (including negligence), contract, or otherwise, shall any *
+* Contributor, or anyone who distributes Covered Software as *
+* permitted above, be liable to You for any direct, indirect, *
+* special, incidental, or consequential damages of any character *
+* including, without limitation, damages for lost profits, loss of *
+* goodwill, work stoppage, computer failure or malfunction, or any *
+* and all other commercial damages or losses, even if such party *
+* shall have been informed of the possibility of such damages. This *
+* limitation of liability shall not apply to liability for death or *
+* personal injury resulting from such party's negligence to the *
+* extent applicable law prohibits such limitation. Some *
+* jurisdictions do not allow the exclusion or limitation of *
+* incidental or consequential damages, so this exclusion and *
+* limitation may not apply to You. *
+* *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+ This Source Code Form is subject to the terms of the Mozilla Public
+ License, v. 2.0. If a copy of the MPL was not distributed with this
+ file, You can obtain one at https://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+ This Source Code Form is "Incompatible With Secondary Licenses", as
+ defined by the Mozilla Public License, v. 2.0.
diff --git a/LICENSING.md b/LICENSING.md
index efd440c..82f396b 100644
--- a/LICENSING.md
+++ b/LICENSING.md
@@ -1,66 +1,68 @@
# HitTheKit Licensing
-HitTheKit is intended to be available under a dual-licensing model.
-
-This repository currently grants the Community license under version 3 of the
-GNU General Public License. No project-specific "or any later version" grant
-was found during the licensing audit, so the current grant is treated as
-GPL-3.0-only. The complete, unmodified license text is in [`LICENSE`](LICENSE).
+HitTheKit uses a dual-licensing model.
## Community license
-The Community edition may be used, studied, modified, shared, and used
-commercially under the GNU General Public License version 3, provided that the
-applicable GPL obligations are respected.
+Unless a file or directory says otherwise, original HitTheKit source code is
+available under the [Mozilla Public License 2.0](LICENSE) (MPL-2.0).
+Third-party components, Unity packages, generated engine material, trademarks,
+and content retain their own terms; see
+[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md), [NOTICE](NOTICE), and
+[TRADEMARKS.md](TRADEMARKS.md).
+
+The MPL permits personal, educational, community, and commercial use. When
+MPL-covered source files are modified and distributed, those covered files
+must remain available under the MPL. A larger work may contain separate files
+under other terms, provided the MPL requirements for covered files are met.
+The full license text controls; this overview does not replace it.
+
+## Unity players and other executable distributions
-In particular, conveying modified or combined covered works may require
-providing corresponding source code and licensing the covered work under the
-GPL. Consult the full GPL text for the actual terms; this overview does not
-replace it.
+MPL-2.0 permits covered HitTheKit code to be distributed in a larger executable
+under different terms while preserving recipients' rights to the MPL-covered
+source. This removes the former GPL whole-work copyleft concern for a player
+that incorporates the proprietary Unity Runtime.
+
+It does not itself approve a particular binary release. Every macOS or Windows
+candidate must still satisfy the applicable Unity terms, dependency notices,
+asset and content rights, signing requirements, platform testing, and the
+project release checklist. Unity and third-party technology are not relicensed
+by HitTheKit.
## Commercial license
-A separate commercial license may be available for organizations or
-individuals that want to use HitTheKit under terms incompatible with the GPL,
-including use within proprietary or closed-source products. Possible use cases
-include:
+A separate commercial license may be available to organizations or individuals
+that need terms different from MPL-2.0, including:
-- proprietary desktop or mobile applications;
-- closed-source training platforms;
-- commercial hardware integrations;
-- bundled products;
-- private-label or white-label distributions; and
-- redistribution without GPL copyleft obligations for HitTheKit code.
+- keeping modifications to MPL-covered HitTheKit files proprietary;
+- proprietary hardware or software integrations;
+- bundled, private-label, or white-label distribution; or
+- separately negotiated support, warranty, or maintenance terms.
-The commercial license is not automatically granted by this repository.
-Commercial terms require a separate written agreement with a copyright holder
-who has authority to license the relevant code. Such an agreement covers only
-the rights that licensor controls; it does not replace licenses or commercial
-terms for Unity or any other third-party component.
+The commercial license is not automatically granted and is not required merely
+because an activity generates revenue. It requires a separate written agreement
+with a copyright holder authorized to license the relevant code. It cannot
+replace Unity's terms or the licenses of third-party components.
-## Personal, educational, and commercial use
+## Existing GPL copies
-Personal, educational, and community use is welcome under the GPL Community
-license. No commercial license is required merely because an activity
-generates revenue, provided that the use and any distribution comply with the
-GPL.
+Copies validly received under GPL-3.0-only before the MPL relicensing remain
+available to their recipients under GPL-3.0-only. The MPL change does not revoke
+rights already granted. A recipient must use the license offered for the exact
+copy or version they received.
## Contributions
-Contributions require separate governance rules so that the project can remain
-eligible for dual licensing. See [`CONTRIBUTING.md`](CONTRIBUTING.md).
+Future contribution terms must preserve a clear rights chain for both the MPL
+Community edition and any separate commercial licensing. Until that mechanism
+has been reviewed and adopted, follow [CONTRIBUTING.md](CONTRIBUTING.md).
## No trademark permission
-The software license does not automatically grant permission to use the
-HitTheKit name, logo, or branding to market a modified or competing product.
-Trademark rights, if any, are separate from copyright licensing. See
-[`TRADEMARKS.md`](TRADEMARKS.md).
-
-## Contact
-
-Commercial licensing inquiries: open a private inquiry with the copyright
-holder. A dedicated contact address will be published later.
+MPL-2.0 does not grant permission to use the HitTheKit name, logo, or branding
+to market a modified or competing product. Truthful attribution remains
+permitted. See [TRADEMARKS.md](TRADEMARKS.md).
This document is a project licensing overview, not legal advice and not a
-substitute for the full GPL text or a signed commercial agreement.
+substitute for the MPL text or a signed commercial agreement.
diff --git a/NOTICE b/NOTICE
index 06d7692..dd79329 100644
--- a/NOTICE
+++ b/NOTICE
@@ -3,18 +3,18 @@ HitTheKit public source notice
Copyright (c) 2026 HitTheKit contributors and the respective rightsholders
identified in COPYRIGHT.md.
-Original HitTheKit source code is made available under GPL-3.0-only. See
-LICENSE. Third-party software and tools retain their own licenses and notices;
-see THIRD_PARTY_NOTICES.md.
+Unless stated otherwise, original HitTheKit source code is made available under
+MPL-2.0. See LICENSE and LICENSING.md. Third-party software and tools retain
+their own licenses and notices; see THIRD_PARTY_NOTICES.md.
This source repository contains no commercial recordings, stems, MIDI files,
lyrics, transcriptions, album artwork, or download links. Player-owned local
content is outside the repository and remains the player's responsibility.
-The initial public publication is source-and-website only. No Unity player
-binary is approved for public distribution. Unity-runtime redistribution and
-the proposed separate commercial-license path remain subject to qualified
-legal review and are not granted by this notice.
+No Unity player binary is approved merely by this notice. Each binary candidate
+must independently pass the Unity terms, dependency, provenance, signing,
+platform-testing, and release gates. The proposed separate commercial-license
+path requires a written agreement and is not granted by this notice.
HitTheKit is independent and is not sponsored, endorsed, certified by, or
affiliated with Unity Technologies, Apple Inc., or referenced hardware
diff --git a/README.md b/README.md
index 3181fbc..ba8b04f 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
-
+
@@ -176,8 +176,9 @@ hardware result, improve documentation or pick a
## Licensing and content boundary
Original project code is licensed under
-[GPL-3.0-only](LICENSE). A possible separate commercial-license path is under
-preparation and remains subject to legal review; see [LICENSING.md](LICENSING.md).
+[MPL-2.0](LICENSE). A separate commercial-license path remains available only
+through a written agreement; see [LICENSING.md](LICENSING.md). Existing copies
+previously received under GPL-3.0-only retain those rights.
The public repository does not include commercial songs, recordings, charts,
lyrics or artwork. Third-party names describe compatibility only. HitTheKit is
diff --git a/ROADMAP.md b/ROADMAP.md
index 81e9dfb..c142fa0 100644
--- a/ROADMAP.md
+++ b/ROADMAP.md
@@ -15,8 +15,8 @@ documented, and represented honestly in the release notes.
reduced motion;
- publish screenshots, checksums, known limitations, and reproducible release
notes from the exact candidate commit; and
-- complete professional review of GPL, Unity distribution, contribution, and
- commercial-licensing terms.
+- validate the MPL-based Unity distribution, contribution, and
+ commercial-licensing terms for the exact release candidate.
## Next: broader compatibility and confidence
diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md
index 6f99ee6..f47116a 100644
--- a/THIRD_PARTY_NOTICES.md
+++ b/THIRD_PARTY_NOTICES.md
@@ -8,7 +8,7 @@ provenance is recorded separately in
| Component | Version | Declared license or terms | Role | Redistributed by this repository? | Review status / action |
| --- | --- | --- | --- | --- | --- |
-| Unity Editor and built-in Unity modules | Editor 6000.5.6f1; modules 1.0.0 | Unity Terms of Service and Unity Editor Software Terms | Authoring, compilation, runtime APIs | Editor and module source/binaries are not tracked; a future player build may contain Unity runtime components | **Legal review required:** confirm current plan eligibility, player redistribution, GPL interaction, and separate Unity permission for embedded systems. |
+| Unity Editor and built-in Unity modules | Editor 6000.5.6f1; modules 1.0.0 | Unity Terms of Service and Unity Editor Software Terms | Authoring, compilation, runtime APIs | Editor and module source/binaries are not tracked; a future player build may contain Unity runtime components | Confirm current plan eligibility, player redistribution terms, required notices, and separate Unity permission for embedded systems for every candidate. MPL-2.0 does not relicense Unity. |
| Unity Test Framework | 1.7.0 | Unity Companion License v1.4 | EditMode and PlayMode testing | Package source is resolved by Unity Package Manager, not tracked or intended for player distribution | Preserve the package license and copyright notice if substantial package portions are redistributed. |
| Unity Custom NUnit (`com.unity.ext.nunit`) | 2.1.0, based on NUnit 3.5 | Unity Package Distribution License v2.1; bundled NUnit portions under MIT | Transitive Unity test dependency | Resolved by Unity Package Manager, not tracked or intended for player distribution | Preserve Unity package terms and the bundled NUnit MIT notice when applicable. |
| .NET SDK | 8.0.411 requested by `global.json` | MIT plus the distribution's third-party notices | Build tooling | No | Build tool only; follow the license and notices of the installed distribution. |
@@ -21,7 +21,7 @@ provenance is recorded separately in
## Verified sources
-- GNU GPL version 3:
+- Mozilla Public License 2.0:
- Unity terms:
- Unity Companion License:
- Unity Package Distribution License:
diff --git a/TRADEMARKS.md b/TRADEMARKS.md
index de7ab9a..84cc21f 100644
--- a/TRADEMARKS.md
+++ b/TRADEMARKS.md
@@ -1,10 +1,10 @@
# HitTheKit Name and Branding
-The GPL license for HitTheKit source code does not itself grant trademark
+The MPL-2.0 license for HitTheKit source code does not itself grant trademark
rights in the HitTheKit name, logo, or other project branding. No claim that a
mark is registered is made here.
-The GPL permits recipients to copy, modify, and distribute covered code under
+MPL-2.0 permits recipients to copy, modify, and distribute covered code under
its terms. A fork may identify the code it came from in a truthful, descriptive
way, but should not imply sponsorship, endorsement, certification, or official
status that has not been granted.
@@ -14,7 +14,7 @@ brand for a modified, competing, private-label, or commercial product. Any
separate branding permission should be documented in writing.
This guidance is provisional and requires legal review. It does not restrict
-the copyright permissions granted by the GPL.
+the copyright permissions granted by MPL-2.0.
## Third-party names
diff --git a/docs/README.md b/docs/README.md
index aa9c6ae..58ebcea 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -70,7 +70,8 @@ without creating an unreviewed second source of truth.
- [Asset provenance](legal/ASSET_PROVENANCE.md)
- [Dual-licensing readiness report](legal/dual-licensing-readiness-report.md)
-- [Dual-licensing decision record](governance/dual-licensing-decision.md)
+- [MPL Community license decision](governance/mpl-community-license-decision.md)
+- [Historical GPL dual-licensing proposal](governance/dual-licensing-decision.md)
- [Commercial-license draft](legal/COMMERCIAL-LICENSE-DRAFT.md)
- [Project governance](../GOVERNANCE.md)
- [License](../LICENSE)
diff --git a/docs/development/macos-playtest-package.md b/docs/development/macos-playtest-package.md
index 01c0588..843985d 100644
--- a/docs/development/macos-playtest-package.md
+++ b/docs/development/macos-playtest-package.md
@@ -14,7 +14,9 @@ Build and package it with Unity `6000.5.6f1`:
The script builds the native plug-in, synchronizes Core, invokes the checked-in
Unity build method, embeds the arm64 plug-in, applies an ad-hoc signature,
verifies the bundle, and creates a resource-fork-safe ZIP under
-`artifacts/game/`.
+`artifacts/game/`. The application and ZIP include `Legal/` with the MPL text,
+project and third-party notices, and `SOURCE-CODE.txt`, which identifies the
+exact public Git revision corresponding to the build.
This playtest packaging is intentionally not a production distribution flow.
Unity gives the local build an ad-hoc signature, but downloading it on another
diff --git a/docs/development/macos-signing-notarization.md b/docs/development/macos-signing-notarization.md
index a737dff..067522b 100644
--- a/docs/development/macos-signing-notarization.md
+++ b/docs/development/macos-signing-notarization.md
@@ -72,7 +72,10 @@ is the simpler and safer release procedure.
`build-macos-distribution-app.sh` builds the native arm64 CoreMIDI plug-in,
synchronizes the managed Core assembly, and asks Unity to create a non-
Development macOS player. The bundle identifier remains
-`com.codewriter90x.hitthekit`.
+`com.codewriter90x.hitthekit`. Before signing, it installs the MPL license,
+project notice, third-party notices, licensing overview, and an exact-revision
+`SOURCE-CODE.txt` under `Contents/Resources/Legal`. The final DMG exposes the
+same `Legal/` directory at its top level.
`sign-macos-app.sh` signs a staged copy and replaces the input only after the
staged bundle passes strict verification. It signs every nested Mach-O first,
diff --git a/docs/development/windows-playtest-package.md b/docs/development/windows-playtest-package.md
index 4b938d5..594b257 100644
--- a/docs/development/windows-playtest-package.md
+++ b/docs/development/windows-playtest-package.md
@@ -20,7 +20,9 @@ Build and package with:
The script synchronizes the tested Core assembly, asks Unity for a clean
`StandaloneWindows64` player, rejects a package containing the CoreMIDI native
-plug-in, adds player instructions, creates a ZIP, and prints its SHA-256.
+plug-in, adds player instructions and a `Legal/` directory, creates a ZIP, and
+prints its SHA-256. `Legal/SOURCE-CODE.txt` identifies the exact public Git
+revision for the MPL-covered HitTheKit files in that executable distribution.
Generated output remains under the ignored `artifacts/game` directory.
The Windows player contains `HitTheKit.exe`, `HitTheKit_Data`, Unity runtime
@@ -41,6 +43,13 @@ test the exact ZIP on clean Windows 10 and Windows 11 machines:
6. confirm Device Setup states clearly that production MIDI is macOS-only; and
7. collect logs and screenshots without personal paths or third-party content.
+## MIDI support
+
+Installing Unity Windows Build Support enables player compilation only. It
+does not provide production MIDI input. Windows electronic-drum support needs
+a separately implemented and tested Windows MIDI backend; until then the
+Windows player is keyboard-only.
+
## Signing and public distribution
The current script intentionally creates an **unsigned playtest**. It is not a
diff --git a/docs/governance/dual-licensing-decision.md b/docs/governance/dual-licensing-decision.md
index 20c77b0..1f52d0b 100644
--- a/docs/governance/dual-licensing-decision.md
+++ b/docs/governance/dual-licensing-decision.md
@@ -1,9 +1,14 @@
# Dual-Licensing Decision Record
-Status: `PROPOSED_PENDING_LEGAL_REVIEW`
+Status: `SUPERSEDED_BY_MPL_COMMUNITY_LICENSE_DECISION`
Date: 2026-08-05
+> Historical record. The project subsequently adopted MPL-2.0 as its Community
+> license. See
+> [MPL Community License Decision](mpl-community-license-decision.md). Existing
+> GPL copies retain the rights already granted to their recipients.
+
## Decision
HitTheKit will preserve its Community edition under GNU General Public License
diff --git a/docs/governance/mpl-community-license-decision.md b/docs/governance/mpl-community-license-decision.md
new file mode 100644
index 0000000..65d5956
--- /dev/null
+++ b/docs/governance/mpl-community-license-decision.md
@@ -0,0 +1,93 @@
+# MPL Community License Decision
+
+Status: `ADOPTED`
+
+Decision date: 2026-08-19
+
+## Decision
+
+HitTheKit changes the Community license for original project source code from
+`GPL-3.0-only` to the Mozilla Public License 2.0 (`MPL-2.0`) beginning with
+the repository version that merges this decision.
+
+The project retains a possible separate commercial-license path for recipients
+who need terms different from MPL-2.0. A commercial license is not granted by
+this repository and requires a separate written agreement.
+
+## Scope
+
+Unless a file or directory declares different terms, MPL-2.0 applies to
+original HitTheKit source code distributed with the effective repository
+version. It does not relicense:
+
+- Unity Editor, Unity Runtime, Unity packages, or Unity-generated technology;
+- third-party dependencies or their bundled notices;
+- player-owned songs, recordings, charts, MIDI data, or other local content;
+- third-party trademarks or compatibility names; or
+- HitTheKit branding and trademark rights.
+
+The exact candidate dependency and asset inventories still control binary
+release readiness.
+
+## Reason
+
+MPL-2.0 preserves source-level reciprocity for modified HitTheKit files while
+allowing those files to be combined in a larger work with separately licensed
+software. That model fits a Unity application better than whole-work GPL
+copyleft: the proprietary Unity Runtime can retain its own terms while covered
+HitTheKit source remains available under MPL-2.0.
+
+The change removes the identified GPL whole-work compatibility concern; it does
+not alone approve macOS or Windows binaries. Signing, notarization, platform
+testing, dependency notices, content provenance, Unity plan eligibility, and
+the applicable Unity distribution terms remain independent release gates.
+
+## Existing GPL copies
+
+Licenses already granted are not revoked. Anyone who validly received an older
+HitTheKit copy under GPL-3.0-only may continue to exercise those GPL rights for
+that copy. The maintainer does not represent that downstream GPL copies have
+been converted to MPL.
+
+## Commercial option
+
+Commercial use is allowed by MPL-2.0 and does not by itself require payment.
+The separate commercial option is intended for needs such as:
+
+- proprietary modifications to MPL-covered files;
+- private-label or white-label distribution;
+- proprietary hardware and platform integrations; or
+- separately negotiated warranty, support, or maintenance.
+
+Prices, warranties, support, territory, governing law, and transaction terms
+remain to be agreed in writing. HitTheKit can license only rights controlled by
+the relevant copyright holder.
+
+## Contributions
+
+MPL-2.0 does not automatically give the maintainer permission to offer another
+contributor's work under a proprietary commercial license. Substantial external
+contributions remain paused until a reviewed CLA, assignment, dual-license
+grant, or equivalent mechanism is adopted.
+
+The repository history identifies the maintainer through the `Baron Luca` and
+`Codewriter90x` aliases, plus automated dependency updates. By merging this
+decision, the maintainer represents that they are authorized to offer the
+original project material in the effective repository version under MPL-2.0.
+That representation is not a professional chain-of-title opinion.
+
+## Implementation
+
+- replace the root `LICENSE` with the unmodified official MPL-2.0 text;
+- identify the Community grant as MPL-2.0 in README, NOTICE, website, wiki, UI,
+ packaging, release, contribution, and governance material;
+- keep third-party licenses and trademark guidance separate;
+- retain the earlier GPL audit and decision as explicitly superseded historical
+ records; and
+- validate every future executable from its exact source and dependency set.
+
+## Review boundary
+
+This record is an engineering and project-governance decision, not legal advice
+or a guarantee that a particular distribution satisfies every applicable
+contract or law.
diff --git a/docs/legal/ASSET_PROVENANCE.sha256 b/docs/legal/ASSET_PROVENANCE.sha256
index c219137..d88912f 100644
--- a/docs/legal/ASSET_PROVENANCE.sha256
+++ b/docs/legal/ASSET_PROVENANCE.sha256
@@ -36,6 +36,7 @@ aeb85dcd4d2146f541a20b059d0202b4b74e26d36bb0c4d6a69e3216b53d32b3 branding/app-i
33d46381305d6bfc6fd2e46756f60161d72c3dce538ad91159cb535867d8621a branding/app-icon/web/favicon-48.png
dd14c102c960582dce3a4a2f666acbd5fb6534aba34f065ce48ba176734e300f branding/app-icon/web/pwa-icon-192.png
09f9ef07c0a1e723f81ee00a8116eb2750d8d3138e679ca73f49e4d7e8652c73 branding/app-icon/web/pwa-icon-512.png
+dc7b225e09748d09fcf02c46b71f575d3d42547b4e49143da01a7710703f0ee3 branding/app-icon/windows/HitTheKit.ico
8b02be0ccd2c4565006246b3f8ce576367bed735bc122716c28d5120c53afd70 docs/design/evidence/gameplay-environments-v2-comparison.jpg
1503f47d91d43f2e7ea3484036329c839c338d757d6a7051e54ce97c9bd70512 docs/design/references/main-menu-stage-command-concept.png
0a150d383929d087670d0aefe28964e3786875964f88901fe8053a96e8895321 docs/design/references/modern-drum-kit-hd-concept.png
diff --git a/docs/legal/dual-licensing-readiness-report.md b/docs/legal/dual-licensing-readiness-report.md
index 3b1d700..6c12207 100644
--- a/docs/legal/dual-licensing-readiness-report.md
+++ b/docs/legal/dual-licensing-readiness-report.md
@@ -10,6 +10,11 @@ Baseline: `44d47f3acc8e6f305fb95fc8f9a0baae06c57f84`
> Current visual-asset evidence is maintained in
> [`ASSET_PROVENANCE.md`](ASSET_PROVENANCE.md), and every public release still
> requires a fresh exact-commit legal and dependency review.
+>
+> The GPL findings below describe the audited 2026-08-05 baseline and are not
+> the current Community license. HitTheKit subsequently adopted MPL-2.0; see
+> [the current licensing overview](../../LICENSING.md) and
+> [MPL Community License Decision](../governance/mpl-community-license-decision.md).
## Scope and limitations
diff --git a/docs/release/PUBLICATION_RUNBOOK.md b/docs/release/PUBLICATION_RUNBOOK.md
index 9e74153..25b90a9 100644
--- a/docs/release/PUBLICATION_RUNBOOK.md
+++ b/docs/release/PUBLICATION_RUNBOOK.md
@@ -36,9 +36,9 @@ remotes; do not rely on the temporary rename redirect.
- the exact source commit is approved;
- the initial publication is source-and-website only;
- the technical rights/provenance audit and source contracts are green;
-- unresolved Unity-runtime/GPL and commercial-license questions are disclosed,
- with qualified legal review still required before public binaries or a
- separate commercial license;
+- MPL-2.0 is the current Community license, while Unity-runtime terms,
+ exact-candidate notices, and the commercial-license agreement remain
+ separately gated before public binaries or commercial licensing;
- the worktree is clean;
- historical releases remain private and are not linked as current downloads;
- the target owner, repository name, visibility, and maintainer identity are
diff --git a/docs/release/PUBLIC_RELEASE_CHECKLIST.md b/docs/release/PUBLIC_RELEASE_CHECKLIST.md
index 1164d1e..7e5c9db 100644
--- a/docs/release/PUBLIC_RELEASE_CHECKLIST.md
+++ b/docs/release/PUBLIC_RELEASE_CHECKLIST.md
@@ -9,7 +9,8 @@ come completata.
- [x] Provenienza e SHA-256 di tutti gli asset visuali correnti registrati e verificati in CI.
- [x] Test core e MIDI disponibili senza Unity.
- [x] CI, CodeQL e aggiornamenti dipendenze configurati.
-- [ ] Revisione professionale della compatibilità GPL/Unity e dei termini di distribuzione, obbligatoria prima di qualsiasi binario pubblico o licenza commerciale separata.
+- [x] Licenza Community migrata a MPL-2.0 per evitare il precedente conflitto di copyleft dell'intera opera con Unity.
+- [ ] Verifica della licenza MPL, dei termini Unity e del modello contributivo sull'esatto candidato binario.
- [x] Prima pubblicazione limitata a sorgenti e sito; nessun binario Unity pubblico.
- [x] Strategia scelta: nuovo repository pubblico pulito da uno snapshot dell'HEAD, senza cronologia privata.
- [x] Repository storico destinato a `HitTheKit-private-archive`, con tag e release mantenuti privati.
diff --git a/docs/release/RELEASE_PROCESS.md b/docs/release/RELEASE_PROCESS.md
index 80e5a4d..1956f5b 100644
--- a/docs/release/RELEASE_PROCESS.md
+++ b/docs/release/RELEASE_PROCESS.md
@@ -17,6 +17,8 @@ are created only from reviewed commits on `main`.
3. Stop feature work on the candidate; only reviewed release blockers may
change it.
4. Record the commit SHA in the release evidence.
+5. Keep the worktree clean so `SOURCE-CODE.txt` can identify the exact public
+ revision corresponding to every executable candidate.
## 2. Run source and packaging contracts
@@ -79,7 +81,8 @@ Hardware observations must not be generalized beyond the tested models.
1. confirm the bundled catalog contains only authorized original material;
2. refresh asset provenance and third-party notices from the exact candidate;
3. review dependency and CodeQL results;
-4. obtain the required professional GPL/Unity and contribution-model review;
+4. validate MPL compliance, current Unity distribution terms, and the
+ contribution model for the exact candidate;
5. confirm no secrets, certificates, private captures, or personal data are in
the candidate; and
6. decide the clean-history public repository boundary.
@@ -94,6 +97,9 @@ Signing credentials remain outside Git. On the authorized release Mac:
The pipeline must finish with `HITTHEKIT_MACOS_DISTRIBUTION_READY`. Verify the
stapled application and each archive again after copying to the clean test Mac.
+Confirm that the application resources and DMG both include `Legal/` with
+`LICENSE`, `NOTICE`, `THIRD_PARTY_NOTICES.md`,
+`LICENSING.md`, and an exact-revision `SOURCE-CODE.txt`.
## 7. Prepare evidence
diff --git a/docs/wiki/_Footer.md b/docs/wiki/_Footer.md
index 04c6995..6b06a6f 100644
--- a/docs/wiki/_Footer.md
+++ b/docs/wiki/_Footer.md
@@ -1,4 +1,4 @@
HitTheKit is an independent open-source project. ·
[Website](https://codewriter90x.github.io/HitTheKit/en/) ·
[Source](https://github.com/Codewriter90x/HitTheKit) ·
-[GPL-3.0-only](https://github.com/Codewriter90x/HitTheKit/blob/main/LICENSE)
+[MPL-2.0](https://github.com/Codewriter90x/HitTheKit/blob/main/LICENSE)
diff --git a/scripts/build-macos-distribution-app.sh b/scripts/build-macos-distribution-app.sh
index 9062ab5..5f482dd 100755
--- a/scripts/build-macos-distribution-app.sh
+++ b/scripts/build-macos-distribution-app.sh
@@ -21,6 +21,13 @@ fail() {
[ ! -e "$APP_PATH" ] || fail "output already exists: $APP_PATH"
[ -x "$UNITY_PATH" ] || fail "Unity 6000.5.6f1 was not found at: $UNITY_PATH"
+SOURCE_COMMIT=${HITTHEKIT_SOURCE_COMMIT:-}
+if [ -z "$SOURCE_COMMIT" ]; then
+ [ -z "$(git -C "$REPOSITORY_ROOT" status --porcelain)" ] ||
+ fail "the release candidate must be committed and clean before building"
+ SOURCE_COMMIT=$(git -C "$REPOSITORY_ROOT" rev-parse HEAD)
+fi
+
OUTPUT_ROOT=$(dirname -- "$APP_PATH")
mkdir -p "$OUTPUT_ROOT"
APP_PATH=$(cd "$OUTPUT_ROOT" && pwd)/$(basename -- "$APP_PATH")
@@ -58,6 +65,9 @@ PLIST="$APP_PATH/Contents/Info.plist"
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $VERSION" "$PLIST"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$PLIST"
"$REPOSITORY_ROOT/scripts/apply-macos-app-icon.sh" "$APP_PATH"
+HITTHEKIT_SOURCE_COMMIT="$SOURCE_COMMIT" \
+ "$REPOSITORY_ROOT/scripts/install-distribution-notices.sh" \
+ "$APP_PATH/Contents/Resources/Legal" "$VERSION"
EXECUTABLE=$(/usr/libexec/PlistBuddy -c "Print :CFBundleExecutable" "$PLIST")
MAIN_BINARY="$APP_PATH/Contents/MacOS/$EXECUTABLE"
diff --git a/scripts/install-distribution-notices.sh b/scripts/install-distribution-notices.sh
new file mode 100755
index 0000000..3d8a0da
--- /dev/null
+++ b/scripts/install-distribution-notices.sh
@@ -0,0 +1,69 @@
+#!/bin/bash
+set -euo pipefail
+
+SCRIPT_DIR=$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd)
+REPOSITORY_ROOT=$(CDPATH='' cd -- "$SCRIPT_DIR/.." && pwd)
+DESTINATION=${1:-}
+VERSION=${2:-}
+SOURCE_REPOSITORY=https://github.com/Codewriter90x/HitTheKit
+
+fail() {
+ echo "distribution notices: $*" >&2
+ exit 1
+}
+
+[ -n "$DESTINATION" ] && [ -n "$VERSION" ] ||
+ fail "usage: $0 "
+[[ "$VERSION" =~ ^[0-9]+([.][0-9]+){1,2}([-.][0-9A-Za-z.-]+)?$ ]] ||
+ fail "version must identify a release, for example 0.5.0 or 0.5.0-rc.1"
+
+SOURCE_COMMIT=${HITTHEKIT_SOURCE_COMMIT:-}
+if [ -z "$SOURCE_COMMIT" ]; then
+ [ -z "$(git -C "$REPOSITORY_ROOT" status --porcelain)" ] ||
+ fail "the repository is dirty; commit the exact candidate or set HITTHEKIT_SOURCE_COMMIT explicitly"
+ SOURCE_COMMIT=$(git -C "$REPOSITORY_ROOT" rev-parse HEAD)
+fi
+
+[[ "$SOURCE_COMMIT" =~ ^[0-9a-f]{40}$ ]] ||
+ fail "HITTHEKIT_SOURCE_COMMIT must be a full 40-character lowercase Git SHA"
+git -C "$REPOSITORY_ROOT" cat-file -e "$SOURCE_COMMIT^{commit}" 2>/dev/null ||
+ fail "source commit is not present in this repository: $SOURCE_COMMIT"
+
+for required_file in LICENSE NOTICE THIRD_PARTY_NOTICES.md LICENSING.md; do
+ [ -f "$REPOSITORY_ROOT/$required_file" ] ||
+ fail "required legal file is missing: $required_file"
+done
+
+mkdir -p "$DESTINATION"
+install -m 0644 "$REPOSITORY_ROOT/LICENSE" "$DESTINATION/LICENSE"
+install -m 0644 "$REPOSITORY_ROOT/NOTICE" "$DESTINATION/NOTICE"
+install -m 0644 "$REPOSITORY_ROOT/THIRD_PARTY_NOTICES.md" \
+ "$DESTINATION/THIRD_PARTY_NOTICES.md"
+install -m 0644 "$REPOSITORY_ROOT/LICENSING.md" \
+ "$DESTINATION/LICENSING.md"
+
+printf '%s\n' \
+ 'HitTheKit corresponding source code notice' \
+ '' \
+ "Binary version: $VERSION" \
+ "Exact source revision: $SOURCE_COMMIT" \
+ '' \
+ 'The Source Code Form of MPL-2.0-covered HitTheKit files in this' \
+ 'distribution is available from the exact public revision below:' \
+ '' \
+ "$SOURCE_REPOSITORY/tree/$SOURCE_COMMIT" \
+ '' \
+ 'A downloadable archive of that revision is available at:' \
+ '' \
+ "$SOURCE_REPOSITORY/archive/$SOURCE_COMMIT.zip" \
+ '' \
+ 'The MPL-2.0 license text, project notice, licensing overview, and' \
+ 'third-party notices are included in this Legal directory.' \
+ '' \
+ 'Unity and third-party components retain their own licenses and are not' \
+ 'relicensed by HitTheKit.' \
+ > "$DESTINATION/SOURCE-CODE.txt"
+
+echo "HITTHEKIT_DISTRIBUTION_NOTICES_INSTALLED"
+echo "destination=$DESTINATION"
+echo "sourceCommit=$SOURCE_COMMIT"
diff --git a/scripts/package-game-macos-arm64.sh b/scripts/package-game-macos-arm64.sh
index 0c7ff84..7fdb736 100755
--- a/scripts/package-game-macos-arm64.sh
+++ b/scripts/package-game-macos-arm64.sh
@@ -1,8 +1,8 @@
-#!/bin/sh
-set -eu
+#!/bin/bash
+set -euo pipefail
-SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
-REPOSITORY_ROOT=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)
+SCRIPT_DIR=$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd)
+REPOSITORY_ROOT=$(CDPATH='' cd -- "$SCRIPT_DIR/.." && pwd)
UNITY_PATH=${UNITY_PATH:-/Applications/Unity/Hub/Editor/6000.5.6f1/Unity.app/Contents/MacOS/Unity}
BUILD_VERSION=${1:-0.1.0}
OUTPUT_ROOT=${2:-"$REPOSITORY_ROOT/artifacts/game/macos-arm64-$BUILD_VERSION"}
@@ -21,6 +21,15 @@ if [ -e "$OUTPUT_ROOT" ]; then
exit 3
fi
+SOURCE_COMMIT=${HITTHEKIT_SOURCE_COMMIT:-}
+if [ -z "$SOURCE_COMMIT" ]; then
+ [ -z "$(git -C "$REPOSITORY_ROOT" status --porcelain)" ] || {
+ echo "The playtest source must be committed and clean before packaging." >&2
+ exit 4
+ }
+ SOURCE_COMMIT=$(git -C "$REPOSITORY_ROOT" rev-parse HEAD)
+fi
+
mkdir -p "$OUTPUT_ROOT"
"$REPOSITORY_ROOT/scripts/build-coremidi-plugin-macos-arm64.sh"
@@ -51,11 +60,19 @@ cp "$SOURCE_COREMIDI_PLUGIN" "$COREMIDI_PLUGIN"
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $BUILD_VERSION" "$APP_PATH/Contents/Info.plist"
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_VERSION" "$APP_PATH/Contents/Info.plist"
"$REPOSITORY_ROOT/scripts/apply-macos-app-icon.sh" "$APP_PATH"
+HITTHEKIT_SOURCE_COMMIT="$SOURCE_COMMIT" \
+ "$REPOSITORY_ROOT/scripts/install-distribution-notices.sh" \
+ "$APP_PATH/Contents/Resources/Legal" "$BUILD_VERSION"
BINARY_NAME=$(/usr/libexec/PlistBuddy -c "Print :CFBundleExecutable" "$APP_PATH/Contents/Info.plist")
MAIN_BINARY="$APP_PATH/Contents/MacOS/$BINARY_NAME"
-codesign --force --sign - "$COREMIDI_PLUGIN"
-codesign --force --deep --sign - "$APP_PATH"
+while IFS= read -r -d '' candidate; do
+ [ "$candidate" != "$MAIN_BINARY" ] || continue
+ if file -b "$candidate" | grep -q 'Mach-O'; then
+ codesign --force --sign - "$candidate"
+ fi
+done < <(find "$APP_PATH/Contents" -type f -print0)
+codesign --force --sign - "$APP_PATH"
test -x "$MAIN_BINARY"
test -f "$COREMIDI_PLUGIN"
@@ -65,6 +82,7 @@ codesign --verify --deep --strict --verbose=2 "$APP_PATH"
mkdir -p "$PACKAGE_ROOT"
cp -R "$APP_PATH" "$PACKAGE_ROOT/HitTheKit.app"
+ditto "$APP_PATH/Contents/Resources/Legal" "$PACKAGE_ROOT/Legal"
printf '%s\n' \
'HitTheKit macOS Apple Silicon playtest' \
'' \
@@ -74,6 +92,7 @@ printf '%s\n' \
'' \
'This early playtest is ad-hoc signed and not yet Apple-notarized.' \
'No Unity installation is required.' \
+ 'License, notices, and exact source information are in Legal/.' \
> "$PACKAGE_ROOT/README-FIRST.txt"
ditto -c -k --sequesterRsrc --keepParent "$PACKAGE_ROOT" "$ZIP_PATH"
diff --git a/scripts/package-game-windows-x64.sh b/scripts/package-game-windows-x64.sh
index daed283..37b0d3c 100755
--- a/scripts/package-game-windows-x64.sh
+++ b/scripts/package-game-windows-x64.sh
@@ -20,8 +20,16 @@ OUTPUT_ROOT=${OUTPUT_ROOT:-"$REPOSITORY_ROOT/artifacts/game/windows-x64-$VERSION
[ ! -e "$OUTPUT_ROOT" ] || fail "output directory already exists: $OUTPUT_ROOT"
[ -x "$UNITY_PATH" ] || fail "Unity 6000.5.6f1 was not found at: $UNITY_PATH"
+SOURCE_COMMIT=${HITTHEKIT_SOURCE_COMMIT:-}
+if [ -z "$SOURCE_COMMIT" ]; then
+ [ -z "$(git -C "$REPOSITORY_ROOT" status --porcelain)" ] ||
+ fail "the playtest source must be committed and clean before packaging"
+ SOURCE_COMMIT=$(git -C "$REPOSITORY_ROOT" rev-parse HEAD)
+fi
+
UNITY_APP=$(CDPATH='' cd -- "$(dirname -- "$UNITY_PATH")/../.." && pwd)
-WINDOWS_SUPPORT="$UNITY_APP/Contents/PlaybackEngines/WindowsStandaloneSupport"
+UNITY_INSTALL_ROOT=$(CDPATH='' cd -- "$UNITY_APP/.." && pwd)
+WINDOWS_SUPPORT="$UNITY_INSTALL_ROOT/PlaybackEngines/WindowsStandaloneSupport"
[ -d "$WINDOWS_SUPPORT" ] || \
fail "Unity Windows Build Support (Mono) is not installed for 6000.5.6f1"
@@ -56,6 +64,10 @@ UNEXPECTED_PLUGIN=$(find "$PLAYER_ROOT" -iname '*HitTheKitCoreMidi*' -print -qui
[ -z "$UNEXPECTED_PLUGIN" ] || \
fail "macOS CoreMIDI plug-in leaked into the Windows package: $UNEXPECTED_PLUGIN"
+HITTHEKIT_SOURCE_COMMIT="$SOURCE_COMMIT" \
+ "$REPOSITORY_ROOT/scripts/install-distribution-notices.sh" \
+ "$PLAYER_ROOT/Legal" "$VERSION"
+
printf '%s\n' \
'HitTheKit Windows x64 playtest' \
'' \
@@ -66,6 +78,7 @@ printf '%s\n' \
'Electronic-drum MIDI is not implemented on Windows yet.' \
'This playtest package is unsigned and is not approved for public release.' \
'Verify the published SHA-256 before running any future release package.' \
+ 'License, notices, and exact source information are in Legal/.' \
> "$PLAYER_ROOT/README-FIRST.txt"
ditto --norsrc --noextattr -c -k --keepParent "$PLAYER_ROOT" "$ZIP_PATH"
diff --git a/scripts/package-macos-dmg.sh b/scripts/package-macos-dmg.sh
index 4e293d1..20f2340 100755
--- a/scripts/package-macos-dmg.sh
+++ b/scripts/package-macos-dmg.sh
@@ -31,6 +31,9 @@ resolve_identity() {
fail "usage: $0 "
[[ "$APP_PATH" == *.app ]] || fail "input must be an .app bundle"
[ -d "$APP_PATH/Contents" ] || fail "app bundle does not exist or is invalid: $APP_PATH"
+LEGAL_SOURCE="$APP_PATH/Contents/Resources/Legal"
+[ -f "$LEGAL_SOURCE/SOURCE-CODE.txt" ] ||
+ fail "app bundle lacks the MPL source disclosure: $LEGAL_SOURCE/SOURCE-CODE.txt"
[[ "$OUTPUT_DMG" == *.dmg ]] || fail "output must use the .dmg extension"
[ ! -e "$OUTPUT_DMG" ] || fail "output already exists: $OUTPUT_DMG"
@@ -59,6 +62,7 @@ trap cleanup EXIT INT TERM
mkdir -p "$STAGE_ROOT"
ditto "$APP_PATH" "$STAGE_ROOT/HitTheKit.app"
+ditto "$LEGAL_SOURCE" "$STAGE_ROOT/Legal"
ln -s /Applications "$STAGE_ROOT/Applications"
hdiutil create -quiet -volname "HitTheKit" -srcfolder "$STAGE_ROOT" -format UDZO "$TEMP_DMG"
hdiutil verify "$TEMP_DMG" >/dev/null
diff --git a/scripts/package-midi-capture-macos-arm64.sh b/scripts/package-midi-capture-macos-arm64.sh
index 463ed09..6d3d403 100755
--- a/scripts/package-midi-capture-macos-arm64.sh
+++ b/scripts/package-midi-capture-macos-arm64.sh
@@ -20,7 +20,7 @@ cp "$PUBLISH_DIRECTORY/hitthekit-midi-capture" "$PACKAGE_DIRECTORY/"
cp "$PACKAGE_SOURCE/README.txt" "$PACKAGE_DIRECTORY/"
cp "$PACKAGE_SOURCE/run.command" "$PACKAGE_DIRECTORY/"
cp "$PACKAGE_SOURCE/LICENSES/DryWetMIDI-MIT.txt" "$PACKAGE_DIRECTORY/LICENSES/"
-cp "$REPOSITORY_ROOT/LICENSE" "$PACKAGE_DIRECTORY/LICENSES/HitTheKit-GPL-3.0.txt"
+cp "$REPOSITORY_ROOT/LICENSE" "$PACKAGE_DIRECTORY/LICENSES/HitTheKit-MPL-2.0.txt"
chmod +x "$PACKAGE_DIRECTORY/hitthekit-midi-capture" "$PACKAGE_DIRECTORY/run.command"
mkdir -p "$(dirname "$ARCHIVE")"
diff --git a/src/HitTheKit.Unity/Assets/HitTheKit/UI/MainMenu/MainMenu.uxml b/src/HitTheKit.Unity/Assets/HitTheKit/UI/MainMenu/MainMenu.uxml
index 96bb300..c7cf184 100644
--- a/src/HitTheKit.Unity/Assets/HitTheKit/UI/MainMenu/MainMenu.uxml
+++ b/src/HitTheKit.Unity/Assets/HitTheKit/UI/MainMenu/MainMenu.uxml
@@ -308,7 +308,7 @@
-
+
diff --git a/tests/scripts/asset-provenance-contract-tests.sh b/tests/scripts/asset-provenance-contract-tests.sh
index 6e8d14d..6670a01 100755
--- a/tests/scripts/asset-provenance-contract-tests.sh
+++ b/tests/scripts/asset-provenance-contract-tests.sh
@@ -41,6 +41,7 @@ find branding docs/design src/HitTheKit.Unity/Assets website \
-type f \( \
-iname '*.png' -o -iname '*.jpg' -o -iname '*.jpeg' -o \
-iname '*.svg' -o -iname '*.fbx' -o -iname '*.icns' -o \
+ -iname '*.ico' -o \
-iname '*.wav' -o -iname '*.ogg' -o -iname '*.mp3' -o \
-iname '*.flac' -o -iname '*.aac' -o -iname '*.m4a' -o \
-iname '*.mp4' -o -iname '*.webm' -o -iname '*.mov' -o \
diff --git a/tests/scripts/licensing-contract-tests.sh b/tests/scripts/licensing-contract-tests.sh
new file mode 100755
index 0000000..309712b
--- /dev/null
+++ b/tests/scripts/licensing-contract-tests.sh
@@ -0,0 +1,52 @@
+#!/bin/sh
+set -eu
+
+REPOSITORY_ROOT=$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd)
+cd "$REPOSITORY_ROOT"
+
+fail() {
+ echo "licensing contract: $*" >&2
+ exit 1
+}
+
+EXPECTED_LICENSE_SHA256=3f3d9e0024b1921b067d6f7f88deb4a60cbe7a78e76c64e3f1d7fc3b779b9d04
+ACTUAL_LICENSE_SHA256=$(shasum -a 256 LICENSE | awk '{print $1}')
+[ "$ACTUAL_LICENSE_SHA256" = "$EXPECTED_LICENSE_SHA256" ] ||
+ fail "LICENSE is not the reviewed official MPL-2.0 text"
+
+grep -Fq 'Mozilla Public License Version 2.0' LICENSE ||
+ fail "root LICENSE is not MPL-2.0"
+grep -Fq 'license-MPL--2.0' README.md ||
+ fail "README badge does not identify MPL-2.0"
+grep -Fq 'Original project code is licensed under' README.md ||
+ fail "README lacks the project license boundary"
+grep -Fq 'MPL-2.0. See LICENSE and LICENSING.md.' NOTICE ||
+ fail "NOTICE lacks the MPL project grant"
+grep -Fq 'Existing GPL copies' LICENSING.md ||
+ fail "LICENSING.md must preserve the non-retroactivity statement"
+grep -Fq 'It does not itself approve a particular binary release.' LICENSING.md ||
+ fail "LICENSING.md must preserve the binary release gate"
+grep -Fq 'SUPERSEDED_BY_MPL_COMMUNITY_LICENSE_DECISION' docs/governance/dual-licensing-decision.md ||
+ fail "historical GPL decision is not marked superseded"
+grep -Fq 'Status: `ADOPTED`' docs/governance/mpl-community-license-decision.md ||
+ fail "MPL decision status is missing"
+grep -Fq 'HitTheKit-MPL-2.0.txt' scripts/package-midi-capture-macos-arm64.sh ||
+ fail "developer-tool package does not use the MPL license filename"
+grep -Fq 'MPL-2.0' src/HitTheKit.Unity/Assets/HitTheKit/UI/MainMenu/MainMenu.uxml ||
+ fail "in-app license label is stale"
+grep -Fq 'MPL-2.0 · public source, binaries under validation' website/en/index.html ||
+ fail "English website license status is stale"
+grep -Fq 'MPL-2.0 · sorgenti pubblici, binari in validazione' website/index.html ||
+ fail "Italian website license status is stale"
+grep -Fq 'SOURCE-CODE.txt' scripts/install-distribution-notices.sh ||
+ fail "binary packaging lacks an exact-source disclosure"
+grep -Fq 'install-distribution-notices.sh' scripts/build-macos-distribution-app.sh ||
+ fail "macOS distribution build does not embed legal notices"
+grep -Fq 'install-distribution-notices.sh' scripts/package-game-windows-x64.sh ||
+ fail "Windows package does not embed legal notices"
+
+if rg -n 'HitTheKit-GPL-3\.0\.txt|license-GPL--3\.0' README.md NOTICE scripts src website docs/wiki; then
+ fail "an operative GPL label remains outside historical records"
+fi
+
+echo "LICENSING_CONTRACTS_OK license=MPL-2.0 sha256=$ACTUAL_LICENSE_SHA256"
diff --git a/tests/scripts/macos-signing-foundation-tests.sh b/tests/scripts/macos-signing-foundation-tests.sh
index 7b52f7c..67f5b81 100755
--- a/tests/scripts/macos-signing-foundation-tests.sh
+++ b/tests/scripts/macos-signing-foundation-tests.sh
@@ -76,6 +76,36 @@ grep -q 'apply-macos-app-icon.sh.*APP_PATH' \
"$REPOSITORY_ROOT/scripts/package-game-macos-arm64.sh"
grep -q 'apply-macos-app-icon.sh.*APP_PATH' \
"$REPOSITORY_ROOT/scripts/build-macos-distribution-app.sh"
+grep -q 'install-distribution-notices.sh' \
+ "$REPOSITORY_ROOT/scripts/build-macos-distribution-app.sh"
+grep -q 'Contents/Resources/Legal' \
+ "$REPOSITORY_ROOT/scripts/build-macos-distribution-app.sh"
+grep -q 'SOURCE_COMMIT=.*HITTHEKIT_SOURCE_COMMIT' \
+ "$REPOSITORY_ROOT/scripts/build-macos-distribution-app.sh"
+grep -q 'release candidate must be committed and clean' \
+ "$REPOSITORY_ROOT/scripts/build-macos-distribution-app.sh"
+
+LEGAL_TEST_ROOT="$TEMP_ROOT/legal"
+HITTHEKIT_SOURCE_COMMIT="$(git -C "$REPOSITORY_ROOT" rev-parse HEAD)" \
+ "$REPOSITORY_ROOT/scripts/install-distribution-notices.sh" \
+ "$LEGAL_TEST_ROOT" 0.5.0 >/dev/null
+[ -f "$LEGAL_TEST_ROOT/LICENSE" ]
+[ -f "$LEGAL_TEST_ROOT/NOTICE" ]
+[ -f "$LEGAL_TEST_ROOT/THIRD_PARTY_NOTICES.md" ]
+[ -f "$LEGAL_TEST_ROOT/LICENSING.md" ]
+[ -f "$LEGAL_TEST_ROOT/SOURCE-CODE.txt" ]
+grep -Fq "$(git -C "$REPOSITORY_ROOT" rev-parse HEAD)" \
+ "$LEGAL_TEST_ROOT/SOURCE-CODE.txt"
+grep -Fq 'https://github.com/Codewriter90x/HitTheKit/tree/' \
+ "$LEGAL_TEST_ROOT/SOURCE-CODE.txt"
+grep -q 'ditto.*LEGAL_SOURCE.*STAGE_ROOT/Legal' \
+ "$REPOSITORY_ROOT/scripts/package-macos-dmg.sh"
+
+if grep -Eq 'codesign .*--deep.*--sign|codesign .*--sign.*--deep' \
+ "$REPOSITORY_ROOT/scripts/package-game-macos-arm64.sh"; then
+ echo "Ad-hoc playtest signing must not use --deep as its signing strategy." >&2
+ exit 1
+fi
grep -q -- '--options runtime --timestamp' "$REPOSITORY_ROOT/scripts/sign-macos-app.sh"
# shellcheck disable=SC2016
diff --git a/tests/scripts/public-readiness-contract-tests.sh b/tests/scripts/public-readiness-contract-tests.sh
index ad1e768..7161b46 100755
--- a/tests/scripts/public-readiness-contract-tests.sh
+++ b/tests/scripts/public-readiness-contract-tests.sh
@@ -52,6 +52,9 @@ for path in \
[ -s "$path" ] || fail "required public file is missing or empty: $path"
done
+[ -s tests/scripts/licensing-contract-tests.sh ] ||
+ fail "required public file is missing or empty: tests/scripts/licensing-contract-tests.sh"
+
grep -Fq "vars.UNITY_CI_ENABLED == 'true'" .github/workflows/ci.yml || \
fail "Unity CI must stay behind the explicit activation variable"
grep -Fq 'test-mode: [editmode, playmode]' .github/workflows/ci.yml || \
@@ -115,5 +118,6 @@ grep -Eq 'DO NOT PUBLISH YET' docs/release/0.5.0-release-notes-draft.md || \
fail "draft release notes must retain the publication gate"
bash tests/scripts/asset-provenance-contract-tests.sh
+bash tests/scripts/licensing-contract-tests.sh
echo "PUBLIC_READINESS_CONTRACTS_OK version=$VERSION_VALUE state=$PUBLICATION_STATE"
diff --git a/tests/scripts/windows-packaging-contract-tests.sh b/tests/scripts/windows-packaging-contract-tests.sh
index b6d9e1b..7375892 100755
--- a/tests/scripts/windows-packaging-contract-tests.sh
+++ b/tests/scripts/windows-packaging-contract-tests.sh
@@ -31,8 +31,14 @@ grep -q 'HITTHEKIT_WINDOWS_BUILD_SUCCEEDED' "$BUILD_SCRIPT"
grep -q -- '-buildTarget StandaloneWindows64' "$PACKAGE_SCRIPT"
grep -q 'WindowsPlaytestBuild.BuildX64' "$PACKAGE_SCRIPT"
grep -q 'Windows Build Support (Mono)' "$PACKAGE_SCRIPT"
+grep -q 'UNITY_INSTALL_ROOT=.*UNITY_APP/..' "$PACKAGE_SCRIPT"
+grep -q 'UNITY_INSTALL_ROOT/PlaybackEngines/WindowsStandaloneSupport' "$PACKAGE_SCRIPT"
grep -q 'macOS CoreMIDI plug-in leaked' "$PACKAGE_SCRIPT"
grep -q 'Electronic-drum MIDI is not implemented on Windows yet' "$PACKAGE_SCRIPT"
+grep -q 'install-distribution-notices.sh' "$PACKAGE_SCRIPT"
+grep -q 'SOURCE_COMMIT=.*HITTHEKIT_SOURCE_COMMIT' "$PACKAGE_SCRIPT"
+grep -q 'playtest source must be committed and clean' "$PACKAGE_SCRIPT"
+grep -q 'License, notices, and exact source information are in Legal/' "$PACKAGE_SCRIPT"
grep -q -- '--norsrc --noextattr' "$PACKAGE_SCRIPT"
grep -q 'SetCompatibleWithPlatform(BuildTarget.StandaloneWindows64, false)' \
diff --git a/website/assets/js/site.js b/website/assets/js/site.js
index 98bc92d..5954ea4 100644
--- a/website/assets/js/site.js
+++ b/website/assets/js/site.js
@@ -11,7 +11,7 @@ const copy = {
songsLabel: "LIBRERIA", songsTitle: "Musica pulita, chart verificabili", songsIntro: "Il repository non distribuisce musica commerciale: include soltanto una demo originale e il confine per i contenuti posseduti dal giocatore.", included: "INCLUSO", neonDescription: "Demo originale · 8 battute · senza batteria preregistrata", yourMusic: "LA TUA MUSICA", localDescription: "Esempio del formato di importazione, senza contenuti di terzi.",
roadmapTitle: "Onesto su ciò che funziona oggi", roadmapIntro: "Lo stato pubblico distingue ciò che è giocabile da ciò che è ancora in sviluppo.", now: "ORA · v0.5.x", nowTitle: "Vertical slice giocabile", now1: "Gameplay completo da tastiera", now2: "CoreMIDI su macOS", now3: "12 lezioni e demo originale", now4: "Configurazione guidata del kit", next: "PROSSIMO", nextTitle: "Ampliare il supporto", next1: "Backend MIDI per Windows e Linux", next2: "Più profili di batterie verificati", next3: "Secondo semestre del percorso", next4: "Packaging pubblico ripetibile", later: "PIÙ AVANTI", laterTitle: "Ecosistema della community", later1: "Editor e validazione dei chart", later2: "Condivisione di contenuti rights-clean", later3: "Più ambienti e modalità pratica", later4: "Supporto hardware più ampio",
downloadLabel: "SOURCE PREVIEW", downloadTitle: "Studialo, compilalo, contribuisci", downloadBody: "La prima pubblicazione contiene soltanto sorgenti e sito. Non è ancora disponibile un binario Unity pubblico approvato; sviluppatori e tester possono seguire la procedura di build documentata.", sourceDownload: "Scarica i sorgenti", viewReleases: "Guida alla build", supportProject: "Supporta il progetto", preRelease: "SOLO SORGENTI", platformKeyboard: "Codice tastiera: macOS, Windows, Linux", platformMidi: "Codice MIDI: macOS CoreMIDI",
- licenseLabel: "LICENZA", licenseTitle: "Open source, con regole chiare", licenseBody: "Il codice originale del progetto è distribuito con licenza GPL-3.0-only. Un percorso di licenza commerciale separata è in preparazione e resta soggetto a revisione legale.", readGpl: "Leggi la GPL-3.0", licenseDetails: "Dettagli sul percorso commerciale", faqTitle: "Domande frequenti", faq1q: "Serve una batteria elettronica?", faq1a: "No. La tastiera è sempre disponibile; un kit MIDI rende però l’esperienza più vicina allo strumento reale.", faq2q: "Il MIDI funziona su tutti i sistemi?", faq2a: "Non ancora. Il backend di produzione usa CoreMIDI su macOS; Windows e Linux supportano oggi il gameplay da tastiera.", faq3q: "Ci sono canzoni commerciali incluse?", faq3a: "No. Il repository contiene solo musica originale rights-clean e un esempio per i contenuti locali del giocatore.", faq4q: "È già una versione stabile?", faq4a: "No. La prima pubblicazione è source-only: nessun binario Unity è ancora approvato per la distribuzione pubblica.", footerTagline: "Rhythm game open source per batteria elettronica. In sviluppo attivo.", contribute: "Contribuisci", footerLicense: "GPL-3.0-only · sorgenti pubblici, binari non distribuiti", footerTrademark: "Progetto indipendente; Unity, Apple, macOS, CoreMIDI e i nomi hardware appartengono ai rispettivi titolari."
+ licenseLabel: "LICENZA", licenseTitle: "Open source, con regole chiare", licenseBody: "Il codice originale del progetto è distribuito con licenza MPL-2.0. Le modifiche ai file coperti restano open source, mentre Unity e le dipendenze mantengono i propri termini.", readLicense: "Leggi la MPL-2.0", licenseDetails: "Dettagli sul percorso commerciale", faqTitle: "Domande frequenti", faq1q: "Serve una batteria elettronica?", faq1a: "No. La tastiera è sempre disponibile; un kit MIDI rende però l’esperienza più vicina allo strumento reale.", faq2q: "Il MIDI funziona su tutti i sistemi?", faq2a: "Non ancora. Il backend di produzione usa CoreMIDI su macOS; Windows e Linux supportano oggi il gameplay da tastiera.", faq3q: "Ci sono canzoni commerciali incluse?", faq3a: "No. Il repository contiene solo musica originale rights-clean e un esempio per i contenuti locali del giocatore.", faq4q: "È già una versione stabile?", faq4a: "No. I binari macOS e Windows restano soggetti a firma, test e verifica dell'esatto candidato prima della pubblicazione.", footerTagline: "Rhythm game open source per batteria elettronica. In sviluppo attivo.", contribute: "Contribuisci", footerLicense: "MPL-2.0 · sorgenti pubblici, binari in validazione", footerTrademark: "Progetto indipendente; Unity, Apple, macOS, CoreMIDI e i nomi hardware appartengono ai rispettivi titolari."
},
en: {
skip: "Skip to content", menuOpen: "Open menu", navDemo: "Video", navHow: "How it works", navThemes: "Themes", navLearn: "Learn", navSongs: "Songs", navRoadmap: "Roadmap", navDownload: "Download", navSponsor: "Sponsor",
@@ -23,7 +23,7 @@ const copy = {
songsLabel: "LIBRARY", songsTitle: "Rights-clean music, verifiable charts", songsIntro: "The repository does not distribute commercial music. It includes only an original demo and the boundary for player-owned content.", included: "INCLUDED", neonDescription: "Original demo · 8 bars · no prerecorded drums", yourMusic: "YOUR MUSIC", localDescription: "An import-format example with no third-party content.",
roadmapTitle: "Honest about what works today", roadmapIntro: "The public status clearly separates playable features from work still in progress.", now: "NOW · v0.5.x", nowTitle: "Playable vertical slice", now1: "Complete keyboard gameplay", now2: "CoreMIDI on macOS", now3: "12 lessons and original demo", now4: "Guided kit configuration", next: "NEXT", nextTitle: "Broader support", next1: "MIDI backends for Windows and Linux", next2: "More verified drum-kit profiles", next3: "Second curriculum semester", next4: "Repeatable public packaging", later: "LATER", laterTitle: "Community ecosystem", later1: "Chart editing and validation", later2: "Rights-clean content sharing", later3: "More environments and practice modes", later4: "Broader hardware support",
downloadLabel: "SOURCE PREVIEW", downloadTitle: "Study it, build it, contribute", downloadBody: "The initial publication contains source and website only. No public Unity binary is approved yet; developers and testers can follow the documented build procedure.", sourceDownload: "Download source", viewReleases: "Build guide", supportProject: "Support the project", preRelease: "SOURCE ONLY", platformKeyboard: "Keyboard code: macOS, Windows, Linux", platformMidi: "MIDI code: macOS CoreMIDI",
- licenseLabel: "LICENSE", licenseTitle: "Open source, clear terms", licenseBody: "The project's original code is distributed under GPL-3.0-only. A separate commercial-license path is being prepared and remains subject to legal review.", readGpl: "Read GPL-3.0", licenseDetails: "Commercial path details", faqTitle: "Frequently asked questions", faq1q: "Do I need an electronic drum kit?", faq1a: "No. Keyboard input is always available, although a MIDI kit brings the experience closer to the real instrument.", faq2q: "Does MIDI work on every system?", faq2a: "Not yet. The production backend uses CoreMIDI on macOS; Windows and Linux currently support keyboard gameplay.", faq3q: "Are commercial songs included?", faq3a: "No. The repository contains only original rights-clean music and an example for player-owned local content.", faq4q: "Is this already a stable release?", faq4a: "No. The initial publication is source-only: no Unity binary is approved for public distribution yet.", footerTagline: "Open-source rhythm game for electronic drum kits. In active development.", contribute: "Contribute", footerLicense: "GPL-3.0-only · public source, no distributed binaries", footerTrademark: "Independent project; Unity, Apple, macOS, CoreMIDI, and hardware names belong to their respective owners."
+ licenseLabel: "LICENSE", licenseTitle: "Open source, clear terms", licenseBody: "The project's original code is distributed under MPL-2.0. Modifications to covered files stay open source, while Unity and dependencies retain their own terms.", readLicense: "Read MPL-2.0", licenseDetails: "Commercial path details", faqTitle: "Frequently asked questions", faq1q: "Do I need an electronic drum kit?", faq1a: "No. Keyboard input is always available, although a MIDI kit brings the experience closer to the real instrument.", faq2q: "Does MIDI work on every system?", faq2a: "Not yet. The production backend uses CoreMIDI on macOS; Windows and Linux currently support keyboard gameplay.", faq3q: "Are commercial songs included?", faq3a: "No. The repository contains only original rights-clean music and an example for player-owned local content.", faq4q: "Is this already a stable release?", faq4a: "No. macOS and Windows binaries remain subject to signing, testing, and exact-candidate review before publication.", footerTagline: "Open-source rhythm game for electronic drum kits. In active development.", contribute: "Contribute", footerLicense: "MPL-2.0 · public source, binaries under validation", footerTrademark: "Independent project; Unity, Apple, macOS, CoreMIDI, and hardware names belong to their respective owners."
}
};
diff --git a/website/en/index.html b/website/en/index.html
index 8b13bc7..80c4bbd 100644
--- a/website/en/index.html
+++ b/website/en/index.html
@@ -213,12 +213,12 @@
24 lessons, six modules
-
LICENSE
Open source, clear terms
The project's original code is distributed under GPL-3.0-only. A separate commercial-license path is being prepared and remains subject to legal review.
The project's original code is distributed under MPL-2.0. Modifications to covered files stay open source, while Unity and dependencies retain their own terms.