# description
A signed, tamper-evident, independently-reproducible reading of a peril's intensity at an exact coordinate — the settlement-grade input a parametric trigger evaluates against. This is the difference between an event feed ('an earthquake happened') and a trigger source ('the value at this lat/lon was X'). Carries the value + unit, the resolution method (interpolation_method), a latency tier, and a re-fetchable source_url + reproducible raw_reading_hash (see hash_method / hashed_path). Detached Ed25519 signature over the object minus its `signature`, json-sorted-compact. SCOPE: attests the reading at the cited official source/gauge — NOT a basin-wide determination or ground-truth physical loss.

# properties.peril.description
flood | drought | wildfire | earthquake | tropical_cyclone | excess_rainfall | hail

# properties.value.description
the intensity value at the queried coordinate

# properties.all_metrics.description
every metric available at this location, with units

# properties.location.description
the resolved source location. For gauge perils this is the nearest named station and its distance_km from the query.

# properties.location.properties.grid_version.description
for gridded perils (ShakeMap etc.): the exact product version sampled

# properties.latency_tier.description
detection/provisional = fast, may revise; authoritative/final = settles high-value contracts

# properties.interpolation_method.description
how the point value was resolved: none (direct gauge), bilinear (grid), point-in-polygon, or a named parametric model

# properties.observation.properties.raw_reading_hash.description
sha256:<hex> of the canonical source reading (see hash_method)

# properties.observation.properties.hash_method.description
the exact, reproducible recipe to recompute raw_reading_hash from source_url

# properties.observation.properties.hashed_path.description
the JSON path within the source response that is hashed (stable subset)