15.105 14.4.30 Ejemplo JSON mínimo
{
"attemptId": "ATT-2026-07-31-001",
"moveEpisodeId": "ME-0007",
"episodeKind": "ContactChange",
"sourceContactSet": [
"CP-left-hand-H12",
"CP-right-foot-H03"
],
"targetContactSet": [
"CP-right-hand-H18",
"CP-right-foot-H03"
],
"boundaries": [
{
"eventType": "MovementOnset",
"nominalTimestampNs": 12180000000,
"earliestTimestampNs": 12130000000,
"latestTimestampNs": 12220000000,
"probability": 0.88,
"detectionMode": "OfflineSmoothed"
},
{
"eventType": "TargetTouch",
"nominalTimestampNs": 12870000000,
"earliestTimestampNs": 12830000000,
"latestTimestampNs": 12920000000,
"probability": 0.94,
"contactEpisodeIds": [
"CE-right-palm-H18"
]
},
{
"eventType": "TargetLoadOnset",
"nominalTimestampNs": 12960000000,
"earliestTimestampNs": 12900000000,
"latestTimestampNs": 13040000000,
"probability": 0.79,
"contactEpisodeIds": [
"CE-right-palm-H18"
]
}
],
"wholeBodyPhases": [
"Initiation",
"SupportedTransit",
"AcquisitionImpact",
"LoadTransfer",
"Stabilization"
],
"outcome": "Established",
"qualityFlags": [
"NO_DIRECT_FORCE_SENSOR",
"TARGET_TOUCH_VISIBLE",
"LOAD_ONSET_INFERRED"
]
}El ejemplo separa touch de load y conserva ventanas temporales. No declara Newtons ni etiqueta definitiva de movimiento.