# social.arabica.alpha.brew

> Published by [arabica.social](https://lexicon.garden/identity/did:plc:chqc2ockzmyvlrasfb66x64a)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:chqc2ockzmyvlrasfb66x64a/social.arabica.alpha.brew)
- [Documentation](https://lexicon.garden/lexicon/did:plc:chqc2ockzmyvlrasfb66x64a/social.arabica.alpha.brew/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:chqc2ockzmyvlrasfb66x64a/social.arabica.alpha.brew/examples)

## Definitions

### `social.arabica.alpha.brew`

**Type**: `record`

A coffee brewing session with parameters and notes

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `pours` | `array` | No | Array of pour information for multi-pour methods (e.g., V60) |
| `method` | `string` | No | Brewing method (e.g., 'Pour Over', 'French Press', 'Espresso') |
| `rating` | `integer` | No | Rating of the brew from 1 to 10 |
| `beanRef` | `string` (at-uri) | Yes | AT-URI reference to the bean record used |
| `brewerRef` | `string` (at-uri) | No | AT-URI reference to the brewer/device used |
| `createdAt` | `string` (datetime) | Yes | Timestamp when the brew was made |
| `grindSize` | `string` | No | Grind size setting (can be numeric like '18' or descriptive like 'Medium') |
| `recipeRef` | `string` (at-uri) | No | AT-URI reference to the recipe used for this brew |
| `grinderRef` | `string` (at-uri) | No | AT-URI reference to the grinder used |
| `temperature` | `integer` | No | Water temperature in tenths of a degree Celsius (e.g., 935 = 93.5°C) |
| `timeSeconds` | `integer` | No | Total brew time in seconds |
| `waterAmount` | `integer` | No | Amount of water used in grams or milliliters |
| `coffeeAmount` | `integer` | No | Amount of coffee used in grams |
| `tastingNotes` | `string` | No | Tasting notes and observations about the brew |
| `espressoParams` | `ref` → `#espressoParams` | No | Espresso-specific brewing parameters (optional) |
| `pouroverParams` | `ref` → `#pouroverParams` | No | Pour-over-specific brewing parameters (optional) |

### `social.arabica.alpha.brew#pour`

**Type**: `object`

Information about a single pour in a multi-pour brewing method

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `timeSeconds` | `integer` | Yes | Time of this pour relative to brew start (seconds) |
| `waterAmount` | `integer` | Yes | Amount of water in this pour (grams or ml) |

### `social.arabica.alpha.brew#espressoParams`

**Type**: `object`

Parameters specific to espresso brewing

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `pressure` | `integer` | No | Brewing pressure in tenths of a bar (e.g., 90 = 9.0 bar) |
| `yieldWeight` | `integer` | No | Espresso yield/output weight in tenths of a gram (e.g., 360 = 36.0g) |
| `preInfusionSeconds` | `integer` | No | Pre-infusion time in seconds |

### `social.arabica.alpha.brew#pouroverParams`

**Type**: `object`

Parameters specific to pour-over brewing

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `filter` | `string` | No | Type of filter used (e.g. paper, metal, cloth) |
| `bloomWater` | `integer` | No | Water used for bloom in grams |
| `bypassWater` | `integer` | No | Bypass water added after brewing in grams |
| `bloomSeconds` | `integer` | No | Bloom wait time in seconds |
| `drawdownSeconds` | `integer` | No | Drawdown time in seconds (time after last pour until bed is dry) |

## Raw Schema

```json
{
  "id": "social.arabica.alpha.brew",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "beanRef",
          "createdAt"
        ],
        "properties": {
          "pours": {
            "type": "array",
            "items": {
              "ref": "#pour",
              "type": "ref"
            },
            "description": "Array of pour information for multi-pour methods (e.g., V60)"
          },
          "method": {
            "type": "string",
            "maxLength": 100,
            "description": "Brewing method (e.g., 'Pour Over', 'French Press', 'Espresso')"
          },
          "rating": {
            "type": "integer",
            "maximum": 10,
            "minimum": 1,
            "description": "Rating of the brew from 1 to 10"
          },
          "beanRef": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI reference to the bean record used"
          },
          "brewerRef": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI reference to the brewer/device used"
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp when the brew was made"
          },
          "grindSize": {
            "type": "string",
            "maxLength": 50,
            "description": "Grind size setting (can be numeric like '18' or descriptive like 'Medium')"
          },
          "recipeRef": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI reference to the recipe used for this brew"
          },
          "grinderRef": {
            "type": "string",
            "format": "at-uri",
            "description": "AT-URI reference to the grinder used"
          },
          "temperature": {
            "type": "integer",
            "maximum": 1000,
            "minimum": 0,
            "description": "Water temperature in tenths of a degree Celsius (e.g., 935 = 93.5°C)"
          },
          "timeSeconds": {
            "type": "integer",
            "minimum": 0,
            "description": "Total brew time in seconds"
          },
          "waterAmount": {
            "type": "integer",
            "minimum": 0,
            "description": "Amount of water used in grams or milliliters"
          },
          "coffeeAmount": {
            "type": "integer",
            "minimum": 0,
            "description": "Amount of coffee used in grams"
          },
          "tastingNotes": {
            "type": "string",
            "maxLength": 2000,
            "description": "Tasting notes and observations about the brew"
          },
          "espressoParams": {
            "ref": "#espressoParams",
            "type": "ref",
            "description": "Espresso-specific brewing parameters (optional)"
          },
          "pouroverParams": {
            "ref": "#pouroverParams",
            "type": "ref",
            "description": "Pour-over-specific brewing parameters (optional)"
          }
        }
      },
      "description": "A coffee brewing session with parameters and notes"
    },
    "pour": {
      "type": "object",
      "required": [
        "waterAmount",
        "timeSeconds"
      ],
      "properties": {
        "timeSeconds": {
          "type": "integer",
          "minimum": 0,
          "description": "Time of this pour relative to brew start (seconds)"
        },
        "waterAmount": {
          "type": "integer",
          "minimum": 0,
          "description": "Amount of water in this pour (grams or ml)"
        }
      },
      "description": "Information about a single pour in a multi-pour brewing method"
    },
    "espressoParams": {
      "type": "object",
      "properties": {
        "pressure": {
          "type": "integer",
          "minimum": 0,
          "description": "Brewing pressure in tenths of a bar (e.g., 90 = 9.0 bar)"
        },
        "yieldWeight": {
          "type": "integer",
          "minimum": 0,
          "description": "Espresso yield/output weight in tenths of a gram (e.g., 360 = 36.0g)"
        },
        "preInfusionSeconds": {
          "type": "integer",
          "minimum": 0,
          "description": "Pre-infusion time in seconds"
        }
      },
      "description": "Parameters specific to espresso brewing"
    },
    "pouroverParams": {
      "type": "object",
      "properties": {
        "filter": {
          "type": "string",
          "maxLength": 100,
          "description": "Type of filter used (e.g. paper, metal, cloth)"
        },
        "bloomWater": {
          "type": "integer",
          "minimum": 0,
          "description": "Water used for bloom in grams"
        },
        "bypassWater": {
          "type": "integer",
          "minimum": 0,
          "description": "Bypass water added after brewing in grams"
        },
        "bloomSeconds": {
          "type": "integer",
          "minimum": 0,
          "description": "Bloom wait time in seconds"
        },
        "drawdownSeconds": {
          "type": "integer",
          "minimum": 0,
          "description": "Drawdown time in seconds (time after last pour until bed is dry)"
        }
      },
      "description": "Parameters specific to pour-over brewing"
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
