From nsmith-, docstrings are now passed through array manipulations as a `__doc__` parameter (which becomes a `__doc__` attribute on `ak.Array`).
ianna implemented negative `axis` parameters, which includes cases like::
array = ak.Array([
{"x": [1], "y": [[], [1]]},
{"x": [1, 2], "y": [[], [1], [1, 2]]},
{"x": [1, 2, 3], "y": [[], [1], [1, 2], [1, 2, 3]]}])
ak.num(array, axis=-1).tolist() == [{'x': 1, 'y': [0, 1]},
{'x': 2, 'y': [0, 1, 2]},
{'x': 3, 'y': [0, 1, 2, 3]}]
which would be inexpressible with a nonnegative `axis`.
Sorting finally has a high-level function, `ak.sort` (and `ak.argsort`).
Awkward ↔ Apache Arrow conversion now prefers 32-bit Arrow types, if possible, and Awkward arrays can be written to and read from Parquet files.
Awkward Arrays can now be deconstructed into a Mapping of str → NumPy arrays (or binary blobs) and back again using `ak.to_arrayset` and `ak.from_arrayset`. This permits general serialization, though standard formats like Arrow and Parquet are to be preferred for any long-term storage.