{
  "version": "1.1.1",
  "classes": {
    "absorbed-dose-equivalent": {
      "formats": {
        "sv": {
          "description": "Sievert",
          "type": "number"
        }
      },
      "description": "The radiation absorbed by a fixed mass of biological tissue."
    },
    "absorbed-dose-rate": {
      "formats": {
        "gy-s": {
          "description": "Gray per second",
          "type": "number"
        }
      },
      "description": "The absorbed dose of ionizing radiation imparted at a given location per unit of time (second, minute, hour, or day). "
    },
    "absorbed-dose": {
      "formats": {
        "gy": {
          "description": "Gray",
          "type": "number"
        }
      },
      "description": "The energy deposited in a medium by ionizing radiation per unit mass."
    },
    "activity": {
      "description": "The time spent on a given activity (tasks, sports, etc.).",
      "formats": {
        "plain": {
          "description": "Plain activity event with no specific content; the activity is defined by the event's stream, time and duration, and possibly description.",
          "type": "null"
        }
      }
    },
    "angle": {
      "formats": {
        "deg": {
          "description": "Degrees",
          "type": "number"
        },
        "grad": {
          "description": "Gradians",
          "type": "number"
        },
        "rad": {
          "description": "Radians",
          "type": "number"
        }
      },
      "description": "The figure formed by two rays."
    },
    "angular-acceleration": {
      "formats": {
        "rad-s2": {
          "description": "Radians per second squared",
          "type": "number"
        }
      },
      "description": "The rate of change of angular velocity."
    },
    "angular-speed": {
      "formats": {
        "rad-s": {
          "description": "Radians per second",
          "type": "number"
        }
      },
      "description": ""
    },
    "area": {
      "formats": {
        "ac": {
          "description": "Acres (imperial)",
          "type": "number"
        },
        "ft2": {
          "description": "Square feet",
          "type": "number"
        },
        "ha": {
          "description": "Hectares",
          "type": "number"
        },
        "in2": {
          "description": "Square inches",
          "type": "number"
        },
        "km2": {
          "description": "Square kilometers",
          "type": "number"
        },
        "m2": {
          "description": "Square meter",
          "type": "number"
        },
        "mm2": {
          "description": "Square millimeters",
          "type": "number"
        },
        "yd2": {
          "description": "Square yards",
          "type": "number"
        },
        "mi2": {
          "description": "Square miles",
          "type": "number"
        }
      },
      "description": "The extent of a two-dimensional surface or shape, or planar lamina, in the plane."
    },
    "attributes": {
      "description": "To record attributes, such as blood type, date of birth or skin type.",
      "formats": {
        "biological-sex": {
          "description": "An attribute type for the user’s sex",
          "type": "string",
          "enum": [
            "notSet",
            "female",
            "male",
            "other"
          ]
        },
        "blood-type": {
          "description": "An attribute type for the user’s blood type",
          "type": "string",
          "enum": [
            "notSet",
            "aPositive",
            "bPositive",
            "oPositive",
            "abPositive",
            "aNegative",
            "bNegative",
            "abNegative",
            "oNegative"
          ]
        },
        "skin-type": {
          "description": "An attribute type for the user’s skin type",
          "type": "string",
          "enum": [
            "notSet",
            "Pale white skin",
            "White skin",
            "White to light brown skin",
            "Beige-olive skin",
            "Brown skin",
            "Dark brown to black skin"
          ]
        }
      }
    },
    "audio": {
      "description": "To record audio (conversations, voice messages, etc.).",
      "formats": {
        "attached": {
          "description": "The audio source is the file attached to the event (no explicit content defined).\nYou can use the event's duration to mirror the recording's duration.",
          "type": "null",
          "attachmentRequired": true
        },
        "url": {
          "description": "A reference to an audio file online.",
          "type": "string",
          "pattern": "^(https?)://.+$"
        }
      }
    },
    "audiogram": {
      "description": "To record audiogram data.",
      "formats": {
        "data": {
          "type": "object",
          "properties": {
            "sensitivityPoints": {
              "description": "Array of sensitivity points",
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "frequency": {
                    "description": "The frequency tested in the hearing test. Unit: hz",
                    "type": "number"
                  },
                  "leftEarSensitivity": {
                    "description": "The sensitivity of the left ear. Unit: dB",
                    "type": "number"
                  },
                  "rightEarSensitivity": {
                    "description": "The sensitivity of the right ear. Unit: dB",
                    "type": "number"
                  }
                },
                "required": [
                  "frequency"
                ]
              },
              "start": {
                "description": "The start date for the sample. Unit: date in ISO 8601 format",
                "type": "string"
              },
              "end": {
                "description": "The end date for the sample. Unit: date in ISO 8601 format",
                "type": "string"
              },
              "metadata": {
                "type": "object"
              }
            },
            "required": [
              "sensitivityPoints",
              "start",
              "end"
            ]
          }
        }
      }
    },
    "audit-log": {
      "description": "Audit log",
      "formats": {
        "pryv-api": {
          "type": "object",
          "properties": {
            "source": {
              "description": "The origin of the action",
              "type": "object",
              "properties": {
                "name": {
                  "description": "The source of the call",
                  "type": "string"
                },
                "ip": {
                  "description": "The IP address of the source, if any",
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            },
            "action": {
              "description": "The action id",
              "type": "string"
            },
            "query": {
              "description": "The API call query parameters",
              "type": "object"
            }
          },
          "required": [
            "source",
            "action"
          ]
        },
        "pryv-api-error": {
          "type": "object",
          "properties": {
            "source": {
              "description": "The origin of the action",
              "type": "object",
              "properties": {
                "name": {
                  "description": "The source of the call",
                  "type": "string"
                },
                "ip": {
                  "description": "The IP address of the source, if any",
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            },
            "action": {
              "description": "The action id",
              "type": "string"
            },
            "query": {
              "description": "The API call query parameters",
              "type": "object"
            },
            "id": {
              "description": "The error id",
              "type": "string"
            },
            "message": {
              "description": "The error message",
              "type": "string"
            }
          },
          "required": [
            "source",
            "action",
            "id",
            "message"
          ]
        }
      }
    },
    "blood-pressure": {
      "description": "To record a blood pressure measurement.",
      "formats": {
        "mmhg-bpm": {
          "description": "The blood pressure measurement. Pressures are stored in mmHg and the heart rate in bpm",
          "type": "object",
          "properties": {
            "systolic": {
              "description": "Systolic pressure. Unit: mmHg.",
              "type": "number"
            },
            "diastolic": {
              "description": "Diastolic pressure. Unit: mmHg.",
              "type": "number"
            },
            "rate": {
              "description": "Heart rate. Unit: bpm",
              "type": "number"
            }
          },
          "required": [
            "systolic",
            "diastolic"
          ]
        }
      }
    },
    "boolean": {
      "description": "To record whether an attribute is true, e.g. if the user has a wheelchair.",
      "formats": {
        "bool": {
          "description": "An attribute type for true or false",
          "type": "boolean"
        }
      }
    },
    "calendar": {
      "description": "Calendar entries bridged from the iCalendar standard (RFC 5545). Produced by the calendar adapter when ingesting an external calendar feed into a Pryv account.",
      "formats": {
        "ical-event": {
          "description": "A single iCalendar VEVENT mapped to a Pryv event. The well-known fields are kept here for queryability; the verbatim VEVENT block is preserved in the event's `clientData._raw` for lossless round-trips. The event's own `time` / `duration` carry the canonical instant; `dtstart` / `dtend` mirror it as ISO 8601 strings.",
          "type": "object",
          "properties": {
            "uid": {
              "type": "string",
              "description": "VEVENT UID — stable identity used to de-duplicate on re-ingest."
            },
            "summary": {
              "type": "string"
            },
            "description": {
              "type": "string"
            },
            "location": {
              "type": "string"
            },
            "rrule": {
              "type": "string",
              "description": "Raw RRULE value, e.g. FREQ=DAILY;COUNT=10."
            },
            "organizer": {
              "type": "string"
            },
            "status": {
              "type": "string",
              "description": "VEVENT STATUS, e.g. CONFIRMED / TENTATIVE / CANCELLED."
            },
            "sequence": {
              "type": "integer",
              "minimum": 0
            },
            "dtstart": {
              "type": "string",
              "description": "Start as an ISO 8601 date-time (UTC)."
            },
            "dtend": {
              "type": "string",
              "description": "End as an ISO 8601 date-time (UTC), when present."
            },
            "dateOnly": {
              "type": "boolean",
              "description": "True for all-day (VALUE=DATE) entries."
            }
          },
          "required": [
            "dtstart"
          ]
        }
      }
    },
    "call": {
      "description": "To record references to phone calls (landline, mobile, Skype, etc.).",
      "formats": {
        "name": {
          "description": "The contact's name (or a free-form identifier)",
          "type": "string"
        },
        "skype": {
          "description": "The Skype id",
          "type": "string"
        },
        "telephone": {
          "description": "The phone number",
          "type": "string"
        }
      }
    },
    "capacitance": {
      "formats": {
        "f": {
          "description": "Farad",
          "type": "number"
        }
      },
      "description": "The ability of a body to store an electrical charge."
    },
    "catalytic-activity": {
      "formats": {
        "kat": {
          "description": "Katal",
          "type": "number"
        }
      },
      "description": "The  increase in rate of a chemical reaction due to the participation of a substance called a catalyst."
    },
    "clinical": {
      "description": "The clinical record stores information about a single condition, procedure, or result, along with a fhir resource underlying data from the user’s healthcare institution.",
      "formats": {
        "fhir": {
          "description": "Type to record the clinical information, including an attachment, corresponding to the data of the fhir resource.",
          "type": "object",
          "properties": {
            "displayName": {
              "type": "string",
              "description": "The primary display name of the clinical record."
            },
            "clinicalType": {
              "description": "An identifier that indicates the type of record, such as allergy or condition record.",
              "type": "string",
              "enum": [
                "allergyRecord",
                "immunizationRecord",
                "conditionRecord",
                "labResultRecord",
                "medicationRecord",
                "procedureRecord",
                "vitalSignRecord"
              ]
            },
            "fhir": {
              "description": "The Fast Healthcare Interoperability Resources (FHIR) data for this record.",
              "type": "object",
              "attachmentRequired": true,
              "properties": {
                "identifier": {
                  "type": "string",
                  "description": "The value from the FHIR resource’s id field."
                },
                "resourceType": {
                  "type": "string",
                  "enum": [
                    "allergyIntolerance",
                    "condition",
                    "immunization",
                    "medicationOrder",
                    "medicationDispense",
                    "medicationStatement",
                    "observation",
                    "procedure"
                  ]
                }
              },
              "required": [
                "identifier",
                "resourceType"
              ]
            },
            "required": [
              "displayName",
              "clinicalType"
            ]
          }
        }
      }
    },
    "concentration": {
      "formats": {
        "mmol-l": {
          "description": "Millimoles per liter",
          "type": "number"
        },
        "iu-l": {
          "description": "International Units per Liter",
          "type": "number"
        },
        "g-dl": {
          "description": "Grams per deciliter",
          "type": "number"
        },
        "g-l": {
          "description": "Grams per liter",
          "type": "number"
        },
        "mg-l": {
          "description": "Milligrams per liter",
          "type": "number"
        },
        "ug-l": {
          "description": "Microrams per liter",
          "type": "number"
        },
        "mg-dl": {
          "description": "Milligrams per deciliter",
          "type": "number"
        }
      },
      "description": "The concentration of a material in a mixture or solution."
    },
    "consent": {
      "description": "A consent assertion exchanged between two Pryv accounts as part of a cross-account access lifecycle (request → accept | refuse → revoke). Each format represents one state-transition in the consent state machine, plus the post-acceptance handshake step and scope-change continuations. The class is shared by the CMC plugin (open-pryv.io `components/cmc`) and may be reused by other consent-style protocols.",
      "formats": {
        "request-cmc": {
          "description": "Cross-account consent request issued by a requester (`cmc/request-v1` lineage). The plugin mints a single-use capability access from this trigger, embeds the URL in `content.capabilityUrl`, and delivers the request to the recipient.",
          "type": "object",
          "properties": {
            "to": {
              "description": "Recipient identity, or `null` for an open invite to be claimed via the capability URL."
            },
            "capabilityRequested": {
              "description": "When true, the plugin mints a single-use capability URL the recipient can open out-of-band.",
              "type": "boolean"
            },
            "request": {
              "description": "The consent assertion: localised title/description/consent text + the requested permissions + optional features and expiry.",
              "type": "object",
              "properties": {
                "title": {
                  "type": "object",
                  "description": "Localized text: language-code (2-3 lowercase letters) → string."
                },
                "description": {
                  "type": "object",
                  "description": "Localized text."
                },
                "consent": {
                  "type": "object",
                  "description": "Localized consent text."
                },
                "permissions": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "streamId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "level": {
                            "type": "string",
                            "enum": [
                              "manage",
                              "contribute",
                              "read",
                              "create-only",
                              "none"
                            ]
                          },
                          "defaultName": {
                            "type": "string",
                            "minLength": 1
                          },
                          "name": {
                            "type": "string"
                          },
                          "mandatory": {
                            "type": "boolean",
                            "description": "Consent-layer flag: this entry is required for the requesting app to function - an accept must include it (the consent UI locks it; the user's alternative is denying the whole request)."
                          }
                        },
                        "required": [
                          "streamId",
                          "level"
                        ]
                      },
                      {
                        "type": "object",
                        "properties": {
                          "feature": {
                            "type": "string",
                            "minLength": 1
                          },
                          "setting": {
                            "type": "string",
                            "enum": [
                              "forbidden"
                            ]
                          },
                          "mandatory": {
                            "type": "boolean",
                            "description": "Consent-layer flag: this entry is required for the requesting app to function - an accept must include it (the consent UI locks it; the user's alternative is denying the whole request)."
                          }
                        },
                        "required": [
                          "feature",
                          "setting"
                        ]
                      }
                    ]
                  }
                },
                "features": {
                  "type": "object",
                  "properties": {
                    "chat": {
                      "type": "boolean"
                    },
                    "systemMessaging": {
                      "type": "boolean"
                    }
                  }
                },
                "expiresAt": {
                  "type": "number",
                  "description": "Unix timestamp (seconds)."
                },
                "allowUserChoice": {
                  "type": "boolean",
                  "description": "Default false: the consent is ALL OR NOTHING (the user may only accept the whole permission set or deny). Set true to let the user cherry-pick entries on the consent screen (entries flagged `mandatory` stay locked)."
                },
                "accessType": {
                  "type": "string",
                  "enum": [
                    "shared",
                    "app"
                  ],
                  "description": "Pryv access type the accepted data-grant is minted as. Default `shared` (a non-delegable grant that cannot call `accesses.*`). Set `app` to make the grant delegable: the approved requester can `accesses.create` scoped, individually-named sub-accesses (permissions ⊆ the grant) for least-privilege re-delegation with per-actor audit attribution."
                }
              },
              "required": [
                "title",
                "description",
                "consent",
                "permissions"
              ]
            },
            "requesterMeta": {
              "type": "object",
              "properties": {
                "displayName": {
                  "type": "string"
                },
                "appId": {
                  "type": "string"
                },
                "appUrl": {
                  "type": "string"
                }
              }
            }
          },
          "required": [
            "to",
            "request"
          ]
        },
        "accept-cmc": {
          "description": "Cross-account consent accept (`cmc/accept-v1` lineage). Has two shapes: LOCAL TRIGGER (carries `capabilityUrl`, written by the accepter's app to start the accept flow) OR PEER-DELIVERED (carries `grantedAccess.apiEndpoint` + server-stamped `from`, written by the accepter's plugin to the requester's responses stream / inbox).",
          "type": "object",
          "properties": {
            "capabilityUrl": {
              "type": "string",
              "description": "Local-trigger shape: capability URL from the request."
            },
            "accessName": {
              "type": "string",
              "description": "Optional name for the data-grant access the accepter mints."
            },
            "grantedPermissions": {
              "type": "array",
              "minItems": 1,
              "description": "Optional consent downgrade: grant only this subset of the request's permissions (exact-entry identity; validated against the offer by the accepter's plugin).",
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "streamId": {
                        "type": "string",
                        "minLength": 1
                      },
                      "level": {
                        "type": "string",
                        "enum": [
                          "manage",
                          "contribute",
                          "read",
                          "create-only",
                          "none"
                        ]
                      },
                      "defaultName": {
                        "type": "string",
                        "minLength": 1
                      },
                      "name": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "streamId",
                      "level"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "feature": {
                        "type": "string",
                        "minLength": 1
                      },
                      "setting": {
                        "type": "string",
                        "enum": [
                          "forbidden"
                        ]
                      }
                    },
                    "required": [
                      "feature",
                      "setting"
                    ]
                  }
                ]
              }
            },
            "extra": {
              "type": "object",
              "properties": {
                "chat": {
                  "type": "boolean"
                },
                "systemMessaging": {
                  "type": "boolean"
                }
              }
            },
            "grantedAccess": {
              "type": "object",
              "description": "Peer-delivered shape: data-grant URL the accepter minted on their account.",
              "properties": {
                "apiEndpoint": {
                  "type": "string"
                }
              },
              "required": [
                "apiEndpoint"
              ]
            },
            "from": {
              "type": "object",
              "description": "Server-stamped at inbox-write time from the back-channel access's stored counterparty identity.",
              "properties": {
                "username": {
                  "type": "string"
                },
                "host": {
                  "type": "string"
                }
              },
              "required": [
                "username",
                "host"
              ]
            }
          }
        },
        "refuse-cmc": {
          "description": "Cross-account consent refuse (`cmc/refuse-v1` lineage). Carries the capability URL of the request being refused + an optional localised reason.",
          "type": "object",
          "properties": {
            "capabilityUrl": {
              "type": "string"
            },
            "reason": {
              "type": "object",
              "description": "Localized reason text."
            }
          },
          "required": [
            "capabilityUrl"
          ]
        },
        "revoke-cmc": {
          "description": "Cross-account consent revoke (`cmc/revoke-v1` lineage). Either party tears down an established access pair by writing this with the local data-grant access id + an optional localised reason.",
          "type": "object",
          "properties": {
            "accessId": {
              "type": "string"
            },
            "reason": {
              "type": "object",
              "description": "Localized reason text."
            }
          },
          "required": [
            "accessId"
          ]
        },
        "back-channel-cmc": {
          "description": "Post-acceptance handshake step (`cmc/back-channel-v1` lineage). Delivered from the requester to the accepter's `:_cmc:inbox` via the data-grant URL, carrying the requester's back-channel apiEndpoint + remote stream-ids so the accepter can later POST chat / system messages back to the requester.",
          "type": "object",
          "properties": {
            "from": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string"
                },
                "host": {
                  "type": "string"
                }
              },
              "required": [
                "username",
                "host"
              ]
            },
            "apiEndpoint": {
              "type": "string"
            },
            "remoteChatStreamId": {
              "type": "string"
            },
            "remoteCollectorStreamId": {
              "type": "string"
            },
            "appCode": {
              "type": "string"
            }
          },
          "required": [
            "from",
            "apiEndpoint"
          ]
        },
        "scope-request-cmc": {
          "description": "Collector-proposed scope change on an established consent (`cmc/system-scope-request-v1` lineage). The collector writes a proposal carrying the desired new permissions; the user-side app accepts or refuses by writing a corresponding `consent/scope-update-cmc` event.",
          "type": "object",
          "properties": {
            "newPermissions": {
              "type": "array",
              "minItems": 1,
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "streamId": {
                        "type": "string",
                        "minLength": 1
                      },
                      "level": {
                        "type": "string",
                        "enum": [
                          "manage",
                          "contribute",
                          "read",
                          "create-only",
                          "none"
                        ]
                      },
                      "defaultName": {
                        "type": "string",
                        "minLength": 1
                      },
                      "name": {
                        "type": "string"
                      },
                      "mandatory": {
                        "type": "boolean",
                        "description": "Consent-layer flag: this entry is required for the requesting app to function - an accept must include it (the consent UI locks it; the user's alternative is denying the whole request)."
                      }
                    },
                    "required": [
                      "streamId",
                      "level"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "feature": {
                        "type": "string",
                        "minLength": 1
                      },
                      "setting": {
                        "type": "string",
                        "enum": [
                          "forbidden"
                        ]
                      },
                      "mandatory": {
                        "type": "boolean",
                        "description": "Consent-layer flag: this entry is required for the requesting app to function - an accept must include it (the consent UI locks it; the user's alternative is denying the whole request)."
                      }
                    },
                    "required": [
                      "feature",
                      "setting"
                    ]
                  }
                ]
              }
            },
            "expires": {
              "type": "number",
              "description": "Unix timestamp (seconds)."
            },
            "message": {
              "type": "object",
              "description": "Localized message accompanying the proposal."
            }
          },
          "required": [
            "newPermissions"
          ]
        },
        "scope-update-cmc": {
          "description": "User-side scope change apply / notify (`cmc/system-scope-update-v1` lineage). Has two shapes: response-to-request (carries `scopeRequestEventId` + `accept`) OR self-initiated (carries `newPermissions`). The plugin updates the local data-grant access permissions and notifies the peer.",
          "type": "object",
          "properties": {
            "scopeRequestEventId": {
              "type": "string"
            },
            "accept": {
              "type": "boolean"
            },
            "newPermissions": {
              "type": "array",
              "minItems": 1,
              "items": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "streamId": {
                        "type": "string",
                        "minLength": 1
                      },
                      "level": {
                        "type": "string",
                        "enum": [
                          "manage",
                          "contribute",
                          "read",
                          "create-only",
                          "none"
                        ]
                      },
                      "defaultName": {
                        "type": "string",
                        "minLength": 1
                      },
                      "name": {
                        "type": "string"
                      },
                      "mandatory": {
                        "type": "boolean",
                        "description": "Consent-layer flag: this entry is required for the requesting app to function - an accept must include it (the consent UI locks it; the user's alternative is denying the whole request)."
                      }
                    },
                    "required": [
                      "streamId",
                      "level"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "feature": {
                        "type": "string",
                        "minLength": 1
                      },
                      "setting": {
                        "type": "string",
                        "enum": [
                          "forbidden"
                        ]
                      },
                      "mandatory": {
                        "type": "boolean",
                        "description": "Consent-layer flag: this entry is required for the requesting app to function - an accept must include it (the consent UI locks it; the user's alternative is denying the whole request)."
                      }
                    },
                    "required": [
                      "feature",
                      "setting"
                    ]
                  }
                ]
              }
            },
            "accessId": {
              "type": "string",
              "description": "Local data-grant access id (when self-initiated)."
            },
            "previousPermissions": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "streamId": {
                    "type": "string"
                  },
                  "level": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "invalidate-link-cmc": {
          "description": "Requester-side invalidation of an open-link consent capability (`cmc/invalidate-link-v1` lineage). The plugin flips the capability access state to `'invalidated'` so further accepts are rejected. Already-established data-grant + back-channel relationships are UNTOUCHED — use `consent/revoke-cmc` for per-relationship teardown. Single-use capabilities are auto-consumed on first accept; calling invalidate on a single-use capability is a no-op.",
          "type": "object",
          "properties": {
            "capabilityId": {
              "type": "string",
              "minLength": 1
            },
            "reason": {
              "type": "object",
              "description": "Localized reason text."
            }
          },
          "required": [
            "capabilityId"
          ]
        }
      }
    },
    "contact": {
      "description": "To record events related to people (meeting someone special, business encounters, etc.).",
      "formats": {
        "facebook": {
          "type": "object",
          "description": "A Facebook user as specified in the Graph API: https://developers.facebook.com/docs/reference/api/user/",
          "additionalProperties": "true",
          "properties": {
            "id": {
              "type": "string"
            }
          },
          "required": [
            "id"
          ]
        },
        "vcard": {
          "description": "A business card in vCard 2.0-3.x format. See: rfc2425, rfc2426.",
          "type": "string"
        }
      }
    },
    "count": {
      "description": "To record the counting of objects (eggs, apples, etc.).",
      "formats": {
        "steps": {
          "description": "Number of steps",
          "type": "number"
        },
        "generic": {
          "description": "For general items that demand no particular handling.",
          "type": "number"
        }
      }
    },
    "credentials": {
      "description": "To record credentials, such as secret keys, passwords or access rights.",
      "formats": {
        "pryv-api-endpoint": {
          "description": "Necessary information to access a Pryv.io account. Url in the format of http(s)://{token}@{apiEndpoint}",
          "type": "string",
          "pattern": "^(https?)://.+@.+$"
        }
      }
    },
    "data-quantity": {
      "formats": {
        "b": {
          "description": "Bytes",
          "type": "number"
        },
        "bits": {
          "description": "Bits",
          "type": "number"
        },
        "gb": {
          "description": "Gigabytes",
          "type": "number"
        },
        "gbits": {
          "description": "Gigabits",
          "type": "number"
        },
        "kb": {
          "description": "Kilobytes",
          "type": "number"
        },
        "kbits": {
          "description": "Kilobits",
          "type": "number"
        },
        "mb": {
          "description": "Megabytes",
          "type": "number"
        },
        "mbits": {
          "description": "Megabits",
          "type": "number"
        },
        "tb": {
          "description": "Terabytes",
          "type": "number"
        }
      },
      "description": "Unit of information in computing and digital communications."
    },
    "date": {
      "description": "To record a date and time.",
      "formats": {
        "iso-8601": {
          "description": "The ISO 8601 format",
          "type": "string"
        }
      }
    },
    "density": {
      "formats": {
        "kg-m3": {
          "description": "Kilograms per cubic meter",
          "type": "number"
        },
        "g-cm3": {
          "description": "Grams per cubic centimeter",
          "type": "number"
        }
      },
      "description": "The density of a material (volumetric mass density)."
    },
    "dynamic-viscosity": {
      "formats": {
        "pa-s": {
          "description": "Pascal second",
          "type": "number"
        }
      },
      "description": "The resistance to flow of a fluid under an applied force."
    },
    "electric-charge-line-density": {
      "formats": {
        "c-m": {
          "description": "Coulomb per meter",
          "type": "number"
        }
      },
      "description": "The electric charge per unit volume of space, in one, two or three dimensions."
    },
    "electric-charge": {
      "formats": {
        "c": {
          "description": "Coulomb ",
          "type": "number"
        }
      },
      "description": "The electric charge of an object."
    },
    "electric-current": {
      "formats": {
        "a": {
          "description": "Ampere",
          "type": "number"
        }
      },
      "description": "A flow of electric charge."
    },
    "electrical-conductivity": {
      "formats": {
        "s": {
          "description": "Siemens",
          "type": "number"
        },
        "us": {
          "description": "Micro Siemens",
          "type": "number"
        }
      },
      "description": "A material that accommodates the transport of electric charge."
    },
    "electromotive-force": {
      "formats": {
        "v": {
          "description": "Volt",
          "type": "number"
        }
      },
      "description": "Voltage generated by a battery or by the magnetic force."
    },
    "encrypted": {
      "description": "For client-side-encrypted events. The decrypted plaintext is expected to be the UTF-8 JSON serialization of an object with the regular <code>type</code> and <code>content</code> properties (e.g. <code>{ \"type\": \"..\", \"content\": \"..\" }</code>); extra properties are allowed and carried along on decryption. All other event fields (id, streamIds, time, …) stay in plaintext. If the event has attached files, each is encrypted with the same method and key as the event's content, as raw binary in the method's payload byte layout — i.e. exactly the bytes that Base64-decoding a <code>payload</code> would yield (e.g. <code>iv || ciphertext || tag</code> for <code>aes-256-gcm</code>), without Base64 encoding.",
      "formats": {
        "aes-256-gcm": {
          "description": "AES-256-GCM encrypted payload. <code>payload</code> is <code>Base64( iv || ciphertext || tag )</code> where <code>iv</code> is a random 96-bit (12-byte) nonce generated per encryption, <code>ciphertext</code> is the AES-256-GCM encryption of the UTF-8 JSON plaintext, and <code>tag</code> is the 128-bit (16-byte) GCM authentication tag. The key is 256 bits (32 bytes). Standard (non-URL-safe) Base64.",
          "type": "object",
          "properties": {
            "payload": {
              "description": "The encrypted data: <code>Base64( iv[12] || ciphertext || tag[16] )</code>.",
              "type": "string"
            },
            "keyRef": {
              "description": "A reference (e.g. id, name in a keyring) to the key to use for decryption.",
              "type": "string"
            },
            "hint": {
              "description": "Alternative or complement to <code>keyRef</code>. A hint about which key to use for decryption."
            }
          },
          "required": [
            "payload"
          ]
        },
        "ecies-aes-256-gcm": {
          "description": "Asymmetric (ECIES-style) encrypted payload for a NIST P-256 (secp256r1) recipient key pair. Encryption: generate an ephemeral P-256 key pair; compute the ECDH shared secret with the recipient's public key (the 32-byte X coordinate); derive the content key with HKDF-SHA-256 (salt: empty, info: the ASCII string <code>encrypted/ecies-aes-256-gcm</code>, output: 32 bytes) and use it as an AES-256-GCM key with a random 96-bit IV. <code>payload</code> is <code>Base64( ephemeralPublicKey || iv || ciphertext || tag )</code> where <code>ephemeralPublicKey</code> is the 65-byte uncompressed SEC1 point (<code>0x04 || X || Y</code>), <code>iv</code> is 12 bytes and <code>tag</code> is the 16-byte GCM authentication tag. Decryption requires the recipient's private key. Standard (non-URL-safe) Base64.",
          "type": "object",
          "properties": {
            "payload": {
              "description": "The encrypted data: <code>Base64( ephemeralPublicKey[65] || iv[12] || ciphertext || tag[16] )</code>.",
              "type": "string"
            },
            "keyRef": {
              "description": "A reference (e.g. id, name in a keyring) to the recipient key pair whose private key decrypts the payload.",
              "type": "string"
            },
            "hint": {
              "description": "Alternative or complement to <code>keyRef</code>. A hint about which key to use for decryption."
            }
          },
          "required": [
            "payload"
          ]
        },
        "aes-text-base64": {
          "description": "DEPRECATED — prefer <code>encrypted/aes-256-gcm</code>. AES encrypted payload, with a <em>text</em> key and a <em>Base64</em> payload; the exact cipher parameters (mode, key derivation, IV handling) were never fully specified, so implementations may not interoperate.",
          "type": "object",
          "properties": {
            "payload": {
              "description": "The encrypted data.",
              "type": "string"
            },
            "keyRef": {
              "description": "A reference (e.g. id, name in keychain) to the key to use for decryption.",
              "type": "string"
            },
            "hint": {
              "description": "Alternative to <code>keyRef</code>. A textual hint about which key to use for decryption.",
              "type": "string"
            }
          },
          "required": [
            "payload"
          ]
        }
      }
    },
    "energy": {
      "formats": {
        "btu": {
          "description": "British Thermal Units",
          "type": "number"
        },
        "cal": {
          "description": "Calories",
          "type": "number"
        },
        "ev": {
          "description": "Electron-Volts",
          "type": "number"
        },
        "erg": {
          "description": "Ergs",
          "type": "number"
        },
        "ftlb": {
          "description": "Foot-Pounds",
          "type": "number"
        },
        "j": {
          "description": "Joules",
          "type": "number"
        },
        "kcal": {
          "description": "Kilo-calories",
          "type": "number"
        },
        "ws": {
          "description": "Watt-seconds",
          "type": "number"
        },
        "kwh": {
          "description": "Kilowatt-hours",
          "type": "number"
        },
        "nm": {
          "description": "Newton-meters",
          "type": "number"
        },
        "wh": {
          "description": "Watt-hours",
          "type": "number"
        }
      },
      "description": "The capacity of a physical system to perform work."
    },
    "file": {
      "description": "To record a file, or a group of files. A fallback type for data with no specific handling in Pryv.",
      "formats": {
        "attached": {
          "description": "The file is attached to the event",
          "type": "null",
          "attachmentRequired": true
        },
        "attached-multiple": {
          "description": "A set of file attached. Structure can be declared in the filenames.",
          "attachmentRequired": true,
          "type": "null"
        },
        "url": {
          "description": "A reference to a file hosted elsewhere",
          "type": "string",
          "pattern": "^(https?)://.+$"
        }
      }
    },
    "force": {
      "formats": {
        "dyn": {
          "description": "Dynes",
          "type": "number"
        },
        "n": {
          "description": "Newtons",
          "type": "number"
        },
        "pdl": {
          "description": "Poundals",
          "type": "number"
        }
      },
      "description": "A push or pull upon an object resulting from the object's interaction with another object."
    },
    "frequency": {
      "description": "The number of occurrences of a repeating event per unit time.",
      "formats": {
        "bpm": {
          "description": "Beats per minute",
          "type": "number"
        },
        "brpm": {
          "description": "Breaths per minute",
          "type": "number"
        },
        "ghz": {
          "description": "Gigahertz",
          "type": "number"
        },
        "hz": {
          "description": "Hertz (also known as cycles per second) ",
          "type": "number"
        },
        "khz": {
          "description": "Kilohertz",
          "type": "number"
        },
        "megahz": {
          "description": "Megahertz",
          "type": "number"
        },
        "millihz": {
          "description": "Millihertz",
          "type": "number"
        },
        "nhz": {
          "description": "Nanohertz",
          "type": "number"
        },
        "rpm": {
          "description": "Revolutions per minute",
          "type": "number"
        },
        "thz": {
          "description": "Terahertz",
          "type": "number"
        },
        "uhz": {
          "description": "Microhertz",
          "type": "number"
        }
      }
    },
    "gas-consumption": {
      "description": "The quantity of gas consumed.",
      "formats": {
        "mlpkgmin": {
          "description": "Milliliters per kilogram and minute",
          "type": "number",
          "symbol": "ml/(kg * min)"
        }
      }
    },
    "length": {
      "description": "Length measurements. Format = unit.",
      "formats": {
        "cm": {
          "description": "Centimeters",
          "type": "number"
        },
        "m": {
          "description": "Meters",
          "type": "number"
        },
        "mm": {
          "description": "Millimeters",
          "type": "number"
        },
        "km": {
          "description": "Kilometers",
          "type": "number"
        },
        "a": {
          "description": "Ångströms",
          "type": "number"
        },
        "au": {
          "description": "Astronomical units",
          "type": "number"
        },
        "ch": {
          "description": "Chains",
          "type": "number"
        },
        "lea": {
          "description": "Leagues",
          "type": "number"
        },
        "ft": {
          "description": "Feet",
          "type": "number"
        },
        "in": {
          "description": "Inches",
          "type": "number"
        },
        "ly": {
          "description": "Light-years",
          "type": "number"
        },
        "mil": {
          "description": "Mil",
          "type": "number"
        },
        "mi": {
          "description": "Miles",
          "type": "number"
        },
        "fur": {
          "description": "Furlongs",
          "type": "number"
        },
        "nmi": {
          "description": "Miles (nautical)",
          "type": "number"
        },
        "p": {
          "description": "Points",
          "type": "number"
        },
        "pica": {
          "description": "Picas",
          "type": "number"
        },
        "ftm": {
          "description": "Fathoms",
          "type": "number"
        },
        "cb": {
          "description": "Cables",
          "type": "number"
        },
        "um": {
          "description": "Microns",
          "type": "number"
        },
        "yd": {
          "description": "Yards",
          "type": "number"
        }
      }
    },
    "linear-acceleration": {
      "description": "The rate of change of linear velocity.",
      "formats": {
        "m-s2": {
          "description": "Meters per second squared",
          "type": "number"
        }
      }
    },
    "luminous-intensity": {
      "formats": {
        "cd": {
          "description": "Candela",
          "type": "number"
        }
      },
      "description": "The wavelength-weighted power emitted by a light source."
    },
    "mass": {
      "description": "The heaviness of an object.",
      "formats": {
        "kg": {
          "description": "Kilograms",
          "type": "number"
        },
        "g": {
          "description": "Grams",
          "type": "number"
        },
        "mg": {
          "description": "MilliGrams",
          "type": "number"
        },
        "gr": {
          "description": "Grains",
          "type": "number"
        },
        "dr": {
          "description": "Drams",
          "type": "number"
        },
        "l-t": {
          "description": "Long tons",
          "type": "number"
        },
        "lb": {
          "description": "Pounds",
          "type": "number"
        },
        "t": {
          "description": "Metric tons",
          "type": "number"
        },
        "oz": {
          "description": "Ounces",
          "type": "number"
        },
        "s-t": {
          "description": "Short tons",
          "type": "number"
        },
        "st": {
          "description": "Stone",
          "type": "number"
        }
      }
    },
    "message": {
      "description": "To record messages, such as e-mails or posts on social networks.",
      "formats": {
        "email": {
          "description": "An e-mail message.",
          "type": "object",
          "properties": {
            "from": {
              "type": "string"
            },
            "to": {
              "type": "string"
            },
            "cc": {
              "type": "string"
            },
            "bcc": {
              "type": "string"
            },
            "subject": {
              "type": "string"
            },
            "message-id": {
              "type": "string"
            },
            "reply-to": {
              "type": "string"
            },
            "x-headers": {
              "description": "Key/value map of `X-*` headers",
              "type": "object",
              "additionalProperties": true
            },
            "body": {
              "type": "string"
            }
          },
          "required": [
            "from",
            "to",
            "body"
          ]
        },
        "facebook": {
          "description": "A Facebook post. See [Facebook's API docs](https://developers.facebook.com/docs/reference/api/post/) for reference. Facebook properties `message` and `created_time` map to event `description` and `time` respectively. Facebook attached pictures can be directly mapped to attachments. Other Facebook properties such as `link`, `source`, `privacy` are allowed.",
          "type": "object",
          "additionalProperties": true,
          "properties": {
            "id": {
              "type": "string"
            },
            "from": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "id": {
                  "type": "string"
                }
              },
              "required": [
                "name",
                "id"
              ]
            },
            "to": {
              "type": "object",
              "properties": {
                "data": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "id": {
                        "type": "string"
                      }
                    },
                    "required": [
                      "name",
                      "id"
                    ]
                  }
                }
              }
            },
            "message": {
              "type": "string"
            },
            "source": {
              "type": "string",
              "description": "Either a fully qualified \"URL\" for an external source or a \"filename\" for a Flash Movie or Video attached to this event."
            },
            "properties": {
              "type": "string",
              "description": "Relative to `source`: a list of properties for an uploaded video, for example, the length of the video.",
              "additionalProperties": true
            },
            "picture": {
              "description": "Either a fully qualified \"URL\" for an external picture or a \"filename\" for a picture attached to this event.",
              "type": "string"
            },
            "status-type": {
              "description": "One of mobile_status_update, created_note, added_photos, added_video, shared_story, created_group, created_event, wall_post, app_created_story, published_story, tagged_in_photo, approved_friend",
              "type": "string"
            }
          },
          "required": [
            "id",
            "message"
          ]
        },
        "twitter": {
          "description": "A Twitter post. Twitter property `created_at` maps to event `time`. Other Twitter properties (see [Twitter's API docs](https://developer.twitter.com/en/docs/twitter-api)) are allowed.",
          "type": "object",
          "additionalProperties": true,
          "properties": {
            "id": {
              "type": "string"
            },
            "screen-name": {
              "type": "string"
            },
            "text": {
              "type": "string"
            }
          },
          "required": [
            "id",
            "screen-name",
            "text"
          ]
        },
        "chat-cmc": {
          "description": "Chat message exchanged on a CMC consent's per-counterparty chat stream (`cmc/chat-v1` lineage). Plain string up to 10 KB; the plugin handles delivery to the peer's matching chat stream.",
          "type": "object",
          "properties": {
            "content": {
              "type": "string",
              "minLength": 1,
              "maxLength": 10240
            }
          },
          "required": [
            "content"
          ]
        }
      }
    },
    "mol": {
      "description": "The size of an ensemble of elementary entities, such as atoms, molecules, electrons, and other particles.",
      "formats": {
        "mol": {
          "description": "Mole ",
          "type": "number"
        },
        "lb-mol": {
          "description": "Pound-mole.",
          "type": "number"
        }
      }
    },
    "money": {
      "description": "To record sums of money (expenses, loans, stock values, etc.). Format = currency. Based on ISO 4217.",
      "formats": {
        "aed": {
          "type": "number"
        },
        "ang": {
          "type": "number",
          "description": "Netherlands Antilles Guilder"
        },
        "ars": {
          "type": "number",
          "description": "Argentina Peso"
        },
        "aud": {
          "type": "number",
          "description": "Australia Dollar"
        },
        "bgn": {
          "type": "number",
          "description": "Bulgaria Lev"
        },
        "bhd": {
          "type": "number"
        },
        "bnd": {
          "type": "number",
          "description": "Brunei Darussalam Dollar"
        },
        "bob": {
          "type": "number",
          "description": "Bolivia Boliviano"
        },
        "brl": {
          "type": "number",
          "description": "Brazil Real"
        },
        "bwp": {
          "type": "number",
          "description": "Botswana Pula"
        },
        "cad": {
          "type": "number",
          "description": "Canada Dollar"
        },
        "chf": {
          "type": "number",
          "description": "Switzerland Franc"
        },
        "clp": {
          "type": "number",
          "description": "Chile Peso"
        },
        "cny": {
          "type": "number",
          "description": "China Yuan Renminbi"
        },
        "cop": {
          "type": "number",
          "description": "Colombia Peso"
        },
        "crc": {
          "type": "number",
          "description": "Costa Rica Colon"
        },
        "czk": {
          "type": "number",
          "description": "Czech Republic Koruna"
        },
        "dkk": {
          "type": "number",
          "description": "Denmark Krone"
        },
        "dop": {
          "type": "number",
          "description": "Dominican Republic Peso"
        },
        "dzd": {
          "type": "number"
        },
        "eek": {
          "type": "number",
          "description": "Estonia Kroon"
        },
        "egp": {
          "type": "number",
          "description": "Egypt Pound"
        },
        "eur": {
          "type": "number",
          "description": "Euro"
        },
        "fjd": {
          "type": "number",
          "description": "Fiji Dollar"
        },
        "gbp": {
          "type": "number",
          "description": "United Kingdom Pound"
        },
        "hkd": {
          "type": "number",
          "description": "Hong Kong Dollar"
        },
        "hnl": {
          "type": "number",
          "description": "Honduras Lempira"
        },
        "hrk": {
          "type": "number",
          "description": "Croatia Kuna"
        },
        "huf": {
          "type": "number",
          "description": "Hungary Forint"
        },
        "idr": {
          "type": "number",
          "description": "Indonesia Rupiah"
        },
        "ils": {
          "type": "number",
          "description": "Israel Shekel"
        },
        "inr": {
          "type": "number",
          "description": "India Rupee"
        },
        "jmd": {
          "type": "number",
          "description": "Jamaica Dollar"
        },
        "jod": {
          "type": "number"
        },
        "jpy": {
          "type": "number",
          "description": "Japan Yen"
        },
        "kes": {
          "type": "number"
        },
        "krw": {
          "type": "number",
          "description": "Korea (South) Won"
        },
        "kwd": {
          "type": "number"
        },
        "kyd": {
          "type": "number",
          "description": "Cayman Islands Dollar"
        },
        "kzt": {
          "type": "number",
          "description": "Kazakhstan Tenge"
        },
        "lbp": {
          "type": "number",
          "description": "Lebanon Pound"
        },
        "lkr": {
          "type": "number",
          "description": "Sri Lanka Rupee"
        },
        "ltl": {
          "type": "number",
          "description": "Lithuania Litas"
        },
        "lvl": {
          "type": "number",
          "description": "Latvia Lat"
        },
        "mad": {
          "type": "number"
        },
        "mdl": {
          "type": "number"
        },
        "mkd": {
          "type": "number",
          "description": "Macedonia Denar"
        },
        "mur": {
          "type": "number",
          "description": "Mauritius Rupee"
        },
        "mxn": {
          "type": "number",
          "description": "Mexico Peso"
        },
        "myr": {
          "type": "number",
          "description": "Malaysia Ringgit"
        },
        "nad": {
          "type": "number",
          "description": "Namibia Dollar"
        },
        "ngn": {
          "type": "number",
          "description": "Nigeria Naira"
        },
        "nio": {
          "type": "number",
          "description": "Nicaragua Cordoba"
        },
        "nok": {
          "type": "number",
          "description": "Norway Krone"
        },
        "npr": {
          "type": "number",
          "description": "Nepal Rupee"
        },
        "nzd": {
          "type": "number",
          "description": "New Zealand Dollar"
        },
        "omr": {
          "type": "number",
          "description": "Oman Rial"
        },
        "pen": {
          "type": "number",
          "description": "Peru Nuevo Sol"
        },
        "pgk": {
          "type": "number"
        },
        "php": {
          "type": "number",
          "description": "Philippines Peso"
        },
        "pkr": {
          "type": "number",
          "description": "Pakistan Rupee"
        },
        "pln": {
          "type": "number",
          "description": "Poland Zloty"
        },
        "pyg": {
          "type": "number",
          "description": "Paraguay Guarani"
        },
        "qar": {
          "type": "number",
          "description": "Qatar Riyal"
        },
        "ron": {
          "type": "number",
          "description": "Romania New Leu"
        },
        "rsd": {
          "type": "number",
          "description": "Serbia Dinar"
        },
        "rub": {
          "type": "number",
          "description": "Russia Ruble"
        },
        "sar": {
          "type": "number",
          "description": "Saudi Arabia Riyal"
        },
        "scr": {
          "type": "number",
          "description": "Seychelles Rupee"
        },
        "sek": {
          "type": "number",
          "description": "Sweden Krona"
        },
        "sgd": {
          "type": "number",
          "description": "Singapore Dollar"
        },
        "skk": {
          "type": "number"
        },
        "sll": {
          "type": "number"
        },
        "svc": {
          "type": "number",
          "description": "El Salvador Colon"
        },
        "thb": {
          "type": "number",
          "description": "Thailand Baht"
        },
        "tnd": {
          "type": "number"
        },
        "try": {
          "type": "number",
          "description": "Turkey Lira"
        },
        "ttd": {
          "type": "number",
          "description": "Trinidad and Tobago Dollar"
        },
        "twd": {
          "type": "number",
          "description": "Taiwan New Dollar"
        },
        "tzs": {
          "type": "number"
        },
        "uah": {
          "type": "number",
          "description": "Ukraine Hryvna"
        },
        "ugx": {
          "type": "number"
        },
        "usd": {
          "type": "number",
          "description": "United States Dollar"
        },
        "uyu": {
          "type": "number",
          "description": "Uruguay Peso"
        },
        "uzs": {
          "type": "number",
          "description": "Uzbekistan Som"
        },
        "vnd": {
          "type": "number",
          "description": "Viet Nam Dong"
        },
        "yer": {
          "type": "number",
          "description": "Yemen Rial"
        },
        "zar": {
          "type": "number",
          "description": "South Africa Rand"
        },
        "zmk": {
          "type": "number"
        },
        "btc": {
          "description": "Bitcoin",
          "type": "number"
        },
        "all": {
          "description": "Albania Lek",
          "type": "number"
        },
        "afn": {
          "description": "Afghanistan Afghani",
          "type": "number"
        },
        "awg": {
          "description": "Aruba Guilder",
          "type": "number"
        },
        "azn": {
          "description": "Azerbaijan New Manat",
          "type": "number"
        },
        "bsd": {
          "description": "Bahamas Dollar",
          "type": "number"
        },
        "bbd": {
          "description": "Barbados Dollar",
          "type": "number"
        },
        "byr": {
          "description": "Belarus Ruble",
          "type": "number"
        },
        "bzd": {
          "description": "Belize Dollar",
          "type": "number"
        },
        "bmd": {
          "description": "Bermuda Dollar",
          "type": "number"
        },
        "bam": {
          "description": "Bosnia and Herzegovina Convertible Marka",
          "type": "number"
        },
        "khr": {
          "description": "Cambodia Riel",
          "type": "number"
        },
        "cup": {
          "description": "Cuba Peso",
          "type": "number"
        },
        "xcd": {
          "description": "East Caribbean Dollar",
          "type": "number"
        },
        "fkp": {
          "description": "Falkland Islands (Malvinas) Pound",
          "type": "number"
        },
        "ghc": {
          "description": "Ghana Cedis",
          "type": "number"
        },
        "gip": {
          "description": "Gibraltar Pound",
          "type": "number"
        },
        "gtq": {
          "description": "Guatemala Quetzal",
          "type": "number"
        },
        "ggp": {
          "description": "Guernsey Pound",
          "type": "number"
        },
        "gyd": {
          "description": "Guyana Dollar",
          "type": "number"
        },
        "isk": {
          "description": "Iceland Krona",
          "type": "number"
        },
        "irr": {
          "description": "Iran Rial",
          "type": "number"
        },
        "imp": {
          "description": "Isle of Man Pound",
          "type": "number"
        },
        "jep": {
          "description": "Jersey Pound",
          "type": "number"
        },
        "kpw": {
          "description": "Korea (North) Won",
          "type": "number"
        },
        "kgs": {
          "description": "Kyrgyzstan Som",
          "type": "number"
        },
        "lak": {
          "description": "Laos Kip",
          "type": "number"
        },
        "lrd": {
          "description": "Liberia Dollar",
          "type": "number"
        },
        "mnt": {
          "description": "Mongolia Tughrik",
          "type": "number"
        },
        "mzn": {
          "description": "Mozambique Metical",
          "type": "number"
        },
        "pab": {
          "description": "Panama Balboa",
          "type": "number"
        },
        "shp": {
          "description": "Saint Helena Pound",
          "type": "number"
        },
        "sbd": {
          "description": "Solomon Islands Dollar",
          "type": "number"
        },
        "sos": {
          "description": "Somalia Shilling",
          "type": "number"
        },
        "srd": {
          "description": "Suriname Dollar",
          "type": "number"
        },
        "syp": {
          "description": "Syria Pound",
          "type": "number"
        },
        "trl": {
          "description": "Turkey Lira",
          "type": "number"
        },
        "tvd": {
          "description": "Tuvalu Dollar",
          "type": "number"
        },
        "vef": {
          "description": "Venezuela Bolivar",
          "type": "number"
        },
        "zwd": {
          "description": "Zimbabwe Dollar",
          "type": "number"
        }
      }
    },
    "mood": {
      "description": "To record personal mood.",
      "formats": {
        "rating": {
          "description": "Rating of mood (float value) 0:worst -> 1:best",
          "type": "number",
          "minimum": 0,
          "maximum": 1
        },
        "emoticon": {
          "description": "ASCII Art emoticon",
          "type": "string"
        }
      }
    },
    "music": {
      "description": "To record references to music, usualy tracks (from Soundcloud, Shazam tags, etc.).",
      "formats": {
        "basic": {
          "description": "Inspired from id3 key/pair",
          "type": "object",
          "properties": {
            "title": {
              "type": "string"
            },
            "artist": {
              "type": "string"
            },
            "album": {
              "type": "string"
            },
            "track": {
              "type": "integer"
            },
            "year": {
              "type": "integer"
            },
            "genre": {
              "type": "string"
            }
          }
        },
        "soundcloud": {
          "description": "See [Soundcloud track properties](http://developers.soundcloud.com/docs/api/reference#tracks).",
          "type": "object",
          "additionalProperties": true,
          "properties": {
            "id": {
              "type": "integer"
            }
          },
          "required": [
            "id"
          ]
        }
      }
    },
    "note": {
      "description": "To record different kinds of text-based notes, from simple text to more complex formatted content like social network posts.",
      "formats": {
        "html": {
          "description": "An HTML-formatted note.",
          "type": "string",
          "maxLength": 4194304
        },
        "txt": {
          "description": "A plain-text note.",
          "type": "string",
          "maxLength": 4194304
        },
        "webclip": {
          "description": "An HTML-formatted note associated to its source URL.",
          "type": "object",
          "properties": {
            "url": {
              "type": "string",
              "pattern": "^(https?)://.+$"
            },
            "content": {
              "description": "An HTML-formatted string.",
              "type": "string",
              "maxLength": 4194304
            }
          },
          "required": [
            "url"
          ]
        }
      }
    },
    "notification": {
      "description": "Asynchronous notifications delivered to a recipient — either alert-style messages (level + title + body) or acknowledgements of previously-received alerts. Designed for plugin-driven channels where the data-owner is notified out-of-band of state requiring attention.",
      "formats": {
        "alert-cmc": {
          "description": "CMC system alert (`cmc/system-alert-v1` lineage). Sent on the per-counterparty collectors stream of an established CMC consent. Carries an alert level, localised title + body, and an optional ack request (`ackRequired` / `ackId`).",
          "type": "object",
          "properties": {
            "level": {
              "type": "string",
              "enum": [
                "info",
                "warning",
                "critical"
              ]
            },
            "title": {
              "type": "object",
              "description": "Localized text: language-code (2-3 lowercase letters) → string."
            },
            "body": {
              "type": "object",
              "description": "Localized body text."
            },
            "code": {
              "type": "string",
              "description": "Optional app-defined code identifying the alert kind (used for grouping / dedup)."
            },
            "ackRequired": {
              "type": "boolean",
              "description": "When true, the recipient is expected to send a `notification/ack-cmc` event back."
            },
            "ackId": {
              "type": "string",
              "description": "Optional explicit ack-id. When absent, the alert event-id is used as the ack reference."
            }
          },
          "required": [
            "level",
            "title",
            "body"
          ]
        },
        "ack-cmc": {
          "description": "CMC system alert acknowledgement (`cmc/system-ack-v1` lineage). The recipient of a `notification/alert-cmc` writes one of these back referencing the original alert via `alertEventId` + `ackId`.",
          "type": "object",
          "properties": {
            "alertEventId": {
              "type": "string",
              "minLength": 1
            },
            "ackId": {
              "type": "string",
              "minLength": 1
            }
          },
          "required": [
            "alertEventId",
            "ackId"
          ]
        }
      }
    },
    "numset": {
      "description": "A set of numerical values.",
      "formats": {
        "*": {
          "description": "The format key is freely defined.\n\nFor example, a heart measurement with type `numset/heart` and content:\n```\n{ \n  \"systolic\": { \"pressure/mmhg\": 105 },\n  \"diastolic\": { \"pressure/mmhg\": 64 },\n  \"rate\": { \"frequency/bpm\": 88 }\n}\n```\n\n ",
          "type": "object",
          "patternProperties": {
            "^(/[^/]+)+$": {
              "type": "number"
            }
          },
          "additionalProperties": "false",
          "required": []
        }
      }
    },
    "picture": {
      "description": "To record any kind of image (photos, designs, screenshots, etc.)",
      "formats": {
        "base64": {
          "description": "The picture is caried in base64 (utf-8) encoded in string",
          "type": "string",
          "properties": {
            "payload": {
              "type": "string",
              "description": "base64 encoded content"
            },
            "format": {
              "type": "string",
              "description": "The data format \"gif\", \"jpeg\", \"png\", \"tiff\", \"vnd.microsoft.com\", \"svg+xml\""
            },
            "filename": {
              "description": "A filename",
              "type": "string"
            }
          },
          "required": [
            "payload",
            "format"
          ]
        },
        "attached": {
          "description": "The picture is the image file attached to the event (no explicit content defined). TODO: list accepted formats.",
          "type": "null",
          "attachmentRequired": true
        },
        "url": {
          "description": "A reference to a picture file online.",
          "type": "string",
          "pattern": "^(https?)://.+$"
        }
      }
    },
    "position": {
      "description": "To record a geographical position.",
      "formats": {
        "wgs84": {
          "description": "The latest revision of the World Geodetic System (used by GPS).",
          "type": "object",
          "properties": {
            "latitude": {
              "type": "number",
              "description": "Unit: degrees north from the equator."
            },
            "longitude": {
              "type": "number",
              "description": "Unit: degrees east from the zero meridian."
            },
            "altitude": {
              "type": "number",
              "description": "Unit: meters above sea level."
            },
            "horizontalAccuracy": {
              "type": "number",
              "description": "The radius of uncertainty for latitude and longitude. Unit: meters. Negative if latitude and longitude are invalid."
            },
            "verticalAccuracy": {
              "type": "number",
              "description": "The radius of uncertainty for altitude. Unit: meters. Negative if altitude is invalid."
            },
            "speed": {
              "type": "number",
              "description": "For informational purposes only. Unit: meters / second. Negative if invalid."
            },
            "bearing": {
              "type": "number",
              "description": "Unit: degrees clockwise from north. Negative if invalid."
            }
          },
          "required": [
            "latitude",
            "longitude"
          ]
        }
      }
    },
    "power": {
      "formats": {
        "btu-min": {
          "description": "BTUs/minute",
          "type": "number"
        },
        "ftlb-s": {
          "description": "Foot-pounds/second",
          "type": "number"
        },
        "hp": {
          "description": "Horsepower",
          "type": "number"
        },
        "kw": {
          "description": "Kilowatts",
          "type": "number"
        },
        "w": {
          "description": "Watts",
          "type": "number"
        }
      },
      "description": "The rate at which energy is transferred, used, or transformed."
    },
    "pressure": {
      "formats": {
        "at": {
          "description": "Atmospheres",
          "type": "number"
        },
        "bar": {
          "description": "Bars",
          "type": "number"
        },
        "mmhg": {
          "description": "Millimeters of mercury",
          "type": "number"
        },
        "cmhg": {
          "description": "Centimeters of mercury",
          "type": "number"
        },
        "inhg": {
          "description": "Inches of mercury",
          "type": "number"
        },
        "kg-m2": {
          "description": "Kilograms/square meter",
          "type": "number"
        },
        "pa": {
          "description": "Pascals",
          "type": "number"
        },
        "kpa": {
          "description": "Kilo pascals",
          "type": "number"
        },
        "psf": {
          "description": "Pounds/square foot",
          "type": "number"
        },
        "psi": {
          "description": "Pounds/square inch",
          "type": "number"
        },
        "db": {
          "description": "Decibels",
          "type": "number",
          "symbol": "dB"
        }
      },
      "description": "The ratio of force to the area over which that force is distributed."
    },
    "ratio": {
      "description": "To record proportional values (e.g. 1/3, 21.5/100).",
      "formats": {
        "generic": {
          "description": "Generic ratio.",
          "type": "object",
          "properties": {
            "value": {
              "type": "number"
            },
            "relativeTo": {
              "type": "number"
            }
          },
          "required": [
            "value",
            "relativeTo"
          ]
        },
        "percent": {
          "description": "A percentage value.",
          "type": "number"
        }
      }
    },
    "reproductive-health": {
      "description": "To record reproductive health data, such as menstrual flow or ovulation test results.",
      "formats": {
        "sexual-activity": {
          "description": "A type to record sexual activity",
          "type": "string",
          "enum": [
            "notSet",
            "protectionUsed",
            "protectionNotUsed"
          ]
        },
        "menstrual-flow": {
          "description": "A type to record the menstrual cycles",
          "type": "string",
          "enum": [
            "unspecified",
            "none",
            "light",
            "medium",
            "heavy"
          ]
        },
        "mucus-quality": {
          "description": "A type to record the quality of the mucus",
          "type": "string",
          "enum": [
            "dry",
            "sticky",
            "creamy",
            "watery",
            "eggWhite"
          ]
        },
        "ovulation": {
          "description": "A type to record the result of an ovulation test",
          "type": "string",
          "enum": [
            "negative",
            "luteinizingHormoneSurge",
            "indeterminate",
            "estrogenSurge"
          ]
        }
      }
    },
    "shared-secret": {
      "description": "A secret held on an account for one-time hand-off to a third party, addressed by a random key rather than embedded in a URL. Written and consumed exclusively by the server through the shared-secrets endpoints (open-pryv.io `components/shared-secrets`); the events API refuses to create, modify or move events of this class, so a client never authors one directly. Retained after use as a record of the hand-off, with the payload removed.",
      "formats": {
        "item": {
          "description": "One shared secret. Lives under the reserved `:_shared-secrets:<accessId>` stream of the access that created it. The event's own `time` + `duration` carry the lifetime — expiry is exactly `now > time + duration` — and `trashed` marks an item that has left the `pending` state.",
          "type": "object",
          "required": [
            "keyHash",
            "title",
            "status",
            "statusHistory",
            "onConsumed"
          ],
          "properties": {
            "keyHash": {
              "description": "SHA-256 (hex) of the key's random half. The key itself is returned once, at creation, and is never stored — so it cannot be recovered from a database dump or a backup.",
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            "title": {
              "description": "Human-readable label for the account owner, describing what is being shared and with whom.",
              "type": "string",
              "minLength": 1
            },
            "status": {
              "description": "`pending` is the only state from which the secret can be retrieved; the other two are terminal.",
              "type": "string",
              "enum": [
                "pending",
                "consumed",
                "discarded"
              ]
            },
            "statusHistory": {
              "description": "Append-only trail of state transitions, oldest first.",
              "type": "array",
              "minItems": 1,
              "items": {
                "type": "object",
                "required": [
                  "status",
                  "time"
                ],
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "consumed",
                      "discarded"
                    ]
                  },
                  "time": {
                    "description": "Pryv timestamp of the transition.",
                    "type": "number"
                  },
                  "info": {
                    "description": "Why the item was discarded — e.g. `expired`, `deleted`, or a signature mismatch.",
                    "type": "string"
                  }
                }
              }
            },
            "onConsumed": {
              "description": "Shown to whoever presents the key once the secret is no longer available.",
              "type": "object",
              "required": [
                "message"
              ],
              "properties": {
                "message": {
                  "type": "string",
                  "minLength": 1
                },
                "returnUrl": {
                  "description": "Where to send the visitor afterwards. Restricted to http(s) — it is followed by an unauthenticated third party.",
                  "type": "string",
                  "pattern": "^https?://"
                }
              }
            },
            "signature": {
              "description": "Optional proof required to redeem. `secret` compares a passphrase supplied out-of-band; `hmac-sha256` verifies HMAC(verifier-secret, key material) computed by the client, so the verifier secret itself never reaches the server. A wrong proof discards the secret. `value` is present only while the item is `pending`: it is scrubbed alongside the secret once the item is consumed or discarded (for a `secret`-type signature it is a passphrase in clear), leaving only the `type` on the record.",
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "secret",
                    "hmac-sha256"
                  ]
                },
                "value": {
                  "type": "string",
                  "minLength": 1
                }
              }
            },
            "secret": {
              "description": "The payload handed over on redemption — any JSON value. Present only while `status` is `pending`: it is removed as soon as the item is consumed or discarded, so a spent secret stops living in backups and exports."
            }
          }
        }
      }
    },
    "sleep": {
      "description": "To record sleep information.",
      "formats": {
        "analysis": {
          "type": "object",
          "properties": {
            "analysis": {
              "type": "string",
              "enum": [
                "inBed",
                "asleep",
                "awake"
              ]
            }
          }
        }
      }
    },
    "speed": {
      "formats": {
        "ft-m": {
          "description": "Feet/minute",
          "type": "number"
        },
        "ft-s": {
          "description": "Feet/second",
          "type": "number"
        },
        "km-h": {
          "description": "Kilometers/hour",
          "type": "number"
        },
        "kt": {
          "description": "Knots",
          "type": "number"
        },
        "m-min": {
          "description": "Miles/minute",
          "type": "number"
        },
        "m-s": {
          "description": "Meters/second",
          "type": "number"
        },
        "mph": {
          "description": "Miles/hour",
          "type": "number"
        },
        "lpm": {
          "description": "Liters/minute",
          "type": "number"
        }
      },
      "description": "The magnitude of the velocity of an object."
    },
    "symptoms": {
      "description": "To record medical symptoms, such as abdominal cramps or chest pain.",
      "formats": {
        "severity": {
          "description": "A type to record severity of a symptom such as bloating or abdominal cramps.",
          "type": "string",
          "enum": [
            "notPresent",
            "mild",
            "moderate",
            "severe",
            "unspecified"
          ]
        },
        "appetite-changes": {
          "description": "A type to represent change in appetite.",
          "type": "string",
          "enum": [
            "decreased",
            "increased",
            "noChange",
            "unspecified"
          ]
        }
      }
    },
    "temperature": {
      "description": "Temperature measurements. Format = unit.",
      "formats": {
        "c": {
          "description": "Celsius",
          "type": "number"
        },
        "k": {
          "description": "Kelvin",
          "type": "number"
        },
        "f": {
          "description": "Fahrenheit",
          "type": "number"
        }
      }
    },
    "time": {
      "description": "Amount of time. Use with care! To store an activity or duration the \"activity/plain\" event type is more appropriate, in most cases.",
      "formats": {
        "d": {
          "description": "Days",
          "type": "number"
        },
        "h": {
          "description": "Hours",
          "type": "number"
        },
        "min": {
          "description": "Minutes",
          "type": "number"
        },
        "ms": {
          "description": "Milliseconds",
          "type": "number"
        },
        "s": {
          "description": "Seconds",
          "type": "number"
        },
        "y": {
          "description": "Years",
          "type": "number"
        }
      }
    },
    "url": {
      "description": "To record references to online resources. Format ~= protocol.",
      "formats": {
        "http": {
          "description": "An HTTP or HTTPS resource.",
          "type": "string",
          "pattern": "^(https?)://.+$"
        }
      }
    },
    "video": {
      "description": "To record video (home snippets, Vimeo or YouTube links, etc.).",
      "formats": {
        "attached": {
          "description": "The video is the file attached to the event (no explicit content defined). TODO: list accepted formats.",
          "type": "null",
          "attachmentRequired": true
        },
        "url": {
          "description": "A reference to an video file online.",
          "type": "string",
          "pattern": "^(https?)://.+$"
        },
        "vimeo": {
          "description": "A Vimeo video ID.",
          "type": "string"
        },
        "youtube": {
          "description": "A YouTube video ID.",
          "type": "string"
        }
      }
    },
    "volume": {
      "description": "The quantity of three-dimensional space enclosed by some closed boundary.",
      "formats": {
        "l": {
          "description": "Liters",
          "type": "number"
        },
        "m3": {
          "description": "Cubic meters",
          "type": "number"
        },
        "c": {
          "description": "Cups",
          "type": "number"
        },
        "cm3": {
          "description": "Cubic centimeters",
          "type": "number"
        },
        "floz": {
          "description": "Fluid ounces",
          "type": "number"
        },
        "ft3": {
          "description": "Cubic feet",
          "type": "number"
        },
        "galgb": {
          "description": "Gallons imperial",
          "type": "number"
        },
        "galus": {
          "description": "Gallons US",
          "type": "number"
        },
        "in3": {
          "description": "Cubic inches",
          "type": "number"
        },
        "yd3": {
          "description": "Cubic yard",
          "type": "number"
        },
        "ml": {
          "description": "Milliliters",
          "type": "number"
        },
        "pt": {
          "description": "Pints",
          "type": "number"
        },
        "qt": {
          "description": "Quarts",
          "type": "number"
        },
        "bbloil": {
          "description": "Barrels (oil)",
          "type": "number"
        },
        "tbs": {
          "description": "Tablespoons",
          "type": "number"
        },
        "tsp": {
          "description": "Teaspoons",
          "type": "number"
        },
        "iu": {
          "description": "Units of insulin",
          "type": "number",
          "symbol": "IU"
        }
      }
    }
  },
  "extras": {
    "absorbed-dose": {
      "name": {
        "en": "Absorbed dose",
        "fr": "Dose absorbée"
      },
      "formats": {
        "gy": {
          "name": {
            "en": "Grays",
            "fr": "Grays"
          },
          "symbol": "Gy"
        }
      }
    },
    "absorbed-dose-equivalent": {
      "name": {
        "en": "Dose equivalent",
        "fr": "Dose équivalente"
      },
      "formats": {
        "sv": {
          "name": {
            "en": "Sieverts",
            "fr": "Sieverts"
          },
          "symbol": "Sv"
        }
      }
    },
    "absorbed-dose-rate": {
      "name": {
        "en": "Absorbed dose rate",
        "fr": "Débit de dose absorbée"
      },
      "formats": {
        "gy-s": {
          "name": {
            "en": "Grays/second",
            "fr": "Grays/seconde"
          },
          "symbol": "Gy/s"
        }
      }
    },
    "angle": {
      "name": {
        "en": "Angle",
        "fr": "Angle"
      },
      "formats": {
        "deg": {
          "name": {
            "en": "Degrees",
            "fr": "Degrés"
          },
          "symbol": "°"
        },
        "grad": {
          "name": {
            "en": "Gradians",
            "fr": "Grades"
          },
          "symbol": "grad"
        },
        "rad": {
          "name": {
            "en": "Radians",
            "fr": "Radians"
          },
          "symbol": "rad"
        }
      }
    },
    "angular-acceleration": {
      "name": {
        "en": "Angular acceleration",
        "fr": "Accélération angulaire"
      },
      "formats": {
        "rad-s2": {
          "name": {
            "en": "Radians/second squared",
            "fr": "Radians/seconde carrée"
          },
          "symbol": "rad/s²"
        }
      }
    },
    "area": {
      "name": {
        "en": "Area",
        "fr": "Aire"
      },
      "formats": {
        "ac": {
          "name": {
            "en": "Acres (imperial)",
            "fr": "Acres (anglo-saxon)"
          },
          "symbol": "ac"
        },
        "ft2": {
          "name": {
            "en": "Square feet",
            "fr": "Pieds carrés"
          },
          "symbol": "ft²"
        },
        "ha": {
          "name": {
            "en": "Hectares",
            "fr": "Hectares"
          },
          "symbol": "ha"
        },
        "in2": {
          "name": {
            "en": "Square inches",
            "fr": "Pouces carrés"
          },
          "symbol": "in²"
        },
        "km2": {
          "name": {
            "en": "Square kilometers",
            "fr": "Kilomètres carrés"
          },
          "symbol": "km²"
        },
        "m2": {
          "name": {
            "en": "Square meters",
            "fr": "Mètres carrés"
          },
          "symbol": "m²"
        },
        "mm2": {
          "name": {
            "en": "Square millimeters",
            "fr": "Millimètres carrés"
          },
          "symbol": "mm²"
        },
        "yd2": {
          "name": {
            "en": "Square yards",
            "fr": "Verges carrées"
          },
          "symbol": "yd²"
        },
        "mi2": {
          "name": {
            "en": "Square miles",
            "fr": "Milles carrés"
          },
          "symbol": "mi²"
        }
      }
    },
    "calendar": {
      "name": {
        "en": "Calendar"
      }
    },
    "capacitance": {
      "name": {
        "en": "Capacitance",
        "fr": "Capacitance"
      },
      "formats": {
        "f": {
          "name": {
            "en": "Farads",
            "fr": "Farads"
          },
          "symbol": "F"
        }
      }
    },
    "catalytic-activity": {
      "name": {
        "en": "Catalytic activity",
        "fr": "Activité catalytique"
      },
      "formats": {
        "kat": {
          "name": {
            "en": "Katals",
            "fr": "Katals"
          },
          "symbol": "kat"
        }
      }
    },
    "concentration": {
      "name": {
        "en": "Concentration",
        "fr": "Concentration"
      },
      "formats": {
        "mmol-l": {
          "name": {
            "en": "Millimoles/liter",
            "fr": "Millimoles/litre"
          },
          "symbol": "mmol/L"
        },
        "iu-l": {
          "name": {
            "en": "International Units/liter",
            "fr": "Unités Intenationales/litre"
          },
          "symbol": "IU/L"
        },
        "g-dl": {
          "name": {
            "en": "Grams/deciliter",
            "fr": "Grammes/décilitre"
          },
          "symbol": "g/dL"
        },
        "g-l": {
          "name": {
            "en": "Grams/liter",
            "fr": "Grammes/litre"
          },
          "symbol": "g/L"
        },
        "mg-l": {
          "name": {
            "en": "Milligrams/liter",
            "fr": "Milligrammes/litre"
          },
          "symbol": "mg/L"
        },
        "ug-l": {
          "name": {
            "en": "Micorgrams/liter",
            "fr": "Microgrammes/litre"
          },
          "symbol": "µg/L"
        },
        "mg-dl": {
          "name": {
            "en": "Milligrams/deciliter",
            "fr": "Milligrammes/décilitre"
          },
          "symbol": "mg/dL"
        }
      }
    },
    "consent": {
      "name": {
        "en": "Consent",
        "fr": "Consentement"
      }
    },
    "count": {
      "name": {
        "en": "Count",
        "fr": "Compte"
      },
      "formats": {
        "steps": {
          "name": {
            "en": "Steps",
            "fr": "Pas"
          }
        },
        "generic": {
          "name": {
            "en": "Units",
            "fr": "Unités"
          }
        }
      }
    },
    "data-quantity": {
      "name": {
        "en": "Data quantity",
        "fr": "Quantité de données"
      },
      "formats": {
        "b": {
          "name": {
            "en": "Bytes",
            "fr": "Octets"
          },
          "symbol": "B"
        },
        "bits": {
          "name": {
            "en": "Bits",
            "fr": "Bits"
          },
          "symbol": "bit"
        },
        "gb": {
          "name": {
            "en": "Gigabytes",
            "fr": "Gigaoctets"
          },
          "symbol": "Gb"
        },
        "gbits": {
          "name": {
            "en": "Gigabits",
            "fr": "Gigabits"
          },
          "symbol": "Gbit"
        },
        "kb": {
          "name": {
            "en": "Kilobytes",
            "fr": "Kilooctets"
          },
          "symbol": "Kb"
        },
        "kbits": {
          "name": {
            "en": "Kilobits",
            "fr": "Kilobits"
          },
          "symbol": "Kbit"
        },
        "mb": {
          "name": {
            "en": "Megabytes",
            "fr": "Megaoctets"
          },
          "symbol": "Mb"
        },
        "mbits": {
          "name": {
            "en": "Megabits",
            "fr": "Megabits"
          },
          "symbol": "Mbit"
        },
        "tb": {
          "name": {
            "en": "Terabytes",
            "fr": "Teraoctets"
          },
          "symbol": "Tb"
        }
      }
    },
    "density": {
      "name": {
        "en": "Density",
        "fr": "Densité"
      },
      "formats": {
        "kg-m3": {
          "name": {
            "en": "Kilograms/cubic meter",
            "fr": "Kilogrammes/mètre cube"
          },
          "symbol": "kg/m³"
        },
        "g-cm3": {
          "name": {
            "en": "Grams/cubic centimeter",
            "fr": "Grammes/centimètre cube"
          },
          "symbol": "g/cm³"
        }
      }
    },
    "dynamic-viscosity": {
      "name": {
        "en": "Dynamic viscosity",
        "fr": "Viscosité dynamique"
      },
      "formats": {
        "pa-s": {
          "name": {
            "en": "Pascals/second",
            "fr": "Pascals/seconde"
          },
          "symbol": "Pa/s"
        }
      }
    },
    "electric-charge": {
      "name": {
        "en": "Electric charge",
        "fr": "Charge électrique"
      },
      "formats": {
        "c": {
          "name": {
            "en": "Coulombs",
            "fr": "Coulombs"
          },
          "symbol": "C"
        }
      }
    },
    "electric-charge-line-density": {
      "name": {
        "en": "Electric charge line density",
        "fr": "Densité linéique de charge électrique"
      },
      "formats": {
        "c-m": {
          "name": {
            "en": "Coulombs/meter",
            "fr": "Coulombs/mètre"
          },
          "symbol": "C/m"
        }
      }
    },
    "electric-current": {
      "name": {
        "en": "Electric current",
        "fr": "Courant électrique"
      },
      "formats": {
        "a": {
          "name": {
            "en": "Amperes",
            "fr": "Ampères"
          },
          "symbol": "A"
        }
      }
    },
    "electrical-conductivity": {
      "name": {
        "en": "Electrical conductivity",
        "fr": "Conductivité électrique"
      },
      "formats": {
        "s": {
          "name": {
            "en": "Siemens",
            "fr": "Siemens"
          },
          "symbol": "S"
        },
        "us": {
          "name": {
            "en": "Micro Siemens",
            "fr": "Micro Siemens"
          },
          "symbol": "uS"
        }
      }
    },
    "electromotive-force": {
      "name": {
        "en": "Electromotive force",
        "fr": "Force électromotrice"
      },
      "formats": {
        "v": {
          "name": {
            "en": "Volts",
            "fr": "Volts"
          },
          "symbol": "V"
        }
      }
    },
    "energy": {
      "name": {
        "en": "Energy",
        "fr": "Energie"
      },
      "formats": {
        "btu": {
          "name": {
            "en": "British thermal units",
            "fr": "British thermal units"
          },
          "symbol": "BTU"
        },
        "cal": {
          "name": {
            "en": "Calories",
            "fr": "Calories"
          },
          "symbol": "cal"
        },
        "ev": {
          "name": {
            "en": "Electron-volts",
            "fr": "Électron-volts"
          },
          "symbol": "eV"
        },
        "erg": {
          "name": {
            "en": "Ergs",
            "fr": "Ergs"
          },
          "symbol": "Erg"
        },
        "ftlb": {
          "name": {
            "en": "Foot-pounds",
            "fr": "Pied-livres"
          },
          "symbol": "ft·lb"
        },
        "j": {
          "name": {
            "en": "Joules",
            "fr": "Joules"
          },
          "symbol": "J"
        },
        "kcal": {
          "name": {
            "en": "Kilogram-calories",
            "fr": "Kilocalories"
          },
          "symbol": "kg·cal"
        },
        "ws": {
          "name": {
            "en": "Watt-seconds",
            "fr": "Watt-secondes"
          },
          "symbol": "Ws"
        },
        "kwh": {
          "name": {
            "en": "Kilowatt-hours",
            "fr": "Kilowatt-heures"
          },
          "symbol": "kW·h"
        },
        "nm": {
          "name": {
            "en": "Newton-meters",
            "fr": "Newton-mètres"
          },
          "symbol": "N·m"
        },
        "wh": {
          "name": {
            "en": "Watt-hours",
            "fr": "Watt-heures"
          },
          "symbol": "W·h"
        }
      }
    },
    "force": {
      "name": {
        "en": "Force",
        "fr": "Force"
      },
      "formats": {
        "dyn": {
          "name": {
            "en": "Dynes",
            "fr": "Dynes"
          },
          "symbol": "dyn"
        },
        "n": {
          "name": {
            "en": "Newtons",
            "fr": "Newtons"
          },
          "symbol": "N"
        },
        "pdl": {
          "name": {
            "en": "Poundals",
            "fr": "Poundals"
          },
          "symbol": "Pdl"
        }
      }
    },
    "frequency": {
      "name": {
        "en": "Frequency",
        "fr": "Fréquence"
      },
      "formats": {
        "bpm": {
          "name": {
            "en": "Beats per minute",
            "fr": "Battements par minute"
          },
          "symbol": "bpm"
        },
        "brpm": {
          "name": {
            "en": "Breaths per minute",
            "fr": "Respirations par minute"
          }
        },
        "hz": {
          "name": {
            "en": "Hertz",
            "fr": "Hertz"
          },
          "symbol": "Hz"
        },
        "rpm": {
          "name": {
            "en": "Revolutions per minute",
            "fr": "Rotations par minute"
          },
          "symbol": "rpm"
        }
      }
    },
    "gas-consumption": {
      "formats": {
        "mlpkgmin": {
          "name": {
            "en": "Milliliters per kilogram and minute",
            "fr": "Millilitres par kilogramme et minute"
          }
        }
      }
    },
    "length": {
      "name": {
        "fr": "Longueur",
        "en": "Length"
      },
      "formats": {
        "cm": {
          "name": {
            "en": "Centimeters",
            "fr": "Centimètres"
          },
          "symbol": "cm"
        },
        "m": {
          "name": {
            "en": "Meters",
            "fr": "Mètres"
          },
          "symbol": "m"
        },
        "mm": {
          "name": {
            "en": "Millimeters",
            "fr": "Millimètres"
          },
          "symbol": "mm"
        },
        "km": {
          "name": {
            "en": "Kilometers",
            "fr": "Kilomètres"
          },
          "symbol": "km"
        },
        "a": {
          "name": {
            "en": "Ångströms",
            "fr": "Ångströms"
          },
          "symbol": "Å"
        },
        "au": {
          "name": {
            "en": "Astronomical units",
            "fr": "Unités astronomiques"
          },
          "symbol": "AU"
        },
        "ch": {
          "name": {
            "en": "Chains",
            "fr": "Chaînes"
          },
          "symbol": "ch"
        },
        "lea": {
          "name": {
            "en": "Leagues",
            "fr": "Lieues"
          },
          "symbol": "lea"
        },
        "ft": {
          "name": {
            "en": "Feet",
            "fr": "Pieds"
          },
          "symbol": "ft"
        },
        "in": {
          "name": {
            "en": "Inches",
            "fr": "Pouces"
          },
          "symbol": "In"
        },
        "ly": {
          "name": {
            "en": "Light-years",
            "fr": "Années-lumière"
          },
          "symbol": "ly"
        },
        "mil": {
          "name": {
            "en": "Mils",
            "fr": "Mils"
          },
          "symbol": "mil"
        },
        "mi": {
          "name": {
            "en": "Miles",
            "fr": "Miles"
          },
          "symbol": "mi"
        },
        "fur": {
          "name": {
            "en": "Furlongs",
            "fr": "Furlongs"
          },
          "symbol": "fur"
        },
        "nmi": {
          "name": {
            "en": "Miles (nautical)",
            "fr": "Miles nautiques"
          },
          "symbol": "nmi"
        },
        "p": {
          "name": {
            "en": "Points",
            "fr": "Points"
          },
          "symbol": "p"
        },
        "pica": {
          "name": {
            "en": "Picas",
            "fr": "Picas"
          },
          "symbol": "P̸"
        },
        "ftm": {
          "name": {
            "en": "Fathoms",
            "fr": "Fathoms"
          },
          "symbol": "ftm"
        },
        "cb": {
          "name": {
            "en": "Cables",
            "fr": "Cables"
          },
          "symbol": "cb"
        },
        "um": {
          "name": {
            "en": "Microns",
            "fr": "Microns"
          },
          "symbol": "µm"
        },
        "yd": {
          "name": {
            "en": "Yards",
            "fr": "Verges"
          },
          "symbol": "yd"
        }
      }
    },
    "luminous-intensity": {
      "name": {
        "en": "Luminous intensity",
        "fr": "Intensité lumineuse"
      },
      "formats": {
        "cd": {
          "name": {
            "en": "Candelas",
            "fr": "Candelas"
          },
          "symbol": "Cd"
        }
      }
    },
    "mass": {
      "name": {
        "en": "Mass",
        "fr": "Masse"
      },
      "formats": {
        "kg": {
          "name": {
            "en": "Kilograms",
            "fr": "Kilogrammes"
          },
          "symbol": "Kg"
        },
        "g": {
          "name": {
            "en": "Grams",
            "fr": "Grammes"
          },
          "symbol": "g"
        },
        "gr": {
          "name": {
            "en": "Grains",
            "fr": "Grains"
          },
          "symbol": "gr"
        },
        "dr": {
          "name": {
            "en": "Drams",
            "fr": "Drams"
          },
          "symbol": "dr"
        },
        "l-t": {
          "name": {
            "en": "Long tons",
            "fr": "Tonnes longues"
          },
          "symbol": "L/T"
        },
        "lb": {
          "name": {
            "en": "Pounds",
            "fr": "Livres"
          },
          "symbol": "lb"
        },
        "t": {
          "name": {
            "en": "Metric tons",
            "fr": "Tonnes métriques"
          },
          "symbol": "Mg"
        },
        "oz": {
          "name": {
            "en": "Ounces",
            "fr": "Onces"
          },
          "symbol": "oz"
        },
        "s-t": {
          "name": {
            "en": "Short tons",
            "fr": "Tonnes courtes"
          },
          "symbol": "S/T"
        },
        "st": {
          "name": {
            "en": "Stones",
            "fr": "Stones"
          },
          "symbol": "st"
        }
      }
    },
    "mol": {
      "name": {
        "en": "Amount of substance",
        "fr": "Quantité de matière"
      },
      "formats": {
        "mol": {
          "name": {
            "en": "Moles",
            "fr": "Moles"
          },
          "symbol": "Mol"
        }
      }
    },
    "money": {
      "name": {
        "en": "Money",
        "fr": "Argent"
      },
      "formats": {
        "ang": {
          "name": {
            "en": "Netherlands Antilles Guilder",
            "fr": "Florin des Antilles"
          },
          "symbol": "ƒ"
        },
        "ars": {
          "name": {
            "en": "Argentina Peso",
            "fr": "Peso argentin"
          },
          "symbol": "$"
        },
        "aud": {
          "name": {
            "en": "Australia Dollar",
            "fr": "Dollar australien"
          },
          "symbol": "$"
        },
        "bgn": {
          "name": {
            "en": "Bulgaria Lev",
            "fr": "Bulgarian Lev"
          },
          "symbol": "лв"
        },
        "bnd": {
          "name": {
            "en": "Brunei Darussalam Dollar",
            "fr": "Dollar de Brunei"
          },
          "symbol": "$"
        },
        "bob": {
          "name": {
            "en": "Bolivia Boliviano",
            "fr": "Boliviano"
          },
          "symbol": "$b"
        },
        "brl": {
          "name": {
            "en": "Brazil Real",
            "fr": "Real"
          },
          "symbol": "R$"
        },
        "bwp": {
          "name": {
            "en": "Botswana Pula"
          },
          "symbol": "P"
        },
        "cad": {
          "name": {
            "en": "Canada Dollar",
            "fr": "Dollar canadien"
          },
          "symbol": "$"
        },
        "chf": {
          "name": {
            "en": "Switzerland Franc",
            "fr": "Franc Suisse"
          },
          "symbol": "CHF"
        },
        "clp": {
          "name": {
            "en": "Chile Peso",
            "fr": "Peso chilien"
          },
          "symbol": "$"
        },
        "cny": {
          "name": {
            "en": "China Yuan Renminbi",
            "fr": "Yuan Ren-Min-Bi"
          },
          "symbol": "¥"
        },
        "cop": {
          "name": {
            "en": "Colombia Peso",
            "fr": "Peso colombien"
          },
          "symbol": "$"
        },
        "crc": {
          "name": {
            "en": "Costa Rica Colon",
            "fr": "Colon de Costa Rica"
          },
          "symbol": "₡"
        },
        "czk": {
          "name": {
            "en": "Czech Republic Koruna"
          },
          "symbol": "Kč"
        },
        "dkk": {
          "name": {
            "en": "Denmark Krone",
            "fr": "Couronne danoise"
          },
          "symbol": "kr"
        },
        "dop": {
          "name": {
            "en": "Dominican Republic Peso",
            "fr": "Peso dominicain"
          },
          "symbol": "RD$"
        },
        "eek": {
          "name": {
            "en": "Estonia Kroon",
            "fr": "Couronne estonienne"
          },
          "symbol": "kr"
        },
        "egp": {
          "name": {
            "en": "Egypt Pound",
            "fr": "Livre égyptienne"
          },
          "symbol": "£"
        },
        "eur": {
          "symbol": "€",
          "name": {
            "en": "Euro",
            "fr": "Euro"
          }
        },
        "fjd": {
          "name": {
            "en": "Fiji Dollar"
          },
          "symbol": "$"
        },
        "gbp": {
          "name": {
            "en": "United Kingdom Pound",
            "fr": "Livre"
          },
          "symbol": "£"
        },
        "hkd": {
          "name": {
            "en": "Hong Kong Dollar"
          },
          "symbol": "$"
        },
        "hnl": {
          "name": {
            "en": "Honduras Lempira"
          },
          "symbol": "L"
        },
        "hrk": {
          "name": {
            "en": "Croatia Kuna",
            "fr": "Kuna"
          },
          "symbol": "kn"
        },
        "huf": {
          "name": {
            "en": "Hungary Forint"
          },
          "symbol": "Ft"
        },
        "idr": {
          "name": {
            "en": "Indonesia Rupiah"
          },
          "symbol": "Rp"
        },
        "ils": {
          "name": {
            "en": "Israel Shekel"
          },
          "symbol": "₪"
        },
        "inr": {
          "name": {
            "en": "India Rupee",
            "fr": "Rhoupie indienne"
          }
        },
        "jmd": {
          "name": {
            "en": "Jamaica Dollar"
          },
          "symbol": "J$"
        },
        "jpy": {
          "name": {
            "en": "Japan Yen",
            "fr": "Yen japonais"
          },
          "symbol": "¥"
        },
        "krw": {
          "name": {
            "en": "Korea (South) Won",
            "fr": "Won"
          },
          "symbol": "₩"
        },
        "kyd": {
          "name": {
            "en": "Cayman Islands Dollar",
            "fr": "Dollar des Iles Caïmans"
          },
          "symbol": "$"
        },
        "kzt": {
          "name": {
            "en": "Kazakhstan Tenge"
          },
          "symbol": "лв"
        },
        "lbp": {
          "name": {
            "en": "Lebanon Pound"
          },
          "symbol": "£"
        },
        "lkr": {
          "name": {
            "en": "Sri Lanka Rupee"
          },
          "symbol": "₨"
        },
        "ltl": {
          "name": {
            "en": "Lithuania Litas"
          },
          "symbol": "Lt"
        },
        "lvl": {
          "name": {
            "en": "Latvia Lat",
            "fr": "Lat letton"
          },
          "symbol": "Ls"
        },
        "mkd": {
          "name": {
            "en": "Macedonia Denar"
          },
          "symbol": "ден"
        },
        "mur": {
          "name": {
            "en": "Mauritius Rupee"
          },
          "symbol": "₨"
        },
        "mxn": {
          "name": {
            "en": "Mexico Peso"
          },
          "symbol": "$"
        },
        "myr": {
          "name": {
            "en": "Malaysia Ringgit"
          },
          "symbol": "RM"
        },
        "nad": {
          "name": {
            "en": "Namibia Dollar"
          },
          "symbol": "$"
        },
        "ngn": {
          "name": {
            "en": "Nigeria Naira"
          },
          "symbol": "₦"
        },
        "nio": {
          "name": {
            "en": "Nicaragua Cordoba"
          },
          "symbol": "C$"
        },
        "nok": {
          "name": {
            "en": "Norway Krone",
            "fr": "Couronne norvégienne"
          },
          "symbol": "kr"
        },
        "npr": {
          "name": {
            "en": "Nepal Rupee"
          },
          "symbol": "₨"
        },
        "nzd": {
          "name": {
            "en": "New Zealand Dollar",
            "fr": "Dollar néo-zélandais"
          },
          "symbol": "$"
        },
        "omr": {
          "name": {
            "en": "Oman Rial"
          },
          "symbol": "﷼"
        },
        "pen": {
          "name": {
            "en": "Peru Nuevo Sol"
          },
          "symbol": "S/."
        },
        "php": {
          "name": {
            "en": "Philippines Peso"
          },
          "symbol": "₱"
        },
        "pkr": {
          "name": {
            "en": "Pakistan Rupee"
          },
          "symbol": "₨"
        },
        "pln": {
          "name": {
            "en": "Poland Zloty"
          },
          "symbol": "zł"
        },
        "pyg": {
          "name": {
            "en": "Paraguay Guarani"
          },
          "symbol": "Gs"
        },
        "qar": {
          "name": {
            "en": "Qatar Riyal"
          },
          "symbol": "﷼"
        },
        "ron": {
          "name": {
            "en": "Romania New Leu"
          },
          "symbol": "lei"
        },
        "rsd": {
          "name": {
            "en": "Serbia Dinar"
          },
          "symbol": "Дин."
        },
        "rub": {
          "name": {
            "en": "Russia Ruble"
          },
          "symbol": "руб"
        },
        "sar": {
          "name": {
            "en": "Saudi Arabia Riyal",
            "fr": "Riyal saoudien"
          },
          "symbol": "﷼"
        },
        "scr": {
          "name": {
            "en": "Seychelles Rupee"
          },
          "symbol": "₨"
        },
        "sek": {
          "name": {
            "en": "Sweden Krona"
          },
          "symbol": "kr"
        },
        "sgd": {
          "name": {
            "en": "Singapore Dollar"
          },
          "symbol": "$"
        },
        "svc": {
          "name": {
            "en": "El Salvador Colon",
            "fr": "Colon du El Salvador"
          },
          "symbol": "$"
        },
        "thb": {
          "name": {
            "en": "Thailand Baht"
          },
          "symbol": "฿"
        },
        "try": {
          "name": {
            "en": "Turkey Lira"
          }
        },
        "ttd": {
          "name": {
            "en": "Trinidad and Tobago Dollar"
          },
          "symbol": "TT$"
        },
        "twd": {
          "name": {
            "en": "Taiwan New Dollar"
          },
          "symbol": "NT$"
        },
        "uah": {
          "name": {
            "en": "Ukraine Hryvna"
          },
          "symbol": "₴"
        },
        "usd": {
          "name": {
            "en": "United States Dollar",
            "fr": "Dollar des États-Unis"
          },
          "symbol": "$"
        },
        "uyu": {
          "name": {
            "en": "Uruguay Peso"
          },
          "symbol": "$U"
        },
        "uzs": {
          "name": {
            "en": "Uzbekistan Som"
          },
          "symbol": "лв"
        },
        "vnd": {
          "name": {
            "en": "Viet Nam Dong"
          },
          "symbol": "₫"
        },
        "yer": {
          "name": {
            "en": "Yemen Rial"
          },
          "symbol": "﷼"
        },
        "zar": {
          "name": {
            "en": "South Africa Rand",
            "fr": "Rand"
          },
          "symbol": "R"
        },
        "btc": {
          "name": {
            "en": "Bitcoin"
          },
          "symbol": "฿"
        },
        "all": {
          "name": {
            "en": "Albania Lek",
            "fr": "Lek Albanai"
          },
          "symbol": "Lek"
        },
        "afn": {
          "name": {
            "en": "Afghanistan Afghani",
            "fr": "Afghani"
          },
          "symbol": "؋"
        },
        "awg": {
          "name": {
            "en": "Aruba Guilder",
            "fr": "Florin d'Aruba"
          },
          "symbol": "ƒ"
        },
        "azn": {
          "name": {
            "en": "Azerbaijan New Manat",
            "fr": "Manat"
          },
          "symbol": "ман"
        },
        "bsd": {
          "name": {
            "en": "Bahamas Dollar",
            "fr": "Dollar des Bahamas"
          },
          "symbol": "$"
        },
        "bbd": {
          "name": {
            "en": "Barbados Dollar",
            "fr": "Dollar de Barbade"
          },
          "symbol": "$"
        },
        "byr": {
          "name": {
            "en": "Belarus Ruble",
            "fr": "Rouble bélorusse"
          },
          "symbol": "p."
        },
        "bzd": {
          "name": {
            "en": "Belize Dollar",
            "fr": "Dollar de Belize"
          },
          "symbol": "BZ$"
        },
        "bmd": {
          "name": {
            "en": "Bermuda Dollar",
            "fr": "Dollar des Bermudes"
          },
          "symbol": "$"
        },
        "bam": {
          "name": {
            "en": "Bosnia and Herzegovina Convertible Marka"
          },
          "symbol": "KM"
        },
        "khr": {
          "name": {
            "en": "Cambodia Riel",
            "fr": "Riel"
          },
          "symbol": "៛"
        },
        "cup": {
          "name": {
            "en": "Cuba Peso",
            "fr": "Peso cubain"
          },
          "symbol": "₱"
        },
        "xcd": {
          "name": {
            "en": "East Caribbean Dollar",
            "fr": "Dollar des Caraïbes orientales"
          },
          "symbol": "$"
        },
        "fkp": {
          "name": {
            "en": "Falkland Islands (Malvinas) Pound"
          },
          "symbol": "£"
        },
        "ghc": {
          "name": {
            "en": "Ghana Cedis"
          },
          "symbol": "¢"
        },
        "gip": {
          "name": {
            "en": "Gibraltar Pound"
          },
          "symbol": "£"
        },
        "gtq": {
          "name": {
            "en": "Guatemala Quetzal"
          },
          "symbol": "Q"
        },
        "ggp": {
          "name": {
            "en": "Guernsey Pound"
          },
          "symbol": "£"
        },
        "gyd": {
          "name": {
            "en": "Guyana Dollar"
          },
          "symbol": "$"
        },
        "isk": {
          "name": {
            "en": "Iceland Krona"
          },
          "symbol": "kr"
        },
        "irr": {
          "name": {
            "en": "Iran Rial"
          },
          "symbol": "﷼"
        },
        "imp": {
          "name": {
            "en": "Isle of Man Pound"
          },
          "symbol": "£"
        },
        "jep": {
          "name": {
            "en": "Jersey Pound"
          },
          "symbol": "£"
        },
        "kpw": {
          "name": {
            "en": "Korea (North) Won",
            "fr": "Won de la Corée du Nord"
          },
          "symbol": "₩"
        },
        "kgs": {
          "name": {
            "en": "Kyrgyzstan Som"
          },
          "symbol": "лв"
        },
        "lak": {
          "name": {
            "en": "Laos Kip"
          },
          "symbol": "₭"
        },
        "lrd": {
          "name": {
            "en": "Liberia Dollar"
          },
          "symbol": "$"
        },
        "mnt": {
          "name": {
            "en": "Mongolia Tughrik"
          },
          "symbol": "₮"
        },
        "mzn": {
          "name": {
            "en": "Mozambique Metical"
          },
          "symbol": "MT"
        },
        "pab": {
          "name": {
            "en": "Panama Balboa"
          },
          "symbol": "B/."
        },
        "shp": {
          "name": {
            "en": "Saint Helena Pound"
          },
          "symbol": "£"
        },
        "sbd": {
          "name": {
            "en": "Solomon Islands Dollar"
          },
          "symbol": "$"
        },
        "sos": {
          "name": {
            "en": "Somalia Shilling"
          },
          "symbol": "S"
        },
        "srd": {
          "name": {
            "en": "Suriname Dollar"
          },
          "symbol": "$"
        },
        "syp": {
          "name": {
            "en": "Syria Pound"
          },
          "symbol": "£"
        },
        "trl": {
          "name": {
            "en": "Turkey Lira"
          },
          "symbol": "₤"
        },
        "tvd": {
          "name": {
            "en": "Tuvalu Dollar"
          },
          "symbol": "$"
        },
        "vef": {
          "name": {
            "en": "Venezuela Bolivar"
          },
          "symbol": "Bs"
        },
        "zwd": {
          "name": {
            "en": "Zimbabwe Dollar"
          },
          "symbol": "Z$"
        }
      }
    },
    "notification": {
      "name": {
        "en": "Notification",
        "fr": "Notification"
      }
    },
    "power": {
      "name": {
        "en": "Power",
        "fr": "Puissance"
      },
      "formats": {
        "btu-min": {
          "name": {
            "en": "BTUs/minute",
            "fr": "BTUs/minute"
          },
          "symbol": "BTU/min"
        },
        "ftlb-s": {
          "name": {
            "en": "Foot-pounds/second",
            "fr": "Pied-livres/seconde"
          },
          "symbol": "ft·lb/s"
        },
        "hp": {
          "name": {
            "en": "Horsepower",
            "fr": "Chevaux"
          },
          "symbol": "hp"
        },
        "kw": {
          "name": {
            "en": "Kilowatts",
            "fr": "Kilowatts"
          },
          "symbol": "kW"
        },
        "w": {
          "name": {
            "en": "Watts",
            "fr": "Watts"
          },
          "symbol": "W"
        }
      }
    },
    "pressure": {
      "name": {
        "en": "Pressure",
        "fr": "Pression"
      },
      "formats": {
        "at": {
          "name": {
            "en": "Atmospheres",
            "fr": "Atmosphères"
          },
          "symbol": "at"
        },
        "bar": {
          "name": {
            "en": "Bars",
            "fr": "Bars"
          },
          "symbol": "bar"
        },
        "mmhg": {
          "name": {
            "en": "Millimeters of mercury",
            "fr": "Millimètres de mercure"
          },
          "symbol": "mmHg"
        },
        "cmhg": {
          "name": {
            "en": "Centimeters of mercury",
            "fr": "Centimètres de mercure"
          },
          "symbol": "cmHg"
        },
        "inhg": {
          "name": {
            "en": "Inches of mercury",
            "fr": "Pouces de mercure"
          },
          "symbol": "inHg"
        },
        "kg-m2": {
          "name": {
            "en": "Kilograms/square meter",
            "fr": "Kilogrammes/mètre cube"
          },
          "symbol": "kg/m²"
        },
        "pa": {
          "name": {
            "en": "Pascals",
            "fr": "Pascals"
          },
          "symbol": "Pa"
        },
        "kpa": {
          "name": {
            "en": "Kilo Pascals",
            "fr": "Kilo Pascals"
          },
          "symbol": "kPa"
        },
        "psf": {
          "name": {
            "en": "Pounds/square foot",
            "fr": "Livres/pied carré"
          },
          "symbol": "psf"
        },
        "psi": {
          "name": {
            "en": "Pounds/square inch",
            "fr": "Livres/pouce carré"
          },
          "symbol": "psi"
        }
      }
    },
    "ratio": {
      "name": {
        "en": "Ratio",
        "fr": "Ratio"
      },
      "formats": {
        "percent": {
          "name": {
            "en": "Percentage",
            "fr": "Pourcentage"
          }
        }
      }
    },
    "speed": {
      "name": {
        "en": "Speed",
        "fr": "Vitesse"
      },
      "formats": {
        "ft-m": {
          "name": {
            "en": "Feet/minute",
            "fr": "Pieds/minute"
          },
          "symbol": "ft/m"
        },
        "ft-s": {
          "name": {
            "en": "Feet/second",
            "fr": "Pieds/seconde"
          },
          "symbol": "ft/s"
        },
        "km-h": {
          "name": {
            "en": "Kilometers/hour",
            "fr": "Kilomètres/heure"
          },
          "symbol": "km/h"
        },
        "kt": {
          "name": {
            "en": "Knots",
            "fr": "Noeuds"
          },
          "symbol": "kt"
        },
        "m-min": {
          "name": {
            "en": "Miles/minute",
            "fr": "Miles/minute"
          },
          "symbol": "m/min"
        },
        "m-s": {
          "name": {
            "en": "Meters/second",
            "fr": "Mètres/seconde"
          },
          "symbol": "m/s"
        },
        "mph": {
          "name": {
            "en": "Miles/hour",
            "fr": "Miles/heure"
          },
          "symbol": "mph"
        },
        "lpm": {
          "name": {
            "en": "Liters/minute",
            "fr": "Litres/minute"
          },
          "symbol": "L/min"
        }
      }
    },
    "temperature": {
      "name": {
        "en": "Temperature",
        "fr": "Température"
      },
      "formats": {
        "c": {
          "name": {
            "en": "Degrees Celsius",
            "fr": "Degrés Celsius"
          },
          "symbol": "°C"
        },
        "k": {
          "name": {
            "en": "Degrees Kelvin",
            "fr": "Degrés Kelvin"
          },
          "symbol": "°K"
        },
        "f": {
          "name": {
            "en": "Degrees Fahrenheit",
            "fr": "Degrés Fahrenheit"
          },
          "symbol": "°F"
        }
      }
    },
    "time": {
      "name": {
        "en": "Time",
        "fr": "Temps"
      },
      "formats": {
        "d": {
          "name": {
            "en": "Days",
            "fr": "Jours"
          },
          "symbol": "d"
        },
        "h": {
          "name": {
            "en": "Hours",
            "fr": "Heures"
          },
          "symbol": "h"
        },
        "min": {
          "name": {
            "en": "Minutes",
            "fr": "Minutes"
          },
          "symbol": "min"
        },
        "ms": {
          "name": {
            "en": "Milliseconds",
            "fr": "Millisecondes"
          },
          "symbol": "ms"
        },
        "s": {
          "name": {
            "en": "Seconds",
            "fr": "Secondes"
          },
          "symbol": "s"
        },
        "y": {
          "name": {
            "en": "Years (Julian)",
            "fr": "Années (juliennes)"
          },
          "symbol": "yr"
        }
      }
    },
    "volume": {
      "name": {
        "en": "Volume",
        "fr": "Volume"
      },
      "formats": {
        "l": {
          "name": {
            "en": "Liters",
            "fr": "Litres"
          },
          "symbol": "L"
        },
        "m3": {
          "name": {
            "en": "Cubic meters",
            "fr": "Mètres cube"
          },
          "symbol": "m³"
        },
        "c": {
          "name": {
            "en": "Cups",
            "fr": "Tasses"
          },
          "symbol": "c"
        },
        "cm3": {
          "name": {
            "en": "Cubic centimeters",
            "fr": "Centimètres cube"
          },
          "symbol": "cm³"
        },
        "floz": {
          "name": {
            "en": "Fluid ounces",
            "fr": "Onces liquides"
          },
          "symbol": "fl oz"
        },
        "ft3": {
          "name": {
            "en": "Cubic feet",
            "fr": "Pieds cube"
          },
          "symbol": "cu ft"
        },
        "galgb": {
          "name": {
            "en": "Gallons imperial",
            "fr": "Gallons impériaux"
          },
          "symbol": "gal GB"
        },
        "galus": {
          "name": {
            "en": "Gallons US",
            "fr": "Gallons US"
          },
          "symbol": "gal US"
        },
        "in3": {
          "name": {
            "en": "Cubic inches",
            "fr": "Pouce cube"
          },
          "symbol": "cu in"
        },
        "yd3": {
          "name": {
            "en": "Cubic yards",
            "fr": "Verges cube"
          },
          "symbol": "cu yd"
        },
        "ml": {
          "name": {
            "en": "Milliliters",
            "fr": "Millilitres"
          },
          "symbol": "mL"
        },
        "pt": {
          "name": {
            "en": "Pints",
            "fr": "Pintes"
          },
          "symbol": "pt"
        },
        "qt": {
          "name": {
            "en": "Quarts",
            "fr": "Quarts"
          },
          "symbol": "qt"
        },
        "bbloil": {
          "name": {
            "en": "Barrels (oil)",
            "fr": "Barils (pétrole)"
          },
          "symbol": "bbl (oil)"
        },
        "tbs": {
          "name": {
            "en": "Tablespoons",
            "fr": "Cuillères à soupe"
          },
          "symbol": "tbs"
        },
        "tsp": {
          "name": {
            "en": "Teaspoons",
            "fr": "Cuillères à café"
          },
          "symbol": "tsp"
        }
      }
    }
  },
  "sets": {
    "basic-measurements-metric": {
      "name": {
        "en": "Metric measures (basics)",
        "fr": "Mesures métriques de base"
      },
      "description": {
        "en": "Kg, m, Km, ... "
      },
      "types": {
        "count": [
          "generic"
        ],
        "length": [
          "cm",
          "km",
          "m",
          "mm"
        ],
        "mass": [
          "kg",
          "g",
          "t"
        ],
        "temperature": [
          "c"
        ],
        "ratio": [
          "percent"
        ],
        "speed": [
          "km-h",
          "m-s"
        ],
        "volume": [
          "l",
          "m3",
          "ml"
        ]
      }
    },
    "generic-measurements-metric": {
      "name": {
        "en": "Metric measures",
        "fr": "Mesures métriques"
      },
      "description": {
        "en": "Kg, m, Km, ... "
      },
      "types": {
        "area": [
          "ha",
          "km2",
          "m2"
        ],
        "electric-current": [
          "a"
        ],
        "electromotive-force": [
          "v"
        ],
        "energy": [
          "cal",
          "j",
          "kcal"
        ],
        "frequency": [
          "hz",
          "bpm",
          "rpm"
        ],
        "length": [
          "cm",
          "km",
          "m",
          "mm"
        ],
        "mass": [
          "kg",
          "g",
          "t"
        ],
        "power": [
          "hp",
          "kw",
          "w"
        ],
        "pressure": [
          "bar",
          "kg-m2",
          "pa",
          "kpa"
        ],
        "temperature": [
          "c"
        ],
        "speed": [
          "km-h",
          "m-s"
        ],
        "volume": [
          "l",
          "m3",
          "ml"
        ]
      }
    },
    "basic-measurements-imperial": {
      "name": {
        "en": "Imperial measures (basics)",
        "fr": "Mesures, système impérial (de base)"
      },
      "description": {
        "en": "lb, in, ft, ..."
      },
      "types": {
        "count": [
          "generic"
        ],
        "length": [
          "ch",
          "lea",
          "ft",
          "in",
          "mi",
          "fur",
          "yd"
        ],
        "mass": [
          "lb",
          "oz",
          "s-t",
          "st"
        ],
        "temperature": [
          "f"
        ],
        "ratio": [
          "percent"
        ],
        "speed": [
          "ft-s",
          "m-min",
          "mph"
        ],
        "volume": [
          "c",
          "floz",
          "galgb",
          "pt",
          "qt",
          "tbs",
          "tsp"
        ]
      }
    },
    "generic-measurements-imperial": {
      "name": {
        "en": "Imperial measures",
        "fr": "Mesures, système impérial"
      },
      "description": {
        "en": "lb, in, ft, ..."
      },
      "types": {
        "area": [
          "ac",
          "ft2",
          "in2",
          "yd2",
          "mi2"
        ],
        "electric-current": [
          "a"
        ],
        "electromotive-force": [
          "v"
        ],
        "energy": [
          "btu",
          "erg",
          "ftlb",
          "kcal"
        ],
        "force": [
          "pdl"
        ],
        "length": [
          "ch",
          "lea",
          "ft",
          "in",
          "mi",
          "fur",
          "yd"
        ],
        "mass": [
          "lb",
          "oz",
          "s-t",
          "st"
        ],
        "power": [
          "hp"
        ],
        "pressure": [
          "inhg",
          "psi"
        ],
        "temperature": [
          "f"
        ],
        "speed": [
          "ft-s",
          "m-min",
          "mph"
        ],
        "volume": [
          "c",
          "floz",
          "galgb",
          "pt",
          "qt",
          "tbs",
          "tsp"
        ]
      }
    },
    "basic-measurements-us": {
      "name": {
        "en": "US measures (basics)",
        "fr": "Mesures USA (de base)"
      },
      "description": {
        "en": "yd, mil, oz, ..."
      },
      "types": {
        "count": [
          "generic"
        ],
        "length": [
          "ch",
          "ft",
          "in",
          "mil",
          "mi",
          "fur",
          "p",
          "pica",
          "yd"
        ],
        "mass": [
          "gr",
          "dr",
          "l-t",
          "lb",
          "oz"
        ],
        "temperature": [
          "f"
        ],
        "ratio": [
          "percent"
        ],
        "speed": [
          "ft-s",
          "m-min",
          "mph"
        ],
        "volume": [
          "c",
          "floz",
          "ft3",
          "galus",
          "in3",
          "yd3",
          "pt",
          "qt",
          "bbloil",
          "tbs",
          "tsp"
        ]
      }
    },
    "generic-measurements-us": {
      "name": {
        "en": "US measures",
        "fr": "Mesures USA"
      },
      "description": {
        "en": "yd, mil, oz, ..."
      },
      "types": {
        "area": [
          "ac",
          "ft2",
          "in2",
          "yd2"
        ],
        "electric-current": [
          "a"
        ],
        "electromotive-force": [
          "v"
        ],
        "length": [
          "ch",
          "ft",
          "in",
          "mil",
          "mi",
          "fur",
          "p",
          "pica",
          "yd"
        ],
        "mass": [
          "gr",
          "dr",
          "l-t",
          "lb",
          "oz"
        ],
        "power": [
          "hp"
        ],
        "pressure": [
          "inhg",
          "psi"
        ],
        "temperature": [
          "f"
        ],
        "speed": [
          "ft-s",
          "m-min",
          "mph"
        ],
        "volume": [
          "c",
          "floz",
          "ft3",
          "galus",
          "in3",
          "yd3",
          "pt",
          "qt",
          "bbloil",
          "tbs",
          "tsp"
        ]
      }
    },
    "money-most-used": {
      "name": {
        "en": "Most used currencies",
        "fr": "Devises les plus utilisées"
      },
      "description": {
        "en": "$, €, ¥, ..."
      },
      "types": {
        "money": [
          "eur",
          "usd",
          "cny",
          "gbp",
          "jpy",
          "chf",
          "cad"
        ]
      }
    },
    "money-europe": {
      "name": {
        "en": "Currencies Europe",
        "fr": "Devises Europe"
      },
      "description": {
        "en": "€, £, CHF, ..."
      },
      "types": {
        "money": [
          "all",
          "byr",
          "bam",
          "bgn",
          "hrk",
          "czk",
          "dkk",
          "eek",
          "eur",
          "fkp",
          "gip",
          "ggp",
          "huf",
          "isk",
          "irr",
          "jep",
          "lvl",
          "ltl",
          "mkd",
          "ang",
          "nok",
          "pln",
          "ron",
          "rub",
          "shp",
          "rsd",
          "sek",
          "chf",
          "try",
          "trl",
          "uah",
          "gbp"
        ]
      }
    },
    "money-america": {
      "name": {
        "en": "Currencies Americas",
        "fr": "Devises Amériques"
      },
      "description": {
        "en": "$US, $CAD,  BRL, ..."
      },
      "types": {
        "money": [
          "ars",
          "bsd",
          "bbd",
          "bzd",
          "bmd",
          "bob",
          "brl",
          "cad",
          "kyd",
          "clp",
          "cop",
          "crc",
          "cup",
          "dop",
          "xcd",
          "svc",
          "fjd",
          "gtq",
          "gyd",
          "jmd",
          "mxn",
          "nio",
          "pab",
          "pyg",
          "pen",
          "shp",
          "srd",
          "ttd",
          "usd",
          "uyu",
          "vef"
        ]
      }
    },
    "money-asia": {
      "name": {
        "en": "Currencies Asia",
        "fr": "Devises Asie"
      },
      "description": {
        "en": "¥, 元, INR, ..."
      },
      "types": {
        "money": [
          "azn",
          "khr",
          "cny",
          "hnl",
          "inr",
          "idr",
          "jpy",
          "kzt",
          "kpw",
          "krw",
          "kgs",
          "lak",
          "myr",
          "mur",
          "mnt",
          "npr",
          "pkr",
          "rub",
          "scr",
          "sgd",
          "lkr",
          "syp",
          "twd",
          "thb",
          "try",
          "trl",
          "uzs",
          "vnd"
        ]
      }
    },
    "money-africa": {
      "name": {
        "en": "Currencies Africa",
        "fr": "Devises Afrique"
      },
      "description": {
        "en": "BWP, EGP, GHC, ..."
      },
      "types": {
        "money": [
          "bwp",
          "egp",
          "ghc",
          "mzn",
          "nad",
          "ngn",
          "sos",
          "zar",
          "zwd"
        ]
      }
    },
    "money-indonesia-australia": {
      "name": {
        "en": "Currencies Oceania & Indonesia",
        "fr": "Devises Océanie & Indonésie"
      },
      "description": {
        "en": "$AU, $NZ, PHP, ... "
      },
      "types": {
        "money": [
          "aud",
          "nzd",
          "php",
          "sbd",
          "tvd"
        ]
      }
    },
    "money-middleeast": {
      "name": {
        "en": "Currencies Middle East",
        "fr": "Devises Moyen-Orient"
      },
      "description": {
        "en": "AFN, BND, OMR, ...."
      },
      "types": {
        "money": [
          "afn",
          "bnd",
          "egp",
          "imp",
          "lbp",
          "omr",
          "qar",
          "sar",
          "syp",
          "yer"
        ]
      }
    },
    "generic-medical": {
      "name": {
        "en": "Common health mesures",
        "fr": "Mesures de santé courantes"
      },
      "description": {
        "en": "mmhg, bpm, ..."
      },
      "types": {
        "count": [
          "steps"
        ],
        "density": [
          "mg-dl",
          "mmol-l"
        ],
        "pressure": [
          "mmhg"
        ],
        "frequency": [
          "bpm"
        ]
      }
    },
    "navigation": {
      "name": {
        "en": "Navigation",
        "fr": "Navigation"
      },
      "description": {
        "en": "nmi, °, kt, ..."
      },
      "types": {
        "angle": [
          "deg",
          "grad",
          "rad"
        ],
        "length": [
          "nmi",
          "ftm",
          "cb"
        ],
        "speed": [
          "kt"
        ]
      }
    },
    "all-measures": {
      "name": {
        "en": "All measures",
        "fr": "Toutes les mesures"
      },
      "types": {
        "absorbed-dose": [
          "gy"
        ],
        "absorbed-dose-equivalent": [
          "sv"
        ],
        "absorbed-dose-rate": [
          "gy-s"
        ],
        "mol": [
          "mol"
        ],
        "angle": [
          "deg",
          "grad",
          "rad"
        ],
        "angular-acceleration": [
          "rad-s2"
        ],
        "area": [
          "ac",
          "ft2",
          "ha",
          "in2",
          "km2",
          "m2",
          "mm2",
          "yd2",
          "mi2"
        ],
        "capacitance": [
          "f"
        ],
        "catalytic-activity": [
          "kat"
        ],
        "data-quantity": [
          "b",
          "bits",
          "gb",
          "gbits",
          "kb",
          "kbits",
          "mb",
          "mbits",
          "tb"
        ],
        "density": [
          "g-dl",
          "kg-m3",
          "mg-dl",
          "mmol-l"
        ],
        "time": [
          "d",
          "h",
          "min",
          "ms",
          "s",
          "y"
        ],
        "dynamic-viscosity": [
          "pa-s"
        ],
        "electric-charge": [
          "c"
        ],
        "electric-charge-line-density": [
          "c-m"
        ],
        "electric-current": [
          "a"
        ],
        "electrical-conductivity": [
          "s"
        ],
        "electromotive-force": [
          "v"
        ],
        "energy": [
          "btu",
          "cal",
          "ev",
          "erg",
          "ftlb",
          "j",
          "kcal",
          "ws",
          "kwh",
          "nm",
          "wh"
        ],
        "force": [
          "dyn",
          "n",
          "pdl"
        ],
        "length": [
          "a",
          "au",
          "cm",
          "ch",
          "lea",
          "ft",
          "in",
          "km",
          "ly",
          "m",
          "mil",
          "mi",
          "fur",
          "mm",
          "nmi",
          "p",
          "pica",
          "ftm",
          "cb",
          "um",
          "yd"
        ],
        "luminous-intensity": [
          "cd"
        ],
        "mass": [
          "gr",
          "dr",
          "kg",
          "g",
          "l-t",
          "lb",
          "t",
          "oz",
          "s-t",
          "st"
        ],
        "power": [
          "btu-min",
          "ftlb-s",
          "hp",
          "kw",
          "w"
        ],
        "pressure": [
          "at",
          "bar",
          "cmhg",
          "inhg",
          "kg-m2",
          "pa",
          "kpa",
          "psf",
          "psi"
        ],
        "temperature": [
          "c",
          "f",
          "k"
        ],
        "speed": [
          "ft-m",
          "ft-s",
          "km-h",
          "kt",
          "m-min",
          "m-s",
          "mph"
        ],
        "volume": [
          "c",
          "cm3",
          "floz",
          "ft3",
          "galgb",
          "galus",
          "in3",
          "yd3",
          "l",
          "m3",
          "ml",
          "pt",
          "qt",
          "bbloil",
          "tbs",
          "tsp"
        ]
      }
    }
  }
}