HSI is a data contract. It does not specify models, sensor pipelines, SDKs, or device assumptions.
What HSI is (and is not)
- HSI is: a stable, versioned payload contract; a schema you can validate against; and a compatibility policy for evolution.
- HSI is not: an SDK, an inference model, a sensor pipeline, or a device specification.
Canonical payload (HSI 1.0)
An HSI payload is a single JSON object with required top-level fields:hsi_version:"1.0"(contract version).observed_at_utc: RFC 3339 timestamp (event-time; typically aligns with the latest window end).computed_at_utc: RFC 3339 timestamp (processing-time; must be (\ge)observed_at_utc).producer: identity of the producing system (non-PII).window_idsandwindows: declared time windows (required).privacy: privacy assertions (required;contains_piimust befalse).
axes: human-state axis readings grouped by domain.source_idsandsources: declared sources and their quality/degraded status.embeddings: window-scoped latent vectors (sensitive; optional).meta: extra non-normative metadata (string/number/bool/null only).
Example: full payload
Windows (required)
HSI uses named windows so multiple readings can reference a shared time scope without repeating timestamps.- Each window MUST have
startandend(RFC 3339). - A producer MUST ensure
end >= start. - For strict validation,
window_idsmust exactly match the keys ofwindows.
Axes (optional)
Human-state outputs are expressed as axis readings grouped by domain underaxes.
Each axis reading MUST include:
axis: name inlower_snake_case(e.g.,valence,arousal,task_persistence).score: number in ([0, 1]).confidence: number in ([0, 1]).window_id: must reference one of the declared windows.
direction: one ofhigher_is_more,higher_is_less,bidirectional,categorical.evidence_source_ids: list of declared sources used for this reading.unit: optional free-form unit string (useful for behavior-like metrics).notes: non-normative notes (MUST NOT contain PII).
Domain model
HSI 1.0 permits these domains underaxes:
affectengagementbehavior
axis values). Consumers SHOULD treat unknown domains as invalid for strict schema validation (the canonical schema sets additionalProperties: false for axes).
Sources (optional, but paired)
Sources describe input channels used (or expected) by the producer. They are not device claims and MUST NOT contain PII.- If either
sourcesorsource_idsis present, both MUST be present. - For strict validation,
source_idsmust exactly match the keys ofsources. - A source MUST include:
type:sensor | app | self_report | observer | derived | otherquality: number in ([0, 1])degraded: boolean
evidence_source_ids is present on a reading, strict validation requires that sources/source_ids exist and all referenced source ids are declared.
Embeddings (optional, sensitive)
Embeddings are optional window-scoped vectors for latent state. Each embedding MUST include:window_id: declared window iddimension: integerencoding:float32 | float64 | fp16 | int8confidence: number in ([0, 1])
vector is present, strict validation requires dimension == len(vector).
Privacy (required)
Every payload MUST includeprivacy, and privacy.contains_pii MUST be false.
If a producer cannot guarantee contains_pii=false, it MUST NOT emit HSI payloads.
Validation & compliance
HSI defines two validator compliance levels:- HSI-VALIDATE-BASIC: Draft 2020-12 schema validation (structure + ranges).
- HSI-VALIDATE-STRICT: basic validation plus cross-field integrity checks, including:
computed_at_utc >= observed_at_utcwindow_idsexactly matcheswindowskeyssource_idsexactly matchessourceskeys (when present)- every
window_idreference is declared evidence_source_idsonly references declared sources (and requires sources to exist)embedding.dimension == len(embedding.vector)when vector is present
Versioning
HSI uses Semantic Versioning asMAJOR.MINOR (patch is not used for payload compatibility).
- Major: breaking changes; consumers supporting
1.xMUST reject2.0+unless explicitly updated. - Minor: backward-compatible additions/clarifications within the same major.
- Unknown top-level fields MUST be rejected under strict schema validation (
additionalProperties: false). - Unknown axes (new
axisvalues) MUST be tolerated.
Synheart Core implementation
If you’re using Synheart’s SDK, the HSI contract is implemented by Synheart Core:HSI Version: 1.0
Last Updated: 2025-12-28