{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://vho.bio/schema/individual-profile/v1",
  "title": "VHO individual profile",
  "type": "object",
  "required": ["subject"],
  "additionalProperties": false,
  "properties": {
    "subject": { "$ref": "#/$defs/iri" },
    "lifeStage": { "$ref": "#/$defs/iri" },
    "sex": { "$ref": "#/$defs/iri" },
    "age": { "$ref": "#/$defs/quantity" },
    "mass": { "$ref": "#/$defs/quantity" },
    "bodyMeasurements": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["measuredAs", "value"],
        "additionalProperties": false,
        "properties": {
          "measuredAs": { "$ref": "#/$defs/iri" },
          "value": { "type": "number" },
          "unit": { "$ref": "#/$defs/iri" }
        }
      }
    },
    "currentPeriods": { "type": "array", "items": { "$ref": "#/$defs/iri" } },
    "traitAdditions": { "type": "array", "items": { "$ref": "#/$defs/iri" } },
    "traitRetractions": { "type": "array", "items": { "$ref": "#/$defs/iri" } }
  },
  "$defs": {
    "iri": { "type": "string", "format": "uri" },
    "quantity": {
      "type": "object",
      "required": ["value"],
      "additionalProperties": false,
      "properties": {
        "value": { "type": "number" },
        "unit": { "$ref": "#/$defs/iri" }
      }
    }
  }
}
