Drop 10 dead parser-compat columns (srccallsign, dstcallsign,
origpacket, body, header, alive, posambiguity, symboltable,
symbolcode, messaging) and move 14 display-only columns into a
single `data` JSONB column (PHG, telemetry, radiorange,
information_field, format, posresolution, position_ambiguity,
luminosity, rain_midnight).
Reduces row width from ~70 to ~48 columns. Table is ephemeral
so migration uses DROP/recreate. Also fixes snow_24h -> snow bug
in weather check query and adds null byte stripping for JSONB
string sanitization.
Extract device attribute addition into helper function to reduce
cyclomatic complexity from 10 to 9:
- callsign_json.ex: Extract add_device_attributes/2 helper
Moves device.model, device.vendor, device.contact, and device.class
attribute additions into separate function
This reduces complexity by isolating the && operators in a dedicated
helper function.
Fixes 1 Credo cyclomatic complexity issue (10 remaining).