{
  "resourceId": "R1",
  "protocolIdentifier": "FHP-1.0-20261020",
  "version": "1.0",
  "rowUnit": "One view in one photo session",
  "encoding": "UTF-8",
  "delimiter": ",",
  "unknownValue": "Empty field; never interpret as zero, normal or absent",
  "validationStatus": "Consumer editorial log; not clinically validated",
  "columns": [
    {"name": "record_type", "type": "enum", "values": ["TEMPLATE", "EXAMPLE", "PERSONAL"], "meaning": "Distinguishes blank structure, hypothetical data and the consumer's own record."},
    {"name": "protocol_version", "type": "string", "value": "FHP-1.0-20261020", "meaning": "Identifies the version of the method used."},
    {"name": "session_id", "type": "string", "meaning": "One consumer-chosen identifier shared across views from the same session."},
    {"name": "capture_date", "type": "date", "format": "YYYY-MM-DD", "meaning": "Date the original image was captured; leave unknown dates blank."},
    {"name": "view", "type": "string", "suggestedValues": ["central-part", "front", "crown", "other-labeled-view"], "meaning": "Keep each view name consistent between sessions."},
    {"name": "setup_id", "type": "string", "meaning": "Identifier for a separately saved camera, light and head-position recipe."},
    {"name": "device_lens", "type": "string", "meaning": "Phone or camera and chosen lens; note device or processing changes."},
    {"name": "zoom", "type": "string", "meaning": "Camera zoom setting, copied rather than inferred later."},
    {"name": "lighting", "type": "string", "meaning": "Room, switched-on lights and material changes in direction or daylight."},
    {"name": "hair_state", "type": "string", "meaning": "Dry, towel-dried or wet, plus any material preparation detail."},
    {"name": "hours_since_wash", "type": "nonnegative-number-or-empty", "meaning": "Approximate consumer estimate, not a controlled measurement."},
    {"name": "part_style", "type": "string", "meaning": "Part, hair arrangement and reference framing used."},
    {"name": "products_present", "type": "string", "meaning": "Record leave-ins, fibres, dry shampoo, styling products and other visible preparation."},
    {"name": "cut_colour_or_extensions_change", "type": "string", "meaning": "Change and approximate date; blank means unknown rather than unchanged."},
    {"name": "original_file", "type": "string", "meaning": "Filename of the retained original, before cropping or collage edits."},
    {"name": "focus_acceptable", "type": "enum-or-empty", "values": ["yes", "no", "unclear"], "meaning": "Whether hair and scalp in the target area appear in focus."},
    {"name": "target_view_recognizable", "type": "enum-or-empty", "values": ["yes", "no", "unclear"], "meaning": "Whether the view and landmarks can be recognized."},
    {"name": "recipe_match", "type": "enum-or-empty", "values": ["yes", "no", "unclear"], "meaning": "Whether recorded conditions reasonably match the reference recipe."},
    {"name": "comparability", "type": "enum-or-empty", "values": ["baseline", "comparable", "not-comparable", "unclear"], "meaning": "Consumer judgment about whether an appearance comparison is useful; not a clinical quality score."},
    {"name": "appearance_observation", "type": "enum-or-empty", "values": ["baseline", "less-visible-scalp", "similar-visible-scalp", "more-visible-scalp", "unclear"], "meaning": "Descriptive impression only; use unclear when not comparable, and never convert into density or growth percentages."},
    {"name": "comfort_observation", "type": "string", "meaning": "A separate experience note, such as itch or ease of application; not a growth outcome."},
    {"name": "other_changes", "type": "string", "meaning": "Relevant concurrent changes the consumer chooses to record without assigning cause."},
    {"name": "notes", "type": "string", "meaning": "Uncertainty, mismatches and next discussion point. Keep sensitive details private."}
  ],
  "interpretationRules": [
    "Do not infer a directional appearance outcome from a not-comparable row.",
    "Similar appearance does not establish prevention of deterioration or a product effect.",
    "No category is a diagnosis, follicle count, strand identity, density measurement or treatment-response score.",
    "Example rows are hypothetical and must never be represented as participant or customer outcomes."
  ]
}
