GunSpec
Referenz

Feldreferenz

Jedes Feld eines Waffendatensatzes mit Typ, Einheit und Bedeutung, gelesen aus der OpenAPI-Spezifikation der API, damit es nicht von der tatsächlichen Antwort abweichen kann.

  • Antwortfelder sind camelCase (weightEmptyG); Query-Parameter sind snake_case (per_page).
  • Maße in SI-Einheiten. Ein Feld ist null, wenn der Wert unbekannt ist oder nicht zutrifft, nie 0 oder ein leerer String.
  • Explorer erhält eine Zusammenfassung; mit Builder+ markierte Felder gibt es in bezahlten Plänen. Was jeder Plan enthält.

Alle 78 Felder von GET /v1/firearms/{id}, gruppiert. Listen-Endpunkte liefern eine Teilmenge.

78 Felder

12

Wer sie baut, was sie ist und wo sie in einer Variantenfamilie steht.

  • stringz. B.glock-17-gen5

    URL-safe slug identifying the firearm, e.g. glock-17-gen5. Stable: it is what a mirror keys on.

  • stringz. B.Glock 17 Gen5

    Display name, as the maker writes it.

  • stringz. B.glock

    Slug of the manufacturer that makes it. Resolve against /v1/manufacturers/{id}.

  • stringz. B.pistol

    Slug of the category it belongs to. Resolve against /v1/categories.

  • string | nullBuilder+z. B.glock-17

    The firearm this one is a variant of, or null when it is not a variant. Variant relationships are what firearm.variant.updated webhooks and /v1/firearms/{id}/variants follow.

  • string | nullBuilder+z. B.generation

    How this record differs from its parent: optics_ready, compact, threaded and so on. Null when the record has no parent.

  • string | nullz. B.AT

    ISO 3166-1 alpha-2 code of where it was designed, e.g. AT.

  • string | nullBuilder+z. B.Mikhail Kalashnikov

    Person or team credited with the design, where it is known.

  • string | nullBuilder+z. B.["Avtomat Kalashnikova","Type 56","Kalash"]

    JSON array of alternate names/designations

  • integer | nullyearz. B.2017

    Year it entered production or service. Null where the date is disputed or unknown.

  • integer | nullyear

    Year production ended, or null while it is still made.

  • FirearmStatus | nullz. B.in_production

    Production status, one of in_production, discontinued, out_of_production, in_service, limited_production, prototype. Discontinued records are kept deliberately: a rifle built in 2004 wears parts nobody sells today.

8

Millimeter und Gramm, wie der Hersteller sie angibt.

  • number | nullgBuilder+z. B.625

    Unloaded weight in grams, without magazine.

  • number | nullgBuilder+z. B.905

    Loaded weight in grams, with a full magazine.

  • number | nullmmBuilder+z. B.204

    Overall length in millimetres, stock extended where it folds or collapses.

  • number | nullmmBuilder+z. B.490

    Length with stock folded (mm)

  • number | nullmmBuilder+z. B.114

    Barrel length in millimetres, measured from the breech face.

  • number | nullmmBuilder+z. B.139

    Height in millimetres, including sights and a fitted magazine.

  • number | nullmmBuilder+z. B.34

    Width in millimetres at the widest point.

  • number | nullmmBuilder+z. B.165

    Distance between front and rear iron sights in millimetres. Null on a record with no iron sights.

10

Wie sie repetiert, feuert und zugeführt wird.

  • string | nullz. B.short_recoil

    How the action cycles: short_recoil, gas_operated, blowback, bolt_action and so on. An open vocabulary: the values in use are published on the schema as x-gunspec-vocabulary, and GET /v1/firearms/action-types is the live list.

  • string | nullBuilder+z. B.striker-fired

    What releases the striker or hammer: striker_fired, hammer_fired.

  • string | nullBuilder+z. B.safe-action

    Trigger arrangement: single_action, double_action, safe_action.

  • number | nullNBuilder+z. B.28

    Trigger pull weight in newtons. Divide by 4.448 for pounds-force.

  • string | nullBuilder+z. B.["semi_automatic","full_automatic"]

    JSON array of firing modes

  • integer | nullrpmBuilder+

    Cyclic rate in rounds per minute. Null on anything that is not automatic.

  • integer | nullroundsBuilder+z. B.17

    Rounds in the standard magazine. Null where the firearm is not magazine-fed.

  • string | nullBuilder+z. B.detachable-box

    Magazine pattern: detachable_box, internal, drum, belt.

  • string | nullBuilder+

    JSON array of feed systems

  • string | nullBuilder+

    JSON array of safety mechanisms

