Conformance
This section explains conformance for humans.
Why Profiles?
Different tools have different jobs:
- XR runtime logs → real-time + FlatBuffers
- Biosensing research → heavy metadata, no robotics
- Robotics control → agent output + real-time streams
- CV training pipelines → big external media
Profiles let each tool adopt MIND in the way that makes sense.
The Core Profile
Every MIND file must meet the Core Profile.
This guarantees:
- valid streams
- valid metadata
- valid events
- correct timestamps
- schema consistency
If something fails Core Profile validation, it is not a MIND dataset.
Extensions
Extensions add new capabilities.
Tools say which ones they support.
Datasets say which ones they require.
If a dataset requires something the tool doesn't support → fail.
If a dataset only suggests something optional → ignore safely.
Required vs Optional Features
Some features are essential (required), some enhance interpretation (optional).
Examples:
- Required: HandPose
- Optional: FingerContact
This gives tools freedom while preserving correctness.
Error Classes
Errors are named so tools can report them clearly:
- UNRESOLVED_REFERENCE → “Stream references missing metadata”
- TIMESTAMP_VIOLATION → “Time goes backward”
- SCHEMA_MISMATCH → “Data doesn't match modality schema”
This helps developers debug quickly.
Machine-Readable Tests
Tools can validate themselves using official test files:
valid→ should passinvalid→ should failwarnings→ should parse with notes
This helps standardize the ecosystem.
Versioned Profiles
Profiles are versioned just like modalities and metadata.
This lets us evolve:
- XR profiles
- Biosensing profiles
- Robotics profiles
independently.
Compatibility Levels
Tools declare their level:
- Core (minimal)
- Full (all core features)
- Complete (including advanced ones like streaming, compression, extensions)
Think of it like a capability badge.
Forward/Backward Compatibility
MIND is designed to avoid breakage:
- Ignore unknown optional extensions
- Keep deprecated fields valid for a full major version
- Accept future minor versions
- Only fail on incompatible major versions
This is essential for long-lived datasets.