social.arabica.alpha.brew

arabica.social

{
  "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
}

Validate Record

Validate a record against social.arabica.alpha.brew

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:chqc2ockzmyvlrasfb66x64a
CID
bafyreica37ssxe52tql5upr2b3khk7vqcykm6hfvgde5gcfhk2qfq5wp64
Indexed At
2026-06-14 01:05 UTC
AT-URI
at://did:plc:chqc2ockzmyvlrasfb66x64a/com.atproto.lexicon.schema/social.arabica.alpha.brew

Lexicon Garden

@