_See all documentation for this version [here](https://ampform.rtfd.io/en/0.12.3)._
💡 New features
<details>
<summary>Implemented scalar initial state mass switch (214)</summary>
Follow-up to 197. See usage [here](https://ampform--214.org.readthedocs.build/en/214/usage/amplitude.html#scalar-masses).
</details>
🔨 Internal maintenance
<details>
<summary>Simplified numpy.einsum in ArrayMultiplication numpification (218)</summary>
`ArrayMultiplication` lambdified to a recursive call to [`einsum()`](https://numpy.org/doc/stable/reference/generated/numpy.einsum.html), which results in larger lambdified code. This PR lambdifies the code to an einsum path, e.g. `...ij,...jk->...i`.
</details>
<details>
<summary>Upgraded to QRules v0.9.6 (219)</summary>
See release notes [QRules v0.9.6](https://github.com/ComPWA/qrules/releases/tag/0.9.6). Required for a consistent determination of opposite helicity states, see #212.
_Note that this can change helicity angle labels! See a324c9e_
</details>
📝 Documentation
<details>
<summary>Cleaned up kinematics module API (211)</summary>
Preview [here](https://ampform--211.org.readthedocs.build/en/211/api/ampform.kinematics.html). Compare to [v0.12.2](https://ampform.readthedocs.org/en/0.12.2/api/ampform.kinematics.html).
- Definitions in the API are follow the sorting of the source code.
- Hidden the classes for SymPy ArraySymbols by moving them to `ampform.sympy._array_expresssions`.
- Added docstrings to all remaining classes, like `BoostZ`.
- Improved the `docs/_extend_docstrings.py` script.
- Hidden several methods and attributes that come from `sympy.Basic`.
- See [commit history]() for other changes.
</details>
<details>
<summary>Documentation on RTD is now built on Python 3.8 (215)</summary>
[`sphinx-apidoc`](https://www.sphinx-doc.org/en/master/man/sphinx-apidoc.html) does not render the docstring for the `FourMomentumSymbol` type alias (#211) when running on Python 3.7. See for instance the [API preview of the latest PR](https://ampform--214.org.readthedocs.build/en/214/api/ampform.kinematics.html#ampform.kinematics.FourMomentumSymbol). The docstring is correctly rendered when building with Python 3.8, see preview [here](https://ampform--215.org.readthedocs.build/en/215/api/ampform.kinematics.html#ampform.kinematics.FourMomentumSymbol).
Note: RTD for QRules also switched to Python 3.8 in https://github.com/ComPWA/qrules/pull/136.
</details>
<details>
<summary>Code example are now automatically clickable with links to reference documentation (217 and 220)</summary>
- All code examples are now clickable with links to corresponding reference documentation (also external links APIs) with [`sphinx-codeautolink`](https://sphinx-codeautolink.readthedocs.io). Closes https://github.com/ComPWA/compwa-org/issues/106 [![image](https://user-images.githubusercontent.com/29308176/151719490-88b75f2c-6ccd-4dc5-b05f-6ee7ea0390a4.png)](https://ampform--217.org.readthedocs.build/en/217/usage/amplitude.html#scalar-masses)
- Updated to the first non-beta black release [22.1.0](https://github.com/psf/black/releases/tag/22.1.0). Most important style effect: [no space around power operator `**`](https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#line-breaks-binary-operators).
</details>
🖱️ Developer Experience
<details>
<summary>Installed jupyterlab-myst for MyST editing in notebooks (217)</summary>
Installed [`jupyterlab-myst`](https://github.com/executablebooks/jupyterlab-myst)
</details>