14

Werte für die Standardladung, plus die Quellenwerte neben unseren.

  • string | nullBuilder+z. B.m882

    The ammunition load ballistics figures are quoted against, where one is nominated.

  • number | nullm/sBuilder+z. B.375

    Muzzle velocity in metres per second, for the default load.

  • number | nullJBuilder+z. B.570

    Muzzle energy in joules, for the default load.

  • number | nullmBuilder+z. B.50

    Effective range in metres against a point target.

  • number | nullmBuilder+

    Maximum range in metres. Where the projectile lands, not where it is useful.

  • string | nullBuilder+z. B.polygonal

    Rifling description, e.g. 6 grooves, right-hand twist.

  • number | nullmmBuilder+z. B.250

    Rifling twist rate in millimetres per turn. Divide by 25.4 for inches.

  • integer | nullcountBuilder+

    Number of grooves cut in the bore.

  • number | nullm/sBuilder+z. B.375

    Muzzle velocity in metres per second exactly as the source stated it, kept beside our own figure so a reader can see what was quoted and what was derived.

  • number | nullJBuilder+z. B.565

    Muzzle energy in joules exactly as the source stated it.

  • number | nullmBuilder+z. B.50

    Effective range in metres exactly as the source stated it.

  • number | nullmBuilder+z. B.1800

    Maximum range in metres exactly as the source stated it.

  • string | nullBuilder+z. B.Manufacturer specification sheet

    Where the ballistics figures came from, named in prose.

  • string | nullBuilder+z. B.https://eu.glock.com/en/pistols/g17

    URL of the ballistics source, where it is a page rather than a book.

6

Woraus die Waffe besteht und wie sie ausgeführt ist, samt der Merkmals-Tags eines Datensatzes.

  • string | nullBuilder+z. B.polymer

    What the frame or receiver is made of.

  • string | nullBuilder+z. B.steel

    What the slide is made of. Null on anything without one.

  • string | nullBuilder+z. B.steel

    What the barrel is made of.

  • string | nullBuilder+

    What the stock or furniture is made of.

  • string | nullBuilder+z. B.nDLC

    Surface finish, e.g. nitride, parkerized, cerakote.

  • string | nullBuilder+

    JSON array of features

8

Redaktionelle Balance-Zahlen 0 – 100, keine Messwerte.

  • integer | null0 – 100Builder+

    Editorial game statistic, 0-100. Not a measured figure. These are balance numbers for game use and are not derived from the ballistics above.

  • integer | null0 – 100Builder+

    Editorial game statistic, 0-100. Not a measured figure.

  • integer | null0 – 100Builder+

    Editorial game statistic, 0-100. Not a measured figure.

  • integer | null0 – 100Builder+

    Editorial game statistic, 0-100. Not a measured figure.

  • integer | null0 – 100Builder+

    Editorial game statistic, 0-100. Not a measured figure.

  • integer | null0 – 100Builder+

    Editorial game statistic, 0-100. Not a measured figure.

  • integer | null0 – 100Builder+

    Editorial game statistic, 0-100. Not a measured figure.

  • integer | null0 – 100Builder+

    Editorial game statistic, 0-100. Not a measured figure.

5

Line-Art, Modelle, Bilder und Dokumente.

  • integerz. B.0

    Integer flag, 1 when a 3D model is on file. Stored as the database holds it rather than as a boolean.

  • string | nullBuilder+z. B.https://assets.gunspec.io/firearms/line/svg/gloc…

    Line-art silhouette, or null where none has been drawn.

  • string | nullBuilder+

    GLB model, or null where none is on file.

  • FirearmImage[]

    Every image on file, silhouette first. Each carries an absolute, directly fetchable url.

  • FirearmSchematic[]Builder+

    Exploded-view and parts diagrams on file, empty where none have been sourced.

6

