A caliber (cartridge) from the GunsNPrices caliber list.
id is stable ("9x19mmparabellum"), name is the display name ("9×19mm Parabellum"), type is what it is
chambered in and url is the GunsNPrices page comparing prices for it ("" if there is none).
Encodes to JSON (Elixir's JSON, and Jason when it is installed) with the same fields as the Python and
JavaScript packages: {"id": ..., "name": ..., "type": "handgun", "url": ...}.
Summary
Types
What a caliber is chambered in: the type field of the GunsNPrices caliber list.
Types
@type caliber_type() ::
:handgun | :rifle | :rimfire | :shotgun | :airgun | :muzzleloader
What a caliber is chambered in: the type field of the GunsNPrices caliber list.
@type t() :: %GunsNPrices.Caliber{ id: String.t(), name: String.t(), type: caliber_type(), url: String.t() }