{ "sampling_rate_hz": 100, "component_order": "ZNE", "tensor_layout": "batch, component, sample", "dtype": "float32", "reference_window_samples": 3001, "normalization": "per-component demean, divide by population std + 1e-10", "zero_std": "replace zero std by 1 before division", "missing_components": "Legacy training randomly copies a present component into missing channels. Supply complete components for deterministic inference; no filling is performed by the loader or encode()." }