Beschreibung, Einsatzgeschichte, Produktionszahlen.

  • string | null

    Prose summary of the record, where one has been written.

  • string | nullBuilder+

    Free-text notes that do not belong in a specific field.

  • string | nullBuilder+z. B.The AK-47 is so iconic it appears on the nationa…

    Historical trivia / game-dev flavor text

  • string | nullBuilder+z. B.[{"name":"Vietnam War","years":"1955-1975","side…

    JSON array of conflict objects with name, years, and sides

  • string | nullBuilder+z. B.{"estimated_total":75000000,"production_years":"…

    JSON object with estimated_total, production_years, and notes

  • FirearmUser[]

    Forces and agencies that have adopted it.

3

In der Detailantwort eingebettete Objekte; ihre Felder stehen unter Verschachtelte Objekte.

  • Manufacturer | null

    Null when the record names a manufacturer id the catalog no longer holds.

  • Category | null

    Null when the record names a category id the catalog no longer holds.

  • FirearmCaliber[]

    Every cartridge this firearm is chambered for, primary first.

6

Woher die Werte stammen, und die zwei Signale, an denen ein Mirror sich orientiert.

  • string | nullBuilder+

    JSON array of source URLs the record was compiled from. Check a specific figure against these rather than against dataConfidence.

  • number | null0 – 1Builder+z. B.0.95

    How completely the record is specified and how well it is sourced, 0 to 1. A record-level completeness and provenance measure, not a per-field probability of correctness. Use it to rank and triage; use sources to verify an individual number.

  • Provenance

    Where a record's figures came from and how far they have been checked, in one place. sources are the pages consulted; check a specific figure against those. sourceKinds says what each page is and bestSourceKind the strongest of them, on the hierarchy SourceKind defines: a maker or standards-body page is evidence for a figure, a retailer or forum page is evidence the item exists. dataConfidence is the 0 to 1 score set from what was actually sourced and never raised by hand. verifiedAt and verifiedFields say when a source was last read against the record and which fields it stated; null means the row is still seed knowledge. updatedAt and version are the same cache signals the record carries at the top level.

  • stringBuilder+z. B.2025-01-15 12:00:00

    When the record was first added, YYYY-MM-DD HH:MM:SS in UTC.

  • stringz. B.2026-09-10 06:42:19

    When a field we serve last changed. Maintained by the database rather than by whatever wrote the row, so it moves for a corrected specification and does not move for a re-run of the importer.

  • string | nullz. B.a3f1c2d4e5b6a7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4…

    Opaque fingerprint of this record. It changes when and only when a field we serve changes, so a client holding the same value already has the record and need not fetch it. Equality is the only supported operation: do not parse it, and do not assume how it is computed. Null means the record has not been written since versioning began, not that it is unchanged.

Die Objekte, die ein Detaildatensatz unter calibers, images, users, schematics und provenance einbettet. Provenance tragen auch eine Patrone und ein Anbauteil; die Bedeutung steht unter Datenkonfidenz weiter unten.

FirearmCaliber22
  • stringz. B.9x19mm-parabellum

    Slug of the cartridge. Resolve against /v1/calibers/{id}.

  • integerz. B.1

    Integer flag, 1 on the chambering the firearm is normally sold in. A firearm may be chambered for several cartridges but has at most one primary.

  • stringz. B.9x19mm Parabellum

    Display name, as the maker writes it.

  • string | nullz. B.9mm NATO

    NATO designation where the cartridge has one, e.g. 9mm NATO. Null otherwise.

  • number | nullmmz. B.9.01

    Bullet diameter in millimetres.

  • number | nullmmz. B.19.15

    Case length in millimetres.

  • string | nullz. B.rimless

    Head type: rimmed, rimless, semi_rimmed, rebated_rim, belted, plus historical values like cap_and_ball. Not the broad class. The registry said pistol/rifle/shotgun until the column was read, and it holds neither.

  • number | nullmmz. B.9.65

    Case neck outside diameter in millimetres.

  • number | nullmm

    Bottleneck cases only.

  • number | nullmmz. B.9.93

    Case base diameter in millimetres, ahead of the extractor groove.

  • number | nullmmz. B.9.96

    Rim diameter in millimetres.

  • number | nullmmz. B.1.27

    Rim thickness in millimetres.

  • number | nullmmz. B.29.69

    Overall length in millimetres, stock extended where it folds or collapses.

  • number | nullmmz. B.15.5

    Typical projectile length.

  • number | nullgz. B.7.45

    Representative bullet weight in grams. Divide by 0.0648 for grains.

  • string | nullz. B.small_pistol

    Primer size and type, e.g. small_pistol, large_rifle, rimfire.

  • string | nullz. B.tapered

    Case profile: straight, bottleneck, tapered, belted.

  • string | nullz. B.brass

    What the case is made of: brass, steel, aluminium, polymer.

  • string | nullz. B.bullet

    none is a blank.

  • string | nullz. B.round_nose

    Bullet shape: fmj, hollow_point, soft_point, spitzer, round_nose.

  • string | nullz. B.bullet

    What seals the case mouth; a blank is a star crimp.

  • string | null

    Paint that identifies the load: crimp lacquer on a blank, tip colour on a military round.

FirearmImage14
  • integerz. B.1

    Autoincrementing image id. Numeric, unlike the catalog slugs.

  • stringz. B.glock-17-gen5

    Slug of the firearm this row belongs to.

  • stringz. B.https://assets.gunspec.io/firearms/line/svg/gloc…

    Absolute, directly fetchable URL.

  • ImageType | nullz. B.photo

    Role of the image: primary, gallery, thumbnail, svg, render.

  • string | nullz. B.manufacturer

    Where the record came from: a curated entry, an inference, or an import.

  • string | nullz. B.fair-use

    Licence the asset is held under, where one is recorded.

  • MediaKind | nullz. B.silhouette

    What the asset is: silhouette, render, photo, schematic, model. /v1/firearms/{id}/media/{selector} addresses an asset by this.

  • string | nullz. B.cdn

    Where the bytes live: cdn for a static path, r2 for an upload we serve.

  • string | null

    Who made the asset, where it is credited.

  • string | null

    Page the asset or document was taken from.

  • string | null

    Alt text, where one has been written. Null otherwise, so do not render an empty string.

  • integer | nullz. B.1200

    Pixel width, where it is known.

  • integer | nullz. B.800

    Pixel height, where it is known.

  • integerz. B.0

    Position within its list, ascending.

FirearmUser7
  • integerz. B.1

    Autoincrementing row id.

  • stringz. B.glock-17-gen5

    Slug of the firearm this row belongs to.

  • stringz. B.Austrian Armed Forces

    The force, agency or organisation that adopted it.

  • string | nullz. B.military

    What kind of user: military, police, civilian.

  • string | nullz. B.AT

    ISO 3166-1 alpha-2 code of the user's country.

  • integer | nullz. B.1982

    Year of adoption, where it is known.

  • string | nullz. B.Pistole 80

    What that user calls it, where it differs from the maker's name.

FirearmSchematic13
  • integerz. B.12

    Autoincrementing schematic id.

  • stringz. B.glock-17-gen5

    Slug of the firearm this row belongs to.

  • stringz. B.Exploded view

    What the document is called.

  • SchematicType

    What a schematic document is.

  • stringz. B.https://assets.gunspec.io/firearms/schematics/gl…

    Absolute, directly fetchable URL.

  • string | nullz. B.pdf

    File format, e.g. pdf.

  • string | null

    Revision of the document, where the publisher versions it.

  • string | nullz. B.Glock Ges.m.b.H.

    Publisher of the document, often but not always the maker.

  • string | null

    Where the document came from.

  • string | null

    Page the asset or document was taken from.

  • string | null

    Who made the asset, where it is credited.

  • string | null

    Licence the asset is held under, where one is recorded.

  • stringz. B.2026-05-26 12:36:27

    When the record was first added, YYYY-MM-DD HH:MM:SS in UTC.

ProvenanceWhere a record's figures came from and how far they have been checked, in one place. `sources` are the pages consulted; check a specific figure against those. `sourceKinds` says what each page is and `bestSourceKind` the strongest of them, on the hierarchy `SourceKind` defines: a maker or standards-body page is evidence for a figure, a retailer or forum page is evidence the item exists. `dataConfidence` is the 0 to 1 score set from what was actually sourced and never raised by hand. `verifiedAt` and `verifiedFields` say when a source was last read against the record and which fields it stated; null means the row is still seed knowledge. `updatedAt` and `version` are the same cache signals the record carries at the top level.9
  • string[]z. B.["https://www.glock.com/en/products/pistols/g17-…

    The pages consulted when the record was compiled, as an array. Check a specific figure against these rather than against dataConfidence.

  • object[]z. B.[{"url":"https://www.glock.com/en/products/pisto…

    What each cited page is, in sources order, on the SourceKind hierarchy. A host not in the source map is other, never guessed.

  • SourceKind | nullz. B.manufacturer

    The strongest kind among the citations, or null when nothing is cited. manufacturer or standards_body means a figure can be checked against an authority; retailer or community alone means the record is still supported by copies of copies.

  • number | null0 – 1z. B.0.95

    The 0 to 1 score set from what was actually sourced, never raised by hand. See the confidence bands in the docs.

  • string | nullz. B.2026-09-08

    When a source was last read against this record. Null means the row is still seed knowledge.

  • string[]z. B.["barrel_length_mm","weight_empty_g"]

    Which fields the source stated, as an array. Everything else on a verified row is still unverified. Null where no source has been read.

  • string | null

    Cartridges only: the page the drawing figures were taken from. Null on every other kind of record.

  • stringz. B.2026-09-08 04:10:22

    When a served column last changed; the same value the record carries at the top level.

  • string | nullz. B.ba5c1d9e06c279a5

    The record's content version, equal to the top-level version; equal versions mean equal data.

Was status an einem Datensatz enthalten kann.

  • Currently manufactured
  • No longer manufactured
  • Production has ended; may return
  • Out of production but still in active service
  • Produced in limited numbers
  • Prototype, never mass-produced

Alle sechs akzeptiert ?status= auf GET /v1/firearms.

Das actionType-Vokabular, wie es im Katalog vorkommt, häufigste zuerst. Keine geschlossene Liste: GET /v1/firearms/action-types liefert jeden verwendeten Wert mit Anzahl.

  • Barrel and slide recoil locked together, then unlock (most semi-auto pistols)
  • Manually cycled rotating bolt
  • Bolt held only by spring and mass, no locking (smaller cartridges)
  • Barrels hinge open to load
  • Gas-operated, pattern not further specified
  • Gas piston fixed to the carrier, travels its full length (e.g. AK)
  • Gas vented straight onto the bolt carrier (e.g. AR-15)
  • Cylinder indexes a fresh chamber behind the barrel
  • Gas piston travels a short distance to drive the carrier
  • Loaded from the muzzle; no cartridge
  • Manually cycled by sliding the forend
  • Manually cycled by a finger lever
  • Trigger both cocks and releases the hammer or striker
  • Breechblock drops vertically to expose the chamber
  • Rollers delay bolt opening (e.g. MP5, G3)
  • Hammer or striker cocked before the trigger will fire
  • Short-stroke piston, the piston named explicitly in the source
  • Revolver; hammer manually cocked before each shot
  • Revolver; trigger cocks and releases the hammer
  • Recoil inertia of the bolt body unlocks the action (some shotguns)
  • Recoil-operated, pattern not further specified
  • Blowback with a mechanical delay other than rollers
  • Barrel and bolt recoil the full stroke together (e.g. Auto-5)
  • Gas-operated with a rotating bolt lock
  • Loaded at the breech; single-shot, mechanism not further specified
  • Breechblock rotates back to open (single-shot)
  • Bolt cycled with a straight pull, no rotation of the handle
  • Hinged breechblock lifts forward to load (e.g. Springfield 1873)
  • Air gun; a spring-driven piston compresses the charge
  • Breechblock hinges away from the chamber to load
  • A lever delays bolt opening (e.g. FAMAS)
  • Barrel driven forward off the standing breech
  • Externally powered rotary barrels
  • Trigger always cocks and releases; no single-action mode
  • Barrel rotates to unlock from the slide
  • Air gun; pre-charged or pumped air
  • Gas system switchable between two modes
  • Blowback delayed by a rotating barrel rather than by rollers
  • Blowback delayed by gas pressure bled against the bolt
  • Blowback delayed by lugs camming radially out of the carrier
  • Short recoil in which the barrel rotates to unlock
  • Gas-operated with a counter-mass moving against the carrier to cancel recoil
  • Gas-operated with a balanced recoil system damping the impulse
  • Gas-operated in which the barrel moves forward rather than the bolt back
  • Gas-operated, firing from an open bolt
  • Gas-operated with a bolt that tilts to lock (e.g. FN FAL)

dataConfidence ist ein Wert von 0 bis 1 dafür, für wie viel eines Datensatzes eine Quelle einsteht. Er wird aus dem gesetzt, was beim Anlegen oder Prüfen tatsächlich belegt wurde, und nie von Hand angehoben: ein Mensch kann ihn nach einem gefundenen Widerspruch senken, nur eine neue Quelle kann ihn heben. Er ist ein Maß auf Datensatzebene, keine Wahrscheinlichkeit pro Feld, dass eine Zahl stimmt: 0,95 heißt nicht, dass die Lauflänge zu 95 % korrekt ist.

Bei einer Waffe spiegelt der Wert auch die Abdeckung: wie viel des Datensatzes die zitierten Seiten abdeckten und welcher Art diese Seiten waren. Ein voller Datensatz vom Herstellerdatenblatt, den zwei Referenzen bestätigen, liegt über 0,9; eine einzelne unbestätigte Quelle unter 0,7. Eine Anzahl allein sagt wenig, denn vier Händlerseiten, die eine Herstellerangabe wiederholen, sind eine Quelle. Deshalb provenance.sourceKinds jede Seite einordnet und provenance.bestSourceKind die stärkste nennt. Bei einer Patrone oder einem Anbauteil folgt der Wert genau den Stufen unten, weil diese Datensätze Quelle für Quelle geprüft werden.

Die Obergrenze, die ein Datensatz für das Gefundene tragen darf. Ein Datensatz landet in der höchsten Stufe, die seine Belege stützen, und nie darüber.

WertWas belegt wurde
0.95Eine Zeichnung eines Normungsgremiums (SAAMI, CIP) oder die Produktseite bzw. das Datenblatt des Herstellers, die jede Zahl des Datensatzes bestätigen.
0.90Ein vollständiger Referenzeintrag, jedes Maß vorhanden, ohne Normverweis.
0.80Ein Referenzeintrag, dem eine oder mehrere Zahlen fehlen, wie bei einer seltenen oder historischen Patrone.
0.75Die Produktseite eines Herstellers oder Vertriebs, die Existenz, Kaliber, Länge und Farbcode bestätigt, oder ein Händler, der die Zahlen eines Teils bestätigt, wenn die Herstellerseite nicht abrufbar war.
0.70Eine Sammler- oder Referenzseite, eine fremdsprachige Referenz oder eine Seite aus einem Wiederladehandbuch.
0.60Nur ein Händler oder ein Forum bestätigt, dass der Artikel existiert; die Zahlen bleiben wie eingespielt.
0.50Nichts gefunden. Der Datensatz ist Modellwissen aus der Erstbefüllung, und verifiedAt ist null.

Zwei Dinge drücken einen Wert unter seine Stufe. Eine vom Validator markierte Zahl, die keine zweite Quelle auflösen konnte, deckelt den Datensatz bei 0,6, und der Widerspruch steht in notes. Eine Montageschnittstelle, der die Herstellerseite widerspricht, senkt ein Anbauteil bis zur Korrektur auf 0,6, weil ein falsches Gewinde eine Sicherheitsfrage ist.

Ein Patronen- oder Anbauteil-Datensatz trägt verifiedFields: genau die Felder, die seine Quelle genannt hat, und nichts darüber hinaus. Ein dort nicht gelistetes Feld steht auf dem Stand der Erstbefüllung, was auch immer der Wert sagt. Kategorische Felder wie Hülsenform oder Geschossart sind Einschätzung, keine Belegung, und heben den Wert nie für sich allein. verifiedAt ist der Zeitpunkt dieser Prüfung; null heißt, niemand hat den Datensatz bisher gegen eine Quelle geprüft.

  • Alles, worauf Sie nicht ungeprüft bauen würden, als ungeprüft behandeln. Bei 0,6 wurde nur die Existenz des Artikels bestätigt; bei 0,5 gar nichts.
  • Eine konkrete Zahl gegen sources prüfen, nie gegen den Wert. Der Wert sagt, wie gut der Datensatz als Ganzes belegt ist; die Seiten sagen, wo jede Zahl bestätigt werden konnte.
  • Filtern statt raten. GET /v1/data/confidence listet Datensätze unter einer Schwelle, niedrigste zuerst; auf den Kompatibilitäts-Endpunkten blendet min_confidence Passungen aus, die über schwache Belege berechnet wurden.
  • Melden, was Sie finden. Eine falsche Zahl ist eine Datenmeldung, auf die ein Mensch reagiert, und die Korrektur erreicht jeden Aufrufer.

Jede Seite, die ein Datensatz zitiert, wird als eine SourceKind eingeordnet, stärkste zuerst, und der Datensatz trägt das Ergebnis: provenance.sourceKinds ist ein { url, kind } pro Seite und provenance.bestSourceKind die stärkste davon. Gewichten Sie eine Zahl nach der besten Art dahinter, nie nach der Zahl der zitierten Seiten. Spezifikationen unterscheiden sich legitim nach Jahr, Werk und Markt, also widersprechen sich Seiten; dann gewinnt die höhere Art, und die notes des Datensatzes vermerken den Widerspruch.

  1. manufacturer Die eigene Produktseite, Anleitung, das Datenblatt oder der Katalog des Herstellers. Die Autorität für alles, was der Hersteller veröffentlicht.
  2. standards_body SAAMI, C.I.P. oder eine NATO-Norm. Die Autorität für Patronenmaße und -drücke.
  3. government Ein Beschaffungsdokument, eine technische Vorschrift, die Seite einer Truppe, ein Nationalmuseum. Jeder .mil- oder .gov-Host wird per Regel hier eingeordnet.
  4. reference Eine unabhängige Referenz, die nennt, woher ihre Zahlen stammen: eine Enzyklopädie, Modern Firearms, Forgotten Weapons, eine Museumssammlung, Jane's.
  5. aggregator Eine Seite, die Zahlen aus anderen Quellen zusammenträgt, ohne zu sagen, aus welchen. Nützlich für Abdeckung, schwach als Beleg.
  6. press Ein Magazin, eine Testseite oder ein Blog: eine eigene Messung eines Journalisten oder eine wiederholte Herstellerangabe.
  7. retailer Ein Angebot, geschrieben um zu verkaufen. Beleg dafür, dass es das Modell gibt und wie der Markt es nennt; die Zahlen sind von anderswo kopiert.
  8. community Ein Forum, Wiki oder eine Fanseite. Beleg nur für Existenz und Benennung, nie die einzige Quelle für eine Zahl.
  9. other Ein Host, der noch nicht in der Quellenkarte steht. Wird als schwächste Art gemeldet, bis er eingeordnet ist, nie geraten, sodass ein für die stärkeren Arten genannter Anteil nur untertrieben sein kann.

Heute zitieren 100% der Waffen mindestens eine Seite, 83% zwei oder mehr und 34% eine manufacturer-, standards_body- oder government-Seite. Bei jedem Build aus dem Katalog berechnet. Ein Datensatz, der noch Modellwissen aus der Erstbefüllung ist, trägt dataConfidence 0,5 mit verifiedAt null, was immer seine Seiten sagen.

GET /v1/firearms/{id}, GET /v1/calibers/{id} und GET /v1/attachments/{id} tragen ein provenance-Objekt, die eine Stelle, an der die Herkunft gelesen wird. Es bündelt, was die Abschnitte oben beschreiben: die konsultierten Seiten und welcher Art jede ist, den Wert, wann und welche Felder geprüft wurden, und die zwei Cache-Signale.

  • sourcesDie für den Datensatz konsultierten Seiten.
  • sourceKindsJede zitierte Seite und ihre Art, in der Reihenfolge von `sources`, auf der Hierarchie oben. Ein Host, der nicht in der Quellenkarte steht, ist `other`.
  • bestSourceKindDie stärkste Art unter den Zitaten, oder null, wenn nichts zitiert wird. `manufacturer` oder `standards_body` heißt, eine Zahl lässt sich gegen eine Autorität prüfen; nur `retailer` oder `community` heißt, der Datensatz beruht auf Kopien.
  • dataConfidenceDer Wert von 0 bis 1 von oben, oder null, wenn der Datensatz nie bewertet wurde.
  • verifiedAtWann der Datensatz zuletzt gegen eine Quelle geprüft wurde; null bei Modellwissen aus der Erstbefüllung.
  • verifiedFieldsGenau die Felder, die diese Quelle genannt hat; null, wenn nichts geprüft wurde.
  • updatedAtWann sich die gelieferten Spalten zuletzt geändert haben, von der Datenbank gepflegt.
  • versionDer Inhalts-Hash des Datensatzes; gleiche Versionen heißen gleiche Daten auf jedem Tarif.
  • specSourceNur Patronen: die Seite, von der die Zeichnungsmaße gelesen wurden.

Es gibt noch keine Zuordnung pro Feld und keine Änderungshistorie pro Datensatz: verifiedFields sagt, welche Felder bestätigt wurden, nicht von welcher Seite, und updatedAt sagt, wann sich der Datensatz zuletzt geändert hat, nicht was sich geändert hat. Leiten Sie beides nicht aus den Feldern oben ab.