{
  "schema": "https://solvinghealth.com/schemas/pollen-kinds-v1",
  "version": "estate-pollen/1",
  "note": "The estate pollen contract: which result kinds a site may hand onward and which it may take in. A site declares its own sends/accepts in /.well-known/agent.json (\"pollen\"); the live registry at /.well-known/flowers.json shows the contract beside what each site declares. A new kind is added here first (open an issue or write to the address on /build), never invented in a manifest.",
  "transport": {
    "format": "estate-pollen/1",
    "carriers": [
      "URL fragment #pollen=",
      "a downloaded .json file"
    ],
    "trigger": "the person's click only; never sent to a server by the sender",
    "limits": {
      "max_keys": 24,
      "max_value_chars": 200,
      "shape": "flat object of numbers and short labels"
    },
    "forbidden": [
      "free text",
      "names",
      "dates of birth",
      "file contents",
      "identifiers of any kind"
    ],
    "receiver": "validates the payload, uses it for something concrete, renders it with textContent only"
  },
  "kinds": {
    "fall_screener": {
      "sent_by": [
        "fallrisks.com"
      ],
      "received_by": [
        "healthgait.com",
        "comfortcard.org",
        "co-op.care"
      ],
      "fields": "score*, max*, band* lower|moderate|higher",
      "required": [
        "score",
        "max",
        "band"
      ]
    },
    "gait_check": {
      "sent_by": [
        "healthgait.com"
      ],
      "received_by": [
        "fallrisks.com",
        "comfortcard.org"
      ],
      "fields": "speed_ms* (1 dp), gait_age, band*",
      "required": [
        "speed_ms",
        "band"
      ]
    },
    "joint_risk": {
      "sent_by": [
        "arthritisrisk.com"
      ],
      "received_by": [
        "jointclass.com",
        "surgeryprocess.com",
        "comfortcard.org"
      ],
      "fields": "joint* knee|hip|shoulder|hand|spine|other, pattern* mechanical|inflammatory|unclear, score",
      "required": [
        "joint",
        "pattern"
      ]
    },
    "back_assessment": {
      "sent_by": [
        "doesyourbackhurt.com"
      ],
      "received_by": [
        "comfortcard.org",
        "surgeryprocess.com"
      ],
      "fields": "band* self_care|see_clinician, weeks; never sent when urgent",
      "required": [
        "band"
      ]
    },
    "caregiver_situation": {
      "sent_by": [
        "familycaregive.com",
        "clinicalswipe.com"
      ],
      "received_by": [
        "co-op.care",
        "comfortcard.org",
        "caregoals.com"
      ],
      "fields": "stage* worried|starting|in_it, needs[] (<=5), hours_week",
      "required": [
        "stage"
      ]
    },
    "frailty_record": {
      "sent_by": [
        "medfrail.com"
      ],
      "received_by": [
        "comfortcard.org"
      ],
      "fields": "date*, items_met*, items*, band",
      "required": [
        "date",
        "items_met",
        "items"
      ]
    },
    "record_fingerprint": {
      "sent_by": [
        "comfortcard.org",
        "chanio.com"
      ],
      "received_by": [
        "hashcare.com"
      ],
      "fields": "fp* 64 lowercase hex: the SHA-256 of a whole file or of a root the sender publishes; never a hash of short personal text, label (<=60), kept YYYY-MM-DD",
      "required": [
        "fp"
      ]
    }
  }
}
