ECG Record schema 1.1 — field reference¶
Emitted by this release: 1.1.0. Readers accept schema major 1. JSON Schema: ecgfeat/schemas/ecg-record/1.1/schema.json ($id urn:ecg-record:1.1).
Validation tiers come only from the shipped registry (validation-evidence.json); a field can claim more than unvalidated only by citing an evidence manifest (see tools/check_validation_registry.py).
Published fields¶
| Pointer | Profiles | Validation (ceiling) | Evidence | Validated for | Engine source | Known limitations |
|---|---|---|---|---|---|---|
/delineation/fiducials/p_onset |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/p/onset |
P-wave delineation is the weakest endpoint in the repository's LUDB/QTDB benchmarks; P waves are frequently missed at short RR (<600 ms) or when the P wave overlaps the preceding T wave. |
/delineation/fiducials/p_peak |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/p/peak |
P-wave delineation is the weakest endpoint in the repository's LUDB/QTDB benchmarks; P waves are frequently missed at short RR (<600 ms) or when the P wave overlaps the preceding T wave. |
/delineation/fiducials/p_offset |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/p/offset |
P-wave delineation is the weakest endpoint in the repository's LUDB/QTDB benchmarks; P waves are frequently missed at short RR (<600 ms) or when the P wave overlaps the preceding T wave. |
/delineation/fiducials/qrs_onset |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/qrs/onset |
— |
/delineation/fiducials/r_peak |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/r_peak_index |
— |
/delineation/fiducials/qrs_offset |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/qrs/offset |
— |
/delineation/fiducials/j_point |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/j_index |
— |
/delineation/fiducials/t_offset |
summary, all, debug | benchmark_validated (benchmark_validated) | ludb-t-offset-lead-1.1 |
Resting 10 s, 500 Hz, 12-lead ECGs of the LUDB 1.0.1 population, input_mode standard_12, default configuration; per-beat, per-lead cell paired with the expert annotation of the same lead; CSE delineation tolerance: error SD not above 30.6 ms | /beat_features/*/t/offset |
LUDB vs expert reference: mean +4.8 ms, SD 28.1 ms (n=19393), beat x lead cells, CSE tolerance 30.6 ms, sensitivity 99.4%. |
/delineation/fiducials/t_onset |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/t/onset |
T onset bounds the ST segment for display and J-point search only; no published interval is derived from it and it has no LUDB/QTDB benchmark here. |
/delineation/fiducials/t_peak |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/t/peak |
— |
/measurements/intervals/p_duration_ms |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/p_dur_ms |
P-wave delineation is the weakest endpoint in the repository's LUDB/QTDB benchmarks; P waves are frequently missed at short RR (<600 ms) or when the P wave overlaps the preceding T wave. |
/measurements/intervals/pr_interval_ms |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/pr_ms |
P-wave delineation is the weakest endpoint in the repository's LUDB/QTDB benchmarks; P waves are frequently missed at short RR (<600 ms) or when the P wave overlaps the preceding T wave. |
/measurements/intervals/qrs_duration_ms |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/qrs_ms |
Per-beat per-lead QRS width; the record-level consensus QRS can differ from per-lead widths near 100-120 ms. |
/measurements/intervals/qt_interval_ms |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/qt_ms |
Raw measured interval; it is not formal QT reporting and is not rate corrected. |
/measurements/intervals/tpeak_tend_ms |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/tpe_ms |
— |
/measurements/intervals/jt_interval_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/jt_ms |
— |
/measurements/amplitudes/p_amplitude_uv |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/p_amp_mv |
LUDB distributes amplitude-normalised signals, so LUDB results cannot validate amplitudes. P-wave delineation is the weakest endpoint in the repository's LUDB/QTDB benchmarks; P waves are frequently missed at short RR (<600 ms) or when the P wave overlaps the preceding T wave. |
/measurements/amplitudes/r_amplitude_uv |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/r_amp_mv |
LUDB distributes amplitude-normalised signals, so LUDB results cannot validate amplitudes. |
/measurements/amplitudes/s_amplitude_uv |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/s_amp_mv |
LUDB distributes amplitude-normalised signals, so LUDB results cannot validate amplitudes. |
/measurements/amplitudes/st_80ms_uv |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/st_80ms_mv |
LUDB distributes amplitude-normalised signals, so LUDB results cannot validate amplitudes. Legacy native ST level at J+80 ms on the analysis signal; the opt-in hybrid ST sources do not replace this published value. |
/measurements/amplitudes/t_amplitude_uv |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/t_amp_mv |
LUDB distributes amplitude-normalised signals, so LUDB results cannot validate amplitudes. |
/measurements/amplitudes/u_amplitude_uv |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/u_amp_signed_mv |
LUDB distributes amplitude-normalised signals, so LUDB results cannot validate amplitudes. |
/measurements/areas/qrs_signed_area_uv_ms |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/qrs_signed_area |
Trapezoid integral of the baseline-subtracted analysis signal over [QRS onset, QRS offset] inclusive; legacy unit mV x internal sample converted by 1e6 / internal_fs. |
/measurements/global/heart_rate_bpm |
summary, all, debug | indirectly_validated (benchmark_validated) | ptbxl-heart-rate-bpm-record-1.1 |
Resting 10 s, 500 Hz, 12-lead ECGs of the PTB-XL 1.0.1 patient-disjoint hold-out (3,000 records), input_mode standard_12, default configuration; record-level value; agreement with GE 12SL; criterion: CSE-trimmed SD not above the Uni-G minus 12SL SD and |mean| not above max(|Uni-G minus 12SL mean|, 1 /min) | /global_features/heart_rate_bpm |
PTB-XL hold-out vs GE 12SL (indirect): mean +0.0 /min, SD 0.8 /min (n=2992); Glasgow Uni-G vs 12SL on the same records: mean -0.5 /min, SD 1.2 /min. |
/measurements/global/frontal_qrs_axis_deg |
summary, all, debug | indirectly_validated (benchmark_validated) | ptbxl-frontal-qrs-axis-deg-record-1.1 |
Resting 10 s, 500 Hz, 12-lead ECGs of the PTB-XL 1.0.1 patient-disjoint hold-out (3,000 records), input_mode standard_12, default configuration; record-level value; agreement with GE 12SL; criterion: CSE-trimmed SD not above the Uni-G minus 12SL SD and |mean| not above max(|Uni-G minus 12SL mean|, 1 deg) | /global_features/qrs_axis_deg |
not_applicable(input_mode_limited) for limited input. PTB-XL hold-out vs GE 12SL (indirect): mean -0.5 deg, SD 5.6 deg (n=2991); Glasgow Uni-G vs 12SL on the same records: mean +0.1 deg, SD 6.7 deg. |
/measurements/global/qtc_bazett_ms |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /global_features/qtc_bazett_ms |
Formal QTc; not_applicable(input_mode_limited) for limited input. |
/measurements/global/qrs_wide_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /global_features/qrs_wide_ms |
— |
/measurements/flags/p_present |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/wave_observations/p |
Algorithm observation, not proof of physiological absence; read the per-cell reason and scope. |
/measurements/flags/qrs_present |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/wave_observations/qrs |
Algorithm observation, not proof of physiological absence; read the per-cell reason and scope. |
/measurements/flags/q_present |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/wave_observations/q |
Algorithm observation, not proof of physiological absence; read the per-cell reason and scope. |
/measurements/flags/r_present |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/wave_observations/r |
Algorithm observation, not proof of physiological absence; read the per-cell reason and scope. |
/measurements/flags/s_present |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/wave_observations/s |
Algorithm observation, not proof of physiological absence; read the per-cell reason and scope. |
/measurements/flags/r_prime_present |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/wave_observations/r_prime |
Algorithm observation, not proof of physiological absence; read the per-cell reason and scope. |
/measurements/flags/s_prime_present |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/wave_observations/s_prime |
Algorithm observation, not proof of physiological absence; read the per-cell reason and scope. |
/measurements/flags/t_present |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/wave_observations/t |
Algorithm observation, not proof of physiological absence; read the per-cell reason and scope. |
/measurements/flags/u_present |
all, debug | unvalidated (benchmark_validated) | — | — | /beat_features/*/wave_observations/u |
Algorithm observation, not proof of physiological absence; read the per-cell reason and scope. |
/measurements/global/p_duration_ms |
summary, all, debug | benchmark_validated (benchmark_validated) | ludb-p-duration-ms-record-1.1 |
Resting 10 s, 500 Hz, 12-lead ECGs of the LUDB 1.0.1 population (adults and children, sinus and non-sinus rhythms), input_mode standard_12, default configuration; record-level value; IEC 60601-2-25 global-interval limits ±10/15 ms after CSE trimming | /global_features/p_duration_ms |
Record-level value from the engine's global measurement; read the feature state before use. LUDB vs expert reference: mean -0.1 ms, SD 11.8 ms (n=167). |
/measurements/global/pr_interval_ms |
summary, all, debug | benchmark_validated (benchmark_validated) | ludb-pr-interval-ms-record-1.1 |
Resting 10 s, 500 Hz, 12-lead ECGs of the LUDB 1.0.1 population (adults and children, sinus and non-sinus rhythms), input_mode standard_12, default configuration; record-level value; IEC 60601-2-25 global-interval limits ±10/10 ms after CSE trimming | /global_features/pr_ms |
Record-level PR; withheld when lead-level P onsets conflict. LUDB vs expert reference: mean +2.9 ms, SD 5.5 ms (n=165). |
/measurements/global/qrs_duration_ms |
summary, all, debug | benchmark_validated (benchmark_validated) | ludb-qrs-duration-ms-record-1.1, ptbxl-qrs-duration-ms-record-1.1 |
Resting 10 s, 500 Hz, 12-lead ECGs of the LUDB 1.0.1 population (adults and children, sinus and non-sinus rhythms), input_mode standard_12, default configuration; record-level value; IEC 60601-2-25 global-interval limits ±10/10 ms after CSE trimming | /global_features/qrs_ms |
Record-level value from the engine's global measurement; read the feature state before use. LUDB vs expert reference: mean +2.8 ms, SD 6.3 ms (n=192). PTB-XL hold-out vs GE 12SL (indirect): mean -0.1 ms, SD 7.8 ms (n=2992), within the same limits. |
/measurements/global/qt_interval_ms |
summary, all, debug | benchmark_validated (benchmark_validated) | ludb-qt-interval-ms-record-1.1, ptbxl-qt-interval-ms-record-1.1 |
Resting 10 s, 500 Hz, 12-lead ECGs of the LUDB 1.0.1 population (adults and children, sinus and non-sinus rhythms), input_mode standard_12, default configuration; record-level value; IEC 60601-2-25 global-interval limits ±25/30 ms after CSE trimming | /global_features/qt_ms |
Record-level QT from the multilead T-end fusion; check the feature state (qt_not_reportable marks a value that failed the QT reportability gate). About 30% of values carry a non-observed feature state (QT reportability gate); they are included in the evidence above; read the state before using a value. LUDB vs expert reference: mean +9.9 ms, SD 9.9 ms (n=192). PTB-XL hold-out vs GE 12SL (indirect): mean +0.5 ms, SD 13.5 ms (n=2983), within the same limits. |
/measurements/global/qtc_fridericia_ms |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /global_features/qtc_fridericia_ms |
Record-level value from the engine's global measurement; read the feature state before use. |
/measurements/global/qtc_framingham_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /global_features/qtc_framingham_ms |
Record-level value from the engine's global measurement; read the feature state before use. |
/measurements/global/qtc_hodges_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /global_features/qtc_hodges_ms |
Record-level value from the engine's global measurement; read the feature state before use. |
/measurements/global/p_axis_deg |
summary, all, debug | indirectly_validated (benchmark_validated) | ptbxl-p-axis-deg-record-1.1 |
Resting 10 s, 500 Hz, 12-lead ECGs of the PTB-XL 1.0.1 patient-disjoint hold-out (3,000 records), input_mode standard_12, default configuration; record-level value; agreement with GE 12SL; criterion: CSE-trimmed SD not above the Uni-G minus 12SL SD and |mean| not above max(|Uni-G minus 12SL mean|, 1 deg) | /global_features/p_axis_deg |
Withheld when the median-beat P wave fails or the rhythm has no organized P waves. PTB-XL hold-out vs GE 12SL (indirect): mean +0.8 deg, SD 11.3 deg (n=2589); Glasgow Uni-G vs 12SL on the same records: mean +0.7 deg, SD 14.1 deg. |
/measurements/global/t_axis_deg |
summary, all, debug | indirectly_validated (benchmark_validated) | ptbxl-t-axis-deg-record-1.1 |
Resting 10 s, 500 Hz, 12-lead ECGs of the PTB-XL 1.0.1 patient-disjoint hold-out (3,000 records), input_mode standard_12, default configuration; record-level value; agreement with GE 12SL; criterion: CSE-trimmed SD not above the Uni-G minus 12SL SD and |mean| not above max(|Uni-G minus 12SL mean|, 1 deg) | /global_features/t_axis_deg |
Hybrid area/amplitude T axis; unreliable at low T amplitude (feature state t_axis_quality_gate). PTB-XL hold-out vs GE 12SL (indirect): mean -0.1 deg, SD 11.8 deg (n=2921); Glasgow Uni-G vs 12SL on the same records: mean -0.9 deg, SD 17.7 deg. |
/measurements/global/qrs_t_angle_deg |
all, debug | unvalidated (benchmark_validated) | — | — | /global_features/qrs_t_angle_deg |
Record-level value from the engine's global measurement; read the feature state before use. |
/measurements/global/atrial_rate_bpm |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /global_features/atrial_rate_bpm |
Rate of detected atrial events; in AF/AFL it reflects the detector, not a physiological atrial rate. |
/measurements/global/heart_rate_min_bpm |
all, debug | unvalidated (benchmark_validated) | — | — | /global_features/heart_rate_min_bpm |
Record-level value from the engine's global measurement; read the feature state before use. |
/measurements/global/heart_rate_max_bpm |
all, debug | unvalidated (benchmark_validated) | — | — | /global_features/heart_rate_max_bpm |
Record-level value from the engine's global measurement; read the feature state before use. |
/measurements/global/rr_mean_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /global_features/rr_mean_ms |
Record-level value from the engine's global measurement; read the feature state before use. |
/measurements/global/rr_sd_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /global_features/rr_sd_ms |
Standard deviation of RR intervals over the record; ectopic beats are not excluded. |
/measurements/global/rmssd_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /global_features/rmssd_ms |
Short-record HRV; a 10 s record holds few intervals and ectopic beats are not excluded. |
/measurements/global/pnn50 |
all, debug | unvalidated (benchmark_validated) | — | — | /global_features/pnn50 |
Fraction (0-1) of successive RR differences above 50 ms; a 10 s record holds few intervals. |
/measurements/global/rr_cv |
all, debug | unvalidated (benchmark_validated) | — | — | /global_features/rr_cv |
Coefficient of variation of RR intervals (0-1 fraction). |
/measurements/global/qt_dispersion_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /global_features/qt_dispersion_ms |
Record-level value from the engine's global measurement; read the feature state before use. |
/measurements/global/ptf_v1_uv_ms |
all, debug | unvalidated (indirectly_validated) | — | — | /global_features/ptf_v1_mv_ms |
P-terminal force in V1 (negative terminal P amplitude x duration), median beat. |
/measurements/global/sokolow_lyon_uv |
all, debug | unvalidated (indirectly_validated) | — | — | /representative_leads/*/params/{s_amp_mv,r_amp_mv} |
S(V1) + max(R(V5), R(V6)) on median-beat amplitudes; a voltage measurement, not an LVH statement. |
/measurements/global/cornell_voltage_uv |
all, debug | unvalidated (indirectly_validated) | — | — | /representative_leads/*/params/{r_amp_mv,s_amp_mv} |
R(aVL) + S(V3) on median-beat amplitudes; a voltage measurement, not an LVH statement. |
/measurements/global/paced_beat_fraction |
all, debug | unvalidated (indirectly_validated) | — | — | /metadata/paced_beat_fraction |
Fraction (0-1) of beats with a confirmed pacing spike. |
/measurements/global/pacing_spike_count |
all, debug | unvalidated (indirectly_validated) | — | — | /global_features/pacing_spikes |
Number of pacing spikes accepted by the revised detector. |
/measurements/global/organized_p_fraction |
all, debug | unvalidated (indirectly_validated) | — | — | /metadata/rhythm_analysis/af_afl_summary/organized_p_ratio |
Fraction (0-1) of beats with an organized, conducted P wave (atrial rhythm evidence). |
/measurements/global/atrial_residual_rms_uv |
all, debug | unvalidated (indirectly_validated) | — | — | /metadata/rhythm_analysis/atrial_residual/residual_rms_mv |
RMS of the QRST-subtracted atrial residual; fibrillatory-wave evidence, sensitive to noise. |
/measurements/global/atrial_dominant_cycle_ms |
all, debug | unvalidated (indirectly_validated) | — | — | /metadata/rhythm_analysis/atrial_residual/dominant_cycle_ms |
Dominant cycle length of the atrial residual; flutter/fibrillation evidence, not a rhythm label. |
/measurements/intervals/rr_interval_ms |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /beats/*/rr_prev_ms |
Interval from the previous beat's R sample; the first beat is not_applicable. |
/measurements/intervals/median_p_duration_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/p_dur_ms |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/intervals/median_pr_interval_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/pr_ms |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/intervals/median_qrs_duration_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/qrs_ms |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/intervals/median_qt_interval_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/qt_ms |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/intervals/median_q_duration_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/q_duration_ms |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/amplitudes/median_p_amplitude_uv |
all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/p_amp_mv |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/amplitudes/median_q_amplitude_uv |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/q_amp_mv |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/amplitudes/median_r_amplitude_uv |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/r_amp_mv |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/amplitudes/median_s_amplitude_uv |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/s_amp_mv |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/amplitudes/median_r_prime_amplitude_uv |
all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/r_prime_amp_mv |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/amplitudes/median_st_j_uv |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/st_on_mv |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/amplitudes/median_st_40ms_uv |
all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/st_mid_mv |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/amplitudes/median_st_60ms_uv |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/st_hybrid_60ms_mv |
ST level 60 ms after the global J point on the median beat; published only when the global ST path ran. |
/measurements/amplitudes/median_st_80ms_uv |
all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/st_80ms_mv |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/amplitudes/median_t_amplitude_uv |
summary, all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/t_amp_mv |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
/measurements/areas/median_qrs_signed_area_uv_ms |
all, debug | unvalidated (benchmark_validated) | — | — | /representative_leads/*/params/qrs_signed_area_uv_ms |
Median (representative) beat of the dominant non-paced group, measured inside the global QRS window; differs from per-beat cells. |
Debug-only and capped quantities¶
| Quantity | Tier | Ceiling | Reason |
|---|---|---|---|
/debug/st_morphology |
internal_debug | known_problem | The four-class ST morphology was never validated and is anti-correlated with ischemia; it must not be used as ischemia evidence. |
/debug/st_pattern_class |
internal_debug | unvalidated | No stable definition or validation. |
/debug/st_t_confusion |
internal_debug | unvalidated | No stable definition or validation. |
st_hybrid_* |
internal_debug | unvalidated | Experimental opt-in ST bypass (22 legacy keys); may appear only in debug output. |
twelve_sl_* |
internal_debug | unvalidated | Vendor-style compatibility block (16 legacy keys); not part of the core schema. |
Top-level members¶
| Member | Required |
|---|---|
schema_version |
yes |
profile |
yes |
record_id |
yes |
intended_use |
no |
acquisition |
yes |
axes |
yes |
quality |
yes |
provenance |
yes |
delineation |
yes |
measurements |
yes |
artifacts |
yes |
metadata |
no |
debug |
no |
extensions |
no |
Absence states¶
Plain null (no stronger claim), unmeasurable(reason) and not_applicable(reason). Dense fields encode reasons as a whole-field {kind, reason}, a per-field default state, and sparse <beat_id>|<lead> maps that override it.