Extension Policy and Registry Guide
This guide defines how vendors extend the Fitness Data Standard (FDS) without breaking interoperability and how common extensions can be promoted toward standardization.
Goals
- Avoid key collisions across vendors.
- Keep extensions self‑describing and discoverable.
- Provide a pathway to standardize widely adopted patterns.
Where to Extend
attributes: Simple key/values for lightweight extensions that may be promoted.extensions: Vendor‑scoped objects for complex domain data.
Namespacing Rules
- Use the
x:prefix to indicate non‑standard keys. - Attributes:
x:<vendor>.<feature>(e.g.,x:vitness.stanceWidth). - Extensions:
x:<vendor>orx:<vendor>.<domain>(e.g.,x:vitness,x:gym-management). - Choose a stable
<vendor>(company name or reverse‑DNS likex:org.vitness). Keep it consistent. - Do not use
fds:or unprefixed keys for extensions.
Versioning Extensions
- Keep extension payloads backward compatible when possible.
- If breaking, include an explicit version inside your extension namespace (e.g.,
extensions: { "x:vitness": { "version": "2" } }).
Example
{
"attributes": {
"x:vitness.stanceWidth": "shoulder-width",
"x:org.example.videoQuality": "1080p"
},
"extensions": {
"x:vitness": {
"tempo": { "eccentric": 3, "isometric": 1, "concentric": 1 },
"rangeOfMotion": { "standard": "hip-crease below knee" }
},
"x:gym-management": {
"inventory": { "count": 5, "location": "free-weight-area" },
"maintenance": { "lastInspection": "2025-08-15", "nextDue": "2025-11-15" }
}
}
}
Consumer Behavior
- MUST ignore unknown keys in
attributesandextensions. - SHOULD validate extension values against local contracts if known (optional).
Promotion Path
- Adoption: An extension gains adoption across multiple independent implementers.
- Proposal: Submit an RFC to promote the concept into the core schema or to a standardized extension spec.
- Review: Editors evaluate semantics, naming, and compatibility.
- Standardize: If accepted, the feature moves into core (Minor release) or a named standardized extension.
Collision Resolution
- Prefer reverse‑DNS style vendor keys to reduce collision risk.
- If a collision is discovered, coordinate via issue/PR; Editors may suggest renaming or scoping.
Security & Privacy
- Do not include secrets or PII in extensions unless mandated by your application and protected accordingly.
- Treat extension URIs/media with the same transport and authorization controls as core data.