ca.verworn.recipe

daedalus.verworn.ca

Documentation

A cooking recipe stored in the author's repository.

main record

A cooking recipe stored in the author's repository.

Record Key tid Timestamp-based ID

Properties

cookTime integer Optional

Active cooking time, in minutes.

minimum: 0
course string Optional

Which part of a meal the recipe is for.

maxLength: 64 bytes
Known values: appetizer, breakfast, brunch, lunch, dinner, side, salad, soup, dessert, snack, drink, sauce, bread
createdAt string datetime Required

Client-declared timestamp when this recipe was first created.

cuisine string Optional

Culinary tradition the recipe belongs to (eg, 'Japanese').

maxLength: 640 bytesmaxGraphemes: 64 graphemes
description string Optional

Short summary or blurb about the recipe.

maxLength: 5000 bytesmaxGraphemes: 500 graphemes
dietaryLabels array of string Optional

Dietary properties of the finished dish.

maxLength: 20 items
difficulty string Optional

How demanding the recipe is to make.

maxLength: 64 bytes
Known values: easy, medium, hard
image blob Optional

Photo of the finished dish.

maxSize: 2.0 MB
ingredients array of ref #ingredient Required

Ingredients required, in the order they are used.

maxLength: 200 itemsminLength: 1 items
instructions array of ref #instructionStep Required

Ordered preparation steps.

maxLength: 100 itemsminLength: 1 items
notes string Optional

Additional remarks, substitutions, or variations.

maxLength: 15000 bytesmaxGraphemes: 1500 graphemes
prepTime integer Optional

Hands-on preparation time, in minutes.

minimum: 0
rating integer Optional

The author's own rating of the recipe, from 1 to 5 stars.

minimum: 1maximum: 5
servings integer Optional

Number of servings the recipe yields.

minimum: 1
source ref #source Optional

Where the recipe came from, if it is not original.

tags array of string Optional

Free-form tags for the author's own organization.

maxLength: 20 items
title string Required

Name of the recipe; can not be empty.

maxLength: 1200 bytesminLength: 1 bytesmaxGraphemes: 120 graphemes
totalTime integer Optional

Total time from start to finish, in minutes. May exceed prepTime plus cookTime when the recipe includes resting or marinating.

minimum: 0
updatedAt string datetime Optional

Client-declared timestamp when this recipe was last edited.

yield string Optional

Free-form yield, for recipes not measured in servings (eg, '24 cookies').

maxLength: 640 bytesmaxGraphemes: 64 graphemes
View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "title",
      "ingredients",
      "instructions",
      "createdAt"
    ],
    "properties": {
      "tags": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 640,
          "maxGraphemes": 64
        },
        "maxLength": 20,
        "description": "Free-form tags for the author's own organization."
      },
      "image": {
        "type": "blob",
        "accept": [
          "image/png",
          "image/jpeg",
          "image/webp"
        ],
        "maxSize": 2000000,
        "description": "Photo of the finished dish."
      },
      "notes": {
        "type": "string",
        "maxLength": 15000,
        "description": "Additional remarks, substitutions, or variations.",
        "maxGraphemes": 1500
      },
      "title": {
        "type": "string",
        "maxLength": 1200,
        "minLength": 1,
        "description": "Name of the recipe; can not be empty.",
        "maxGraphemes": 120
      },
      "yield": {
        "type": "string",
        "maxLength": 640,
        "description": "Free-form yield, for recipes not measured in servings (eg, '24 cookies').",
        "maxGraphemes": 64
      },
      "course": {
        "type": "string",
        "maxLength": 64,
        "description": "Which part of a meal the recipe is for.",
        "knownValues": [
          "appetizer",
          "breakfast",
          "brunch",
          "lunch",
          "dinner",
          "side",
          "salad",
          "soup",
          "dessert",
          "snack",
          "drink",
          "sauce",
          "bread"
        ]
      },
      "rating": {
        "type": "integer",
        "maximum": 5,
        "minimum": 1,
        "description": "The author's own rating of the recipe, from 1 to 5 stars."
      },
      "source": {
        "ref": "#source",
        "type": "ref",
        "description": "Where the recipe came from, if it is not original."
      },
      "cuisine": {
        "type": "string",
        "maxLength": 640,
        "description": "Culinary tradition the recipe belongs to (eg, 'Japanese').",
        "maxGraphemes": 64
      },
      "cookTime": {
        "type": "integer",
        "minimum": 0,
        "description": "Active cooking time, in minutes."
      },
      "prepTime": {
        "type": "integer",
        "minimum": 0,
        "description": "Hands-on preparation time, in minutes."
      },
      "servings": {
        "type": "integer",
        "minimum": 1,
        "description": "Number of servings the recipe yields."
      },
      "createdAt": {
        "type": "string",
        "format": "datetime",
        "description": "Client-declared timestamp when this recipe was first created."
      },
      "totalTime": {
        "type": "integer",
        "minimum": 0,
        "description": "Total time from start to finish, in minutes. May exceed prepTime plus cookTime when the recipe includes resting or marinating."
      },
      "updatedAt": {
        "type": "string",
        "format": "datetime",
        "description": "Client-declared timestamp when this recipe was last edited."
      },
      "difficulty": {
        "type": "string",
        "maxLength": 64,
        "description": "How demanding the recipe is to make.",
        "knownValues": [
          "easy",
          "medium",
          "hard"
        ]
      },
      "description": {
        "type": "string",
        "maxLength": 5000,
        "description": "Short summary or blurb about the recipe.",
        "maxGraphemes": 500
      },
      "ingredients": {
        "type": "array",
        "items": {
          "ref": "#ingredient",
          "type": "ref"
        },
        "maxLength": 200,
        "minLength": 1,
        "description": "Ingredients required, in the order they are used."
      },
      "instructions": {
        "type": "array",
        "items": {
          "ref": "#instructionStep",
          "type": "ref"
        },
        "maxLength": 100,
        "minLength": 1,
        "description": "Ordered preparation steps."
      },
      "dietaryLabels": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 64,
          "knownValues": [
            "vegetarian",
            "vegan",
            "gluten-free",
            "dairy-free",
            "nut-free",
            "egg-free",
            "halal",
            "kosher",
            "low-carb",
            "keto",
            "paleo"
          ]
        },
        "maxLength": 20,
        "description": "Dietary properties of the finished dish."
      }
    }
  },
  "description": "A cooking recipe stored in the author's repository."
}
ingredient object

