{
  "schema": "receiver-support-v1",
  "checkedAt": "2026-09-13",
  "scope": "Implementation and recorded evidence, not an operational qualification or a representative yield claim.",
  "rows": [
    {
      "layer": "Input",
      "format": "Complex IQ",
      "implementation": "Native",
      "evidence": "Recording-tested",
      "scope": "Generic CI16, CF32, CF64 and explicit SigMF layouts. Meteor additionally reads original PCM8/PCM16 stereo WAV and CF32. Sample rate and representation must match the input.",
      "sources": [
        "rust/input.rs",
        "rust/formats.rs",
        "rust/meteor_cli.rs"
      ]
    },
    {
      "layer": "Input",
      "format": "WAV / OGG audio",
      "implementation": "Native DSP; external OGG codec",
      "evidence": "Recording-tested",
      "scope": "Mono PCM integer/float WAV; OGG is decoded by FFmpeg. Audio is not interchangeable with complex IQ: a PSK recording needs preserved quadrature information.",
      "sources": [
        "rust/progressive_audio.rs",
        "rust/generic.rs"
      ]
    },
    {
      "layer": "Modulation",
      "format": "2-FSK / GFSK / GMSK",
      "implementation": "Native",
      "evidence": "Recording-tested",
      "scope": "Phase-discriminator and channel-conditioned IQ paths, plus demodulated-audio portfolios. Explicit baud rate, deviation, filtering and framing; not arbitrary M-FSK.",
      "sources": [
        "rust/dsp.rs",
        "rust/progressive_audio.rs",
        "rust/generic.rs"
      ]
    },
    {
      "layer": "Modulation",
      "format": "AFSK / Bell 202",
      "implementation": "Native",
      "evidence": "Replay / component-tested",
      "scope": "Configured mark/space tones and timing banks for audio and IQ. Engineering coverage does not imply a measured advantage on every AFSK mission.",
      "sources": [
        "rust/afsk_legacy.rs",
        "rust/dsp.rs",
        "reports/rust-migration-inventory-v1.md"
      ]
    },
    {
      "layer": "Modulation",
      "format": "BPSK",
      "implementation": "Native",
      "evidence": "Recording-tested",
      "scope": "Coherent carrier/timing acquisition and polarity hypotheses. Real archived BPSK tests exist; acquisition range and supported protocol still depend on the plan.",
      "sources": [
        "rust/psk.rs",
        "rust/psk_acquisition.rs",
        "reports/psk-demodulator-repair-20260912.md"
      ]
    },
    {
      "layer": "Modulation",
      "format": "QPSK",
      "implementation": "Native",
      "evidence": "Recording-tested: Meteor M2",
      "scope": "Coherent IQ frontend with Cartesian/Gray ambiguities. Original Meteor M2 at 72 ksymbol/s is demonstrated; no universal QPSK or differential-mapping claim.",
      "sources": [
        "rust/psk.rs",
        "rust/meteor.rs",
        "work/meteor-daylight-20260913/README.md"
      ]
    },
    {
      "layer": "Modulation",
      "format": "OQPSK",
      "implementation": "Native",
      "evidence": "Recording-tested: Meteor M2-x",
      "scope": "Delayed-branch and pairing hypotheses. M2-2/M2-3 at 72 ksymbol/s are demonstrated. Interleaved 80 ksymbol/s Meteor and SOQPSK are not supported by this profile.",
      "sources": [
        "rust/psk.rs",
        "rust/meteor.rs",
        "docs/meteor-lrpt.md"
      ]
    },
    {
      "layer": "Modulation",
      "format": "CW / Morse",
      "implementation": "Native inspection",
      "evidence": "Candidate extraction only",
      "scope": "Narrowband CI16 probe and Morse candidates. Text remains untrusted and is excluded from validated telemetry counts.",
      "sources": [
        "rust/cw.rs",
        "reports/rust-migration-inventory-v1.md"
      ]
    },
    {
      "layer": "Coding",
      "format": "NRZI / G3RUH / randomization",
      "implementation": "Native",
      "evidence": "Recording + component tests",
      "scope": "AX.25 line coding and G3RUH; configured CCSDS TM255, TM131071 and TC255. Meteor M2-x NRZ-M follows Viterbi. Order and reset are profile-specific.",
      "sources": [
        "rust/protocol.rs",
        "rust/coded.rs",
        "rust/meteor.rs"
      ]
    },
    {
      "layer": "Coding",
      "format": "Convolutional / Viterbi",
      "implementation": "Native: Meteor path",
      "evidence": "Recording-tested",
      "scope": "Soft K=7, rate 1/2, polynomials 0x4f/0x6d for Meteor LRPT. Not a generic punctured-code bank or universal CCSDS concatenated receiver.",
      "sources": [
        "rust/convolutional.rs",
        "rust/meteor.rs",
        "docs/meteor-lrpt.md"
      ]
    },
    {
      "layer": "Coding",
      "format": "Reed–Solomon",
      "implementation": "Native",
      "evidence": "Recording + independent vectors",
      "scope": "GF(256), configurable shortening/interleaving and conventional/CCSDS dual basis. RS(255,223) preset; Meteor verifies four lanes. Syndrome success is not an independent CRC.",
      "sources": [
        "rust/fec_rs.rs",
        "rust/fec.rs",
        "docs/fec-support.md"
      ]
    },
    {
      "layer": "Coding",
      "format": "LDPC",
      "implementation": "Native, limited profiles",
      "evidence": "Component-tested",
      "scope": "Soft normalized min-sum with an explicit sparse parity-check matrix and output mapping. TC(128,64) and TC(512,256) presets; no AR4JA, DVB-S2 or full TC CLTU receiver.",
      "sources": [
        "rust/fec_ldpc.rs",
        "docs/fec-support.md"
      ]
    },
    {
      "layer": "Framing",
      "format": "AX.25 / HDLC",
      "implementation": "Native",
      "evidence": "Recording-tested",
      "scope": "Strict UI-frame parsing with the received CRC16/X.25 FCS. Plain/G3RUH variants. Plausible headers or repaired CRC bytes do not independently validate a frame.",
      "sources": [
        "rust/protocol.rs",
        "rust/generic.rs"
      ]
    },
    {
      "layer": "Framing",
      "format": "CCSDS TM / Space Packets",
      "implementation": "Native, configured subsets",
      "evidence": "Component + Meteor packet tests",
      "scope": "TM with configured layout/FECF and Space Packets with explicit integrity. Meteor adds AOS M_PDU packet reassembly across frames; generic mission payload interpretation is separate.",
      "sources": [
        "rust/protocol.rs",
        "rust/space_packet_stream.rs",
        "docs/meteor-lrpt.md"
      ]
    },
    {
      "layer": "Framing",
      "format": "CSP v1 / v2",
      "implementation": "Native parser / coded-sync",
      "evidence": "Component-tested",
      "scope": "Network-order headers with an explicit CRC32C scope. No fragmentation, RDP, HMAC or security extensions; mission radio framing must be configured.",
      "sources": [
        "rust/space_link.rs",
        "rust/coded.rs",
        "docs/space-link-support.md"
      ]
    },
    {
      "layer": "Framing",
      "format": "CCSDS AOS / USLP",
      "implementation": "Native parsers, limited subsets",
      "evidence": "Component-tested",
      "scope": "AOS Issue-5 and non-truncated USLP with configured layout and optional parser FECF; coded-sync requires integrity. No SDLS, AOS FHEC or generic cross-frame service reassembly.",
      "sources": [
        "rust/space_link.rs",
        "docs/space-link-support.md"
      ]
    },
    {
      "layer": "Image link",
      "format": "Geoscan CC1125 / JPEG",
      "implementation": "Native framing and assembly",
      "evidence": "Recording-tested",
      "scope": "Mission-specific synchronization, CRC and single-image byte assembly. Incomplete data stays incomplete; the browser renders the resulting JPEG.",
      "sources": [
        "rust/geoscan.rs",
        "rust/generic.rs"
      ]
    },
    {
      "layer": "Image link",
      "format": "Endurosat / SSDV (GASPACS)",
      "implementation": "Research adapter + external image decoder",
      "evidence": "Recording-tested",
      "scope": "CRC16-checked link frames and SSDV CRC32 checks. The shared GASPACS SSDV implementation reconstructs both images. Not a complete released native image CLI.",
      "sources": []
    },
    {
      "layer": "Image link",
      "format": "Meteor LRPT / MSU-MR",
      "implementation": "Native IQ-to-packets; SatDump image assembly",
      "evidence": "Recording-tested",
      "scope": "Explicit M2 and M2-x 72 ksymbol/s profiles. Same unchanged MSU-MR renderer on both arms. Displayed unions preserve reference data; standalone native gains and misses remain separate.",
      "sources": [
        "rust/meteor.rs",
        "rust/meteor_cli.rs",
        "rust/space_packet_stream.rs",
        "docs/meteor-lrpt.md"
      ]
    }
  ],
  "sourceFiles": [
    {
      "file": "rust/input.rs",
      "sha256": "18b333e99d0c6445e1800c1b89a5db933ac2b007da031bbfc34bb9e1b21fd707"
    },
    {
      "file": "rust/formats.rs",
      "sha256": "8360e10442e827d502d24b1f348a806f71cd04f08c09b2d235b0060c67111ec6"
    },
    {
      "file": "rust/meteor_cli.rs",
      "sha256": "e3b01fd2146085d059e971c85916ac5fda1c371b677bcdb43f5760592f792a5c"
    },
    {
      "file": "rust/progressive_audio.rs",
      "sha256": "2615c00826df1c068e27114af780e62387b029fc24813623071f06c25dbef5bb"
    },
    {
      "file": "rust/generic.rs",
      "sha256": "d296559431d48e8cc464f683dc98a545d4425a8d85ccd268ccc6c15b0085eb6b"
    },
    {
      "file": "rust/dsp.rs",
      "sha256": "476508e17c1ae17640ce660bdf6e1584d657c353ea706ba6b24e27cc583ad990"
    },
    {
      "file": "rust/afsk_legacy.rs",
      "sha256": "4c27a239d5064b490dac6f55768aaba8287c5815896a394087bc158b58fcbb26"
    },
    {
      "file": "reports/rust-migration-inventory-v1.md",
      "sha256": "0e70f6bfdaba41e7f6914d469fe1b2d09e9f9094cff35a76dcaf06f00e3a6de3"
    },
    {
      "file": "rust/psk.rs",
      "sha256": "a6d79ae8174b068ce3906cec342f1a68b064095a1108edac067f16de08a4d2ba"
    },
    {
      "file": "rust/psk_acquisition.rs",
      "sha256": "5a2789c13e287b850014fa4214571c9ea509c53e00d351cc59fdae2e63b322a7"
    },
    {
      "file": "reports/psk-demodulator-repair-20260912.md",
      "sha256": "4b7ad2330f6eb3edda5339a6b6abbc55dbc43804990e1c74181441961910997c"
    },
    {
      "file": "rust/meteor.rs",
      "sha256": "3d5f5e77e2bf292742a74824b4450adfff26ecb4be2e0a34686291126d2c34b0"
    },
    {
      "file": "work/meteor-daylight-20260913/README.md",
      "sha256": "b798028394c574452ee407f64233579705220933694396622d02aea768266c4a"
    },
    {
      "file": "docs/meteor-lrpt.md",
      "sha256": "f6d0689ecd9e1a52d04f526b48eb5099094417eb549ec5f3d7ec98b4c34e1467"
    },
    {
      "file": "rust/cw.rs",
      "sha256": "6a70f1280ea7800f9c022348d77981073d682868117e72734e8f129fae4916e8"
    },
    {
      "file": "rust/protocol.rs",
      "sha256": "caa843e2b6dcfd766dc19894933d81c3f7c454d4313ef449e144ebc38c1e382d"
    },
    {
      "file": "rust/coded.rs",
      "sha256": "05e6b3c1f05587db09e5c03139cf27e139b2ae6b8181ebeed6fd603b4784d31e"
    },
    {
      "file": "rust/convolutional.rs",
      "sha256": "ce6f8e7bb507b630ec25c8ee73770af7fab2ea6a93d83b16d296a19e11ff8ea7"
    },
    {
      "file": "rust/fec_rs.rs",
      "sha256": "49169ea88bc57d04a06c8a0a8d29c56dc9223f31e62dc3330ce04ae6d3b0d8b6"
    },
    {
      "file": "rust/fec.rs",
      "sha256": "9e10c17b726cd45874ca0795590c8888a869735b7d0f117bcb97818f45c4e7c1"
    },
    {
      "file": "docs/fec-support.md",
      "sha256": "3c657cccc296ed3d29dca3148856767af6cd4adfba7a8c341204f8919285db7b"
    },
    {
      "file": "rust/fec_ldpc.rs",
      "sha256": "22c6cc6f3afb3315e11278b946a67867d4eeaf9d9dcfdfec4dfbfc48a65410b8"
    },
    {
      "file": "rust/space_packet_stream.rs",
      "sha256": "1aec137541e41f3a1f47ae414751e0c9c46c85e1d959177a9011eb00fd948ed8"
    },
    {
      "file": "rust/space_link.rs",
      "sha256": "bce60fa7eefb48df63a9c11802dbbdf114ecc1260c31b8a37f9b29db4e50c74e"
    },
    {
      "file": "docs/space-link-support.md",
      "sha256": "be4db42aa072493258161926b6ed4f27ec8b56b50c3b9999bb7bed8b48ce9cee"
    },
    {
      "file": "rust/geoscan.rs",
      "sha256": "e25a554c1a7a799104ad0df6b79359bf9deafa5a140d08bf157fdf506285e723"
    }
  ],
  "externalEvidence": [
    {
      "asset": "assets/gaspacs-5365011-verification.json",
      "sha256": "32a3d4a321193e07f579f7f62a89c75c9c38d93a9b16a92bccbf1d28429c63d4"
    }
  ],
  "notes": [
    "Generic capability CLI predates the dedicated Meteor path; this table explicitly distinguishes them.",
    "SSTV: SatNOGS/gr-satnogs PD120 comparison only; no demonstrated native gain.",
    "No claim of complete support for all modulations, CCSDS coding families or mission applications."
  ]
}
