I would propose to use the builder pattern for those, because for most fields there are good defaults, we could add new ways to build them and especially for the case of calculating the inversion from a bass_note. I would like to expose that feature to the library side and not only have it in the CLI.
I suggest the typed-builder crate for this, as there is no need to write the boilerplate by hand and it also brings the compile time check.
I would propose to use the builder pattern for those, because for most fields there are good defaults, we could add new ways to build them and especially for the case of calculating the inversion from a
bass_note. I would like to expose that feature to the library side and not only have it in the CLI.I suggest the typed-builder crate for this, as there is no need to write the boilerplate by hand and it also brings the compile time check.