Expand description
Versioned, binding-neutral JSON data-transfer objects for trajectory solves.
These types deliberately do not expose crate::BallisticInputs. The public JSON contract
has its own names, units, defaults, and compatibility policy so engine internals can evolve
without silently changing requests produced by language bindings.
Structs§
- Atmosphere
V1 - Atmospheric station conditions.
- BcSegment
V1 - One band of a
ProjectileV1::bc_segmentsladder: the BC that flies while the bullet’s airspeed lies in[velocity_min_mps, velocity_max_mps). - Corrections
V1 - Offline correction sources for a solve (additive-optional).
- Drag
Point V1 - One point of a
DragTableV1: Mach (finite, >= 0) and drag coefficient (finite, > 0). - Drag
Table V1 - A caller-supplied Cd-vs-Mach drag curve (MBA-1597): solve-json’s form of the CLI’s
--drag-table. - Effects
V1 - Optional physical effects supported by solve-json v1.
- Projectile
V1 - Projectile inputs supported by solve-json v1.
- Resolved
Atmosphere V1 - Resolved station conditions.
- Resolved
Constant Wind V1 - Resolved still-air or constant-wind values.
- Resolved
Effects V1 - Resolved physical-effect switches.
- Resolved
Projectile V1 - Resolved projectile inputs.
- Resolved
Rifle V1 - Resolved rifle and sight geometry.
- Resolved
Sampling V1 - Resolved result-sampling configuration.
- Resolved
Segmented Wind V1 - Resolved downrange wind segments.
- Resolved
Shot V1 - Resolved shot geometry.
- Resolved
Solve Request V1 - A solve request after the service has applied every documented v1 default.
- Resolved
Solver V1 - Resolved numerical integration configuration.
- Resolved
Wind Segment V1 - One resolved wind segment.
- Reticle
Hold V1 - The reticle hold point for a solved trajectory (MBA-1361).
- Reticle
Request V1 - Ask for a reticle hold point alongside the trajectory (MBA-1361).
- RifleV1
- Rifle and sight geometry.
- Sampling
V1 - Regular downrange output sampling configuration.
- Schema
Version V1 - An invariant solve-json v1 schema discriminator.
- ShotV1
- Shot geometry and termination range.
- Solve
Error Envelope V1 - A failed solve-json v1 response.
- Solve
Error V1 - A stable, machine-readable protocol error.
- Solve
Notice V1 - A machine-readable assumption or warning.
- Solve
Request V1 - A complete v1 trajectory-solve request.
- Solve
Success V1 - A successful solve-json v1 response.
- Solve
Summary V1 - Aggregate observations for a completed solve.
- Solver
V1 - Numerical integration configuration.
- Trajectory
Sample V1 - One regularly sampled trajectory observation.
- Wind
Segment V1 - One wind segment, active through
until_distance_m. - WindV1
- Constant or downrange-segmented wind.
Enums§
- Drag
Model V1 - Built-in reference-projectile drag models supported by solve-json v1.
- Drag
Table Kind V1 - What a
DragTableV1describes, and therefore what the request’s BC means. - Drops
Reference V1 - Wire values for
ShotV1::drops_reference(MBA-1403). - Error
Status V1 - The error discriminator serialized in a response envelope.
- Pressure
Reference V1 - Whether an
AtmosphereV1.pressure_pavalue is absolute station pressure or a sea-level- corrected altimeter setting (QNH) that must be reduced to station pressure before use (MBA-1397). Mirrorscrate::atmosphere::PressureReferenceMode. - Resolved
Wind V1 - Resolved constant or segmented wind.
- Sample
Flag V1 - Stable annotations for trajectory samples.
- Solve
Error Code V1 - Stable solve-json v1 error categories.
- Solve
Error Location Error V1 - Why a source location could not be attached to a protocol error.
- Solver
Method V1 - Integration algorithms exposed by solve-json v1.
- Success
Status V1 - The success discriminator serialized in a response envelope.
- Termination
Reason V1 - Why the trajectory ended.
- Twist
Direction V1 - Direction of rifling twist as viewed from the breech toward the muzzle.
- Wind
Reference V1 - Wire values for
WindV1::wind_reference(MBA-1368). - Wind
Shear Model V1 - Wire values for
EffectsV1::wind_shear_model(0.36.0).
Constants§
- DRAG_
MODEL_ WIRE_ NAMES_ V1 - Exact, case-sensitive wire names accepted for solve-json v1 reference drag models.
- MAX_
BC_ SEGMENTS_ V1 - The most bands a
ProjectileV1::bc_segmentsladder may hold. The BC lookup scans the ladder on every derivative evaluation, so the cap bounds the per-step cost; it is far past the handful of bands a published multi-BC schedule lists. - MAX_
DRAG_ TABLE_ POINTS_ V1 - The most points a
DragTableV1may hold. Matches the.drg/CSV loader behind the CLI’s--drag-tableand the array FFI’sMAX_FFI_DRAG_TABLE_LEN. - MAX_
SOLVE_ JSON_ SAMPLES_ V1 - Maximum number of trajectory observations in one solve-json v1 success response.
- MIN_
BC_ SEGMENTS_ V1 - The fewest bands a
ProjectileV1::bc_segmentsladder may hold. An empty array is refused rather than read as “no ladder”; omit the field for that. - MIN_
DRAG_ TABLE_ POINTS_ V1 - The fewest points a
DragTableV1may hold — two define a curve. - ONE_
BAND_ BC_ RELATIVE_ TOLERANCE_ V1 - How closely a one-band
ProjectileV1::bc_segmentsladder’s BC must match the scalarballistic_coefficient, relative to the larger of the two: one part in a million. That forgives rounding nobody chose, such as a BC held as anf32(0.243f32reads back as0.24300000071525574) or converted between units and back, but not a different value: 0.172 against 0.1724 is still refused. Within it, the band’s BC is the one that flies. - SOLVE_
JSON_ EFFECT_ NAMES_ V1 - Every member name
effectsaccepts on the v1 wire, in declaration order. - SOLVE_
JSON_ SCHEMA_ VERSION_ V1 - The only solve-json schema version understood by this module.
Functions§
- decode_
solve_ request_ v1 - Decode and structurally validate one solve-json v1 request.