ca.verworn.recipe

A cooking recipe stored in the author's repository.

Details · record, key tid
Kindrecord
Record keytid
Authorityverworn.ca
Indexed
cid bafyreihy6wt7r5n7vxkhkfffurfrf6yfbhvpwsoayxejp7b6giugmfrvly

Checks

Valid Lint pass
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "ingredient": {
      "description": "A single ingredient line.",
      "properties": {
        "amount": {
          "description": "Quantity as written, kept as a string to allow fractions and ranges (eg, '1 1/2', '2-3').",
          "maxGraphemes": 32,
          "maxLength": 320,
          "type": "string"
        },
        "group": {
          "description": "Optional heading grouping related ingredients (eg, 'For the sauce').",
          "maxGraphemes": 64,
          "maxLength": 640,
          "type": "string"
        },
        "name": {
          "description": "The ingredient itself (eg, 'all-purpose flour').",
          "maxGraphemes": 100,
          "maxLength": 1000,
          "minLength": 1,
          "type": "string"
        },
        "note": {
          "description": "Preparation note for this ingredient (eg, 'finely chopped').",
          "maxGraphemes": 100,
          "maxLength": 1000,
          "type": "string"
        },
        "optional": {
          "description": "Whether this ingredient can be left out.",
          "type": "boolean"
        },
        "unit": {
          "description": "Unit of measure for the amount (eg, 'cup', 'g', 'tbsp').",
          "maxGraphemes": 32,
          "maxLength": 320,
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    },
    "instructionStep": {
      "description": "A single step in the preparation.",
      "properties": {
        "group": {
          "description": "Optional heading grouping related steps (eg, 'Make the dough').",
          "maxGraphemes": 64,
          "maxLength": 640,
          "type": "string"
        },
        "text": {
          "description": "What to do in this step.",
          "maxGraphemes": 1000,
          "maxLength": 10000,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "text"
      ],
      "type": "object"
    },
    "main": {
      "description": "A cooking recipe stored in the author's repository.",
      "key": "tid",
      "record": {
        "properties": {
          "cookTime": {
            "description": "Active cooking time, in minutes.",
            "minimum": 0,
            "type": "integer"
          },
          "course": {
            "description": "Which part of a meal the recipe is for.",
            "knownValues": [
              "appetizer",
              "breakfast",
              "brunch",
              "lunch",
              "dinner",
              "side",
              "salad",
              "soup",
              "dessert",
              "snack",
              "drink",
              "sauce",
              "bread"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "createdAt": {
            "description": "Client-declared timestamp when this recipe was first created.",
            "format": "datetime",
            "type": "string"
          },
          "cuisine": {
            "description": "Culinary tradition the recipe belongs to (eg, 'Japanese').",
            "maxGraphemes": 64,
            "maxLength": 640,
            "type": "string"
          },
          "description": {
            "description": "Short summary or blurb about the recipe.",
            "maxGraphemes": 500,
            "maxLength": 5000,
            "type": "string"
          },
          "dietaryLabels": {
            "description": "Dietary properties of the finished dish.",
            "items": {
              "knownValues": [
                "vegetarian",
                "vegan",
                "gluten-free",
                "dairy-free",
                "nut-free",
                "egg-free",
                "halal",
                "kosher",
                "low-carb",
                "keto",
                "paleo"
              ],
              "maxLength": 64,
              "type": "string"
            },
            "maxLength": 20,
            "type": "array"
          },
          "difficulty": {
            "description": "How demanding the recipe is to make.",
            "knownValues": [
              "easy",
              "medium",
              "hard"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "image": {
            "accept": [
              "image/png",
              "image/jpeg",
              "image/webp"
            ],
            "description": "Photo of the finished dish.",
            "maxSize": 2000000,
            "type": "blob"
          },
          "ingredients": {
            "description": "Ingredients required, in the order they are used.",
            "items": {
              "ref": "#ingredient",
              "type": "ref"
            },
            "maxLength": 200,
            "minLength": 1,
            "type": "array"
          },
          "instructions": {
            "description": "Ordered preparation steps.",
            "items": {
              "ref": "#instructionStep",
              "type": "ref"
            },
            "maxLength": 100,
            "minLength": 1,
            "type": "array"
          },
          "notes": {
            "description": "Additional remarks, substitutions, or variations.",
            "maxGraphemes": 1500,
            "maxLength": 15000,
            "type": "string"
          },
          "prepTime": {
            "description": "Hands-on preparation time, in minutes.",
            "minimum": 0,
            "type": "integer"
          },
          "rating": {
            "description": "The author's own rating of the recipe, from 1 to 5 stars.",
            "maximum": 5,
            "minimum": 1,
            "type": "integer"
          },
          "servings": {
            "description": "Number of servings the recipe yields.",
            "minimum": 1,
            "type": "integer"
          },
          "source": {
            "description": "Where the recipe came from, if it is not original.",
            "ref": "#source",
            "type": "ref"
          },
          "tags": {
            "description": "Free-form tags for the author's own organization.",
            "items": {
              "maxGraphemes": 64,
              "maxLength": 640,
              "type": "string"
            },
            "maxLength": 20,
            "type": "array"
          },
          "title": {
            "description": "Name of the recipe; can not be empty.",
            "maxGraphemes": 120,
            "maxLength": 1200,
            "minLength": 1,
            "type": "string"
          },
          "totalTime": {
            "description": "Total time from start to finish, in minutes. May exceed prepTime plus cookTime when the recipe includes resting or marinating.",
            "minimum": 0,
            "type": "integer"
          },
          "updatedAt": {
            "description": "Client-declared timestamp when this recipe was last edited.",
            "format": "datetime",
            "type": "string"
          },
          "yield": {
            "description": "Free-form yield, for recipes not measured in servings (eg, '24 cookies').",
            "maxGraphemes": 64,
            "maxLength": 640,
            "type": "string"
          }
        },
        "required": [
          "title",
          "ingredients",
          "instructions",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    },
    "source": {
      "description": "Attribution for a recipe adapted from elsewhere.",
      "properties": {
        "name": {
          "description": "Who or what the recipe came from (eg, a cookbook or person).",
          "maxGraphemes": 200,
          "maxLength": 2000,
          "type": "string"
        },
        "uri": {
          "description": "Link to the original recipe.",
          "format": "uri",
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "id": "ca.verworn.recipe",
  "lexicon": 1
}