# pet.trezy.group

> Published by [trezy.pet](https://lexicon.garden/identity/did:plc:ollch4g7tes2reb5eceiwuol)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:ollch4g7tes2reb5eceiwuol/pet.trezy.group)
- [Documentation](https://lexicon.garden/lexicon/did:plc:ollch4g7tes2reb5eceiwuol/pet.trezy.group/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:ollch4g7tes2reb5eceiwuol/pet.trezy.group/examples)

## Definitions

### `pet.trezy.group`

**Type**: `record`

A group a species can belong to — a family (canines), a habit (nocturnal), or a place (woodland). Published in the game's own repo (did:plc:ollch4g7tes2reb5eceiwuol); record.index:pet.trezy.group refuses the rest. GROUPS OVERLAP BY DESIGN: a wolf cub is a mammal AND a canine AND woodland, and all three are true at once. That is what lets the vocabulary mix levels — a class next to a family next to a behaviour — without any of them being wrong, which a single field forcing one bucket per species could not do.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `id` | `string` | Yes | The group key, referenced by `groups` on a species record. Renaming one orphans every reference, so it is a new group plus an edit to every species in it, never an edit here. |
| `rank` | `integer` | No | Display order, low first. Absent sorts after everything ranked, then by `displayName` — so an unranked group appears rather than vanishing, which is the failure a required field here would have caused the first time somebody published one in a hurry. |
| `collectible` | `boolean` | No | ⚠ ABSENT MEANS FALSE, WHICH IS THE OPPOSITE OF `purchasable` ON A SPECIES, AND THE ASYMMETRY IS DELIBERATE. A species defaults to sellable because most are and requiring the field would be noise. A group defaults to NOT a completable set because the two mistakes are not equally bad: a group wrongly marked collectible shows the player a set that is already complete (`birds`, one member) or one they cannot realistically finish (`mammals`, fourteen), and both read as the game being broken. A group wrongly left off simply does not offer a goal yet. Opt in when the group is genuinely a set worth finishing. |
| `description` | `string` | No | One line of flavour, shown when the group is the thing being looked at. Optional: a group whose name says everything does not need a sentence explaining it. |
| `displayName` | `string` | Yes | What a player sees as a heading or a filter chip. Sentence case as the copy is written elsewhere in the game — 'Waterfolk', not 'WATERFOLK'. |

## Raw Schema

```json
{
  "id": "pet.trezy.group",
  "defs": {
    "main": {
      "key": "any",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "id",
          "displayName"
        ],
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 64,
            "description": "The group key, referenced by `groups` on a species record. Renaming one orphans every reference, so it is a new group plus an edit to every species in it, never an edit here."
          },
          "rank": {
            "type": "integer",
            "description": "Display order, low first. Absent sorts after everything ranked, then by `displayName` — so an unranked group appears rather than vanishing, which is the failure a required field here would have caused the first time somebody published one in a hurry."
          },
          "collectible": {
            "type": "boolean",
            "description": "⚠ ABSENT MEANS FALSE, WHICH IS THE OPPOSITE OF `purchasable` ON A SPECIES, AND THE ASYMMETRY IS DELIBERATE. A species defaults to sellable because most are and requiring the field would be noise. A group defaults to NOT a completable set because the two mistakes are not equally bad: a group wrongly marked collectible shows the player a set that is already complete (`birds`, one member) or one they cannot realistically finish (`mammals`, fourteen), and both read as the game being broken. A group wrongly left off simply does not offer a goal yet. Opt in when the group is genuinely a set worth finishing."
          },
          "description": {
            "type": "string",
            "maxLength": 300,
            "description": "One line of flavour, shown when the group is the thing being looked at. Optional: a group whose name says everything does not need a sentence explaining it."
          },
          "displayName": {
            "type": "string",
            "maxLength": 64,
            "description": "What a player sees as a heading or a filter chip. Sentence case as the copy is written elsewhere in the game — 'Waterfolk', not 'WATERFOLK'."
          }
        }
      },
      "description": "A group a species can belong to — a family (canines), a habit (nocturnal), or a place (woodland). Published in the game's own repo (did:plc:ollch4g7tes2reb5eceiwuol); record.index:pet.trezy.group refuses the rest. GROUPS OVERLAP BY DESIGN: a wolf cub is a mammal AND a canine AND woodland, and all three are true at once. That is what lets the vocabulary mix levels — a class next to a family next to a behaviour — without any of them being wrong, which a single field forcing one bucket per species could not do."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
