{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://publicschema.org/InformalGroup.schema.json",
  "title": "InformalGroup",
  "description": "A collection of persons identified together for a shared activity or purpose, without asserting a separate institutional body, common residence or kinship. The group can be identified even when its individual members are not enumerated. Use Household or Family when their more specific meanings apply, and Organization when the subject is an institutional body. Joint agricultural holders are one example.",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The full display name of the record. Depending on the concept, this is a person's or group's name, or the title of a program, instrument, scoring rule, or software product."
    },
    "identifiers": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "$ref": "https://publicschema.org/Identifier.schema.json"
          },
          {
            "type": "string",
            "description": "URI or identifier reference"
          }
        ],
        "description": "Identifiers carried by this entity, such as national ID numbers, program IDs, or identifiers asserted by an identity document."
      }
    },
    "identity_documents": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "$ref": "https://publicschema.org/IdentityDocument.schema.json"
          },
          {
            "type": "string",
            "description": "URI or identifier reference"
          }
        ],
        "description": "Identity documents held by this party, such as passports, national identity cards, civil registration certificates, and program-issued beneficiary cards, or, for an organization, a certificate of registration."
      }
    },
    "group_type": {
      "type": "string",
      "enum": [
        "household",
        "family",
        "farm",
        "other"
      ],
      "$comment": "https://publicschema.org/vocab/group-type",
      "description": "An interoperability classifier for the category of group record being exchanged or exported. In native PublicSchema modeling, the concrete Group subtype is the authoritative signal when known."
    },
    "formation_date": {
      "type": "string",
      "format": "date",
      "description": "The date on which this group or organization was formed or registered."
    },
    "member_count": {
      "type": "integer",
      "description": "The total number of members in this household or group."
    },
    "memberships": {
      "type": "array",
      "items": {
        "oneOf": [
          {
            "$ref": "https://publicschema.org/GroupMembership.schema.json"
          },
          {
            "type": "string",
            "description": "URI or identifier reference"
          }
        ],
        "description": "The membership links connecting persons to this group, each carrying role and lifecycle dates."
      }
    }
  }
}