A single ingredient line.

Properties

amount string Optional

Quantity as written, kept as a string to allow fractions and ranges (eg, '1 1/2', '2-3').

maxLength: 320 bytesmaxGraphemes: 32 graphemes
group string Optional

Optional heading grouping related ingredients (eg, 'For the sauce').

maxLength: 640 bytesmaxGraphemes: 64 graphemes
name string Required

The ingredient itself (eg, 'all-purpose flour').

maxLength: 1000 bytesminLength: 1 bytesmaxGraphemes: 100 graphemes
note string Optional

Preparation note for this ingredient (eg, 'finely chopped').

maxLength: 1000 bytesmaxGraphemes: 100 graphemes
optional boolean Optional

Whether this ingredient can be left out.

unit string Optional

Unit of measure for the amount (eg, 'cup', 'g', 'tbsp').

maxLength: 320 bytesmaxGraphemes: 32 graphemes
View raw schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 1000,
      "minLength": 1,
      "description": "The ingredient itself (eg, 'all-purpose flour').",
      "maxGraphemes": 100
    },
    "note": {
      "type": "string",
      "maxLength": 1000,
      "description": "Preparation note for this ingredient (eg, 'finely chopped').",
      "maxGraphemes": 100
    },
    "unit": {
      "type": "string",
      "maxLength": 320,
      "description": "Unit of measure for the amount (eg, 'cup', 'g', 'tbsp').",
      "maxGraphemes": 32
    },
    "group": {
      "type": "string",
      "maxLength": 640,
      "description": "Optional heading grouping related ingredients (eg, 'For the sauce').",
      "maxGraphemes": 64
    },
    "amount": {
      "type": "string",
      "maxLength": 320,
      "description": "Quantity as written, kept as a string to allow fractions and ranges (eg, '1 1/2', '2-3').",
      "maxGraphemes": 32
    },
    "optional": {
      "type": "boolean",
      "description": "Whether this ingredient can be left out."
    }
  },
  "description": "A single ingredient line."
}
instructionStep object

A single step in the preparation.

Properties

group string Optional

Optional heading grouping related steps (eg, 'Make the dough').

maxLength: 640 bytesmaxGraphemes: 64 graphemes
text string Required

What to do in this step.

maxLength: 10000 bytesminLength: 1 bytesmaxGraphemes: 1000 graphemes
View raw schema
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "maxLength": 10000,
      "minLength": 1,
      "description": "What to do in this step.",
      "maxGraphemes": 1000
    },
    "group": {
      "type": "string",
      "maxLength": 640,
      "description": "Optional heading grouping related steps (eg, 'Make the dough').",
      "maxGraphemes": 64
    }
  },
  "description": "A single step in the preparation."
}
source object

Attribution for a recipe adapted from elsewhere.

Properties

name string Optional

Who or what the recipe came from (eg, a cookbook or person).

maxLength: 2000 bytesmaxGraphemes: 200 graphemes
uri string uri Optional

Link to the original recipe.

View raw schema
{
  "type": "object",
  "properties": {
    "uri": {
      "type": "string",
      "format": "uri",
      "description": "Link to the original recipe."
    },
    "name": {
      "type": "string",
      "maxLength": 2000,
      "description": "Who or what the recipe came from (eg, a cookbook or person).",
      "maxGraphemes": 200
    }
  },
  "description": "Attribution for a recipe adapted from elsewhere."
}

Lexicon Garden

@