### New Features

 - `Spec` with `Display` implementation to reproduce itself.
   That way it can be parsed back perfectly after displaying itself, and
   will work normally when used in backticks in the shell for simple
   include patterns.
 - Add `Spec` data strcuture to fully represent a revision specification
 - Add support for `r1^@`
 - Add support for `r1^!`
 - support for `<rev>^-<n>` and `<rev>^-`

### Changed (BREAKING)

 - More intuitive variants for `Spec`.
 - rename various `Kind` variants to be more descrptive.
 - Rename `Kind::Single` to `Include` and add `Exclude` kind.
   So far I got ranges pretty wrong and was degenerating the `^rev` case
   due to misinterpretation of the docs.
   This summary corrected that: https://git-scm.com/docs/git-rev-parse#_revision_range_summary

### Commit Statistics

 - 38 commits contributed to the release over the course of 23 calendar days.
 - 26 days passed between releases.
 - 8 commits where understood as [conventional](https://www.conventionalcommits.org).
 - 2 unique issues were worked on: #427, #450

### Thanks Clippy

[Clippy](https://github.com/rust-lang/rust-clippy) helped 3 times to make code idiomatic. 

### Commit Details

 * **#427**
    - make fmt (4b320e7)
    - remove unused type (ad3475d)
    - Better docs for `Spec` and `spec::Kind` (6b76c06)
    - More intuitive variants for `Spec`. (42aea42)
    - `Spec` with `Display` implementation to reproduce itself. (36c70e1)
    - More fuzz success (f239796)
    - fix panics discovered by fuzzer input (0f9e959)
    - Add fuzz target (54108f4)
    - Add support for `r1^@` (4bb2003)
    - Add support for `r1^!` (7e5d31c)
    - refactor (dd1a208)
    - the first test for @^! syntax (b97677c)
    - rename various `Kind` variants to be more descrptive. (487941c)
    - Add all remainiing rev-spec kinds. (fcc737d)
    - Assure parsing ends after special syntax sugar (661bf29)
    - support for `<rev>^-<n>` and `<rev>^-` (fa1615d)
    - a way to intercept which ref or prefix was set (b7a823b)
    - first steps toward implementing ^-n (4b105f8)
    - tests for `r1^-`  and `r1^-n` syntactic sugar (5d983c6)
    - Adjust RevSpec::range() to match changes in `git-revision` (05ea453)
    - Omitted revisions after or before ../... are automatically defaulted to `HEAD`. (d6f481d)
    - make it possible to see the ordering of calls (b04614c)
    - Rename `Kind::Single` to `Include` and add `Exclude` kind. (baf34c4)
 * **#450**
    - add fuzz target and basic docs on how to run it (febf070)
 * **Uncategorized**
    - prepare changelogs prior to reelase (c06ae1c)
    - Release git-hash v0.9.7, git-features v0.22.1 (232784a)
    - Merge branch 'index-write-refactor' (805f432)
    - adjust `git_date::parsea(str)` to use a str (0f8680a)
    - Merge branch 'format_git_date_time' (99e12be)
    - thanks clippy (4bd747c)
    - raise `git-revision` to the status of 'usable' (09eb1a6)
    - Merge branch 'write-index-files' into write-index-v2 (cddc2ca)
    - Merge branch 'write-index-files' into rev-parse-delegate (370110d)
    - Add `Spec` data strcuture to fully represent a revision specification (5038ffa)
    - Merge branch 'main' into rev-parse-delegate (4ae2bed)
    - thanks clippy (ca82265)
    - thanks clippy (19db44a)
    - Merge branch 'main' into rev-parse-delegate (6da8250)