africa.kandake.asha.recipe.recipe

kandake.africa

Documentation

A recipe record stored in the user's PDS repository.

main record

A recipe record stored in the user's PDS repository.

Record Key tid Timestamp-based ID

Properties

categories array of string Optional

Recipe categories for filtering and display.

maxLength: 10 items
cookTimeMinutes integer Optional

No description available.

minimum: 0
createdAt string datetime Required

An RFC 3339 formatted timestamp.

description string Optional

Short description of the recipe.

maxLength: 10000 bytes
embedding bytes Optional

Packed float32 vector embedding for semantic search.

maxLength: 8192
image blob Optional

Header image for the recipe.

maxSize: 1.0 MB
ingredients array of ref #ingredient Required

Structured ingredients list with metric and imperial measurements.

minLength: 1 items
instructions array of ref #instruction Required

Ordered preparation steps.

minLength: 1 items
notes string Optional

No description available.

maxLength: 10000 bytes
nutrition string Optional

No description available.

maxLength: 5000 bytes
prepTimeMinutes integer Optional

No description available.

minimum: 0
servings integer Optional

No description available.

minimum: 1
source string Optional

Human-readable source name.

maxLength: 256 bytes
title string Required

Title of the recipe.

maxLength: 512 bytesmaxGraphemes: 128 graphemes
totalTimeMinutes integer Optional

No description available.

minimum: 0
updatedAt string datetime Optional

An RFC 3339 formatted timestamp.

url string uri Optional

Original source URL of the recipe.

View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "title",
      "ingredients",
      "instructions",
      "createdAt"
    ],
    "properties": {
      "url": {
        "type": "string",
        "format": "uri",
        "description": "Original source URL of the recipe."
      },
      "image": {
        "type": "blob",
        "accept": [
          "image/png",
          "image/jpeg",
          "image/webp"
        ],
        "maxSize": 1000000,
        "description": "Header image for the recipe."
      },
      "notes": {
        "type": "string",
        "maxLength": 10000
      },
      "title": {
        "type": "string",
        "maxLength": 512,
        "description": "Title of the recipe.",
        "maxGraphemes": 128
      },
      "source": {
        "type": "string",
        "maxLength": 256,
        "description": "Human-readable source name."
      },
      "servings": {
        "type": "integer",
        "minimum": 1
      },
      "createdAt": {
        "type": "string",
        "format": "datetime"
      },
      "embedding": {
        "type": "bytes",
        "maxLength": 8192,
        "description": "Packed float32 vector embedding for semantic search."
      },
      "nutrition": {
        "type": "string",
        "maxLength": 5000
      },
      "updatedAt": {
        "type": "string",
        "format": "datetime"
      },
      "categories": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 128
        },
        "maxLength": 10,
        "description": "Recipe categories for filtering and display."
      },
      "description": {
        "type": "string",
        "maxLength": 10000,
        "description": "Short description of the recipe."
      },
      "ingredients": {
        "type": "array",
        "items": {
          "ref": "#ingredient",
          "type": "ref"
        },
        "minLength": 1,
        "description": "Structured ingredients list with metric and imperial measurements."
      },
      "instructions": {
        "type": "array",
        "items": {
          "ref": "#instruction",
          "type": "ref"
        },
        "minLength": 1,
        "description": "Ordered preparation steps."
      },
      "cookTimeMinutes": {
        "type": "integer",
        "minimum": 0
      },
      "prepTimeMinutes": {
        "type": "integer",
        "minimum": 0
      },
      "totalTimeMinutes": {
        "type": "integer",
        "minimum": 0
      }
    }
  },
  "description": "A recipe record stored in the user's PDS repository."
}
ingredient object

No description available.

Properties

heuristicAmount integer Optional

Imperial/heuristic approximate amount.

heuristicUnit string Optional

Imperial/heuristic unit, e.g. 'cup', 'tbsp', 'lb'.

maxLength: 32 bytes
measuredAmount integer Optional

Metric amount in grams or millilitres.

measuredUnit string Optional

Metric unit, e.g. 'g', 'ml'.

maxLength: 32 bytes
name string Required

Ingredient name, e.g. 'all-purpose flour'.

maxLength: 256 bytes
notes string Optional

Preparation notes, e.g. 'freshly ground', 'grated'.

maxLength: 256 bytes
View raw schema
{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 256,
      "description": "Ingredient name, e.g. 'all-purpose flour'."
    },
    "notes": {
      "type": "string",
      "maxLength": 256,
      "description": "Preparation notes, e.g. 'freshly ground', 'grated'."
    },
    "measuredUnit": {
      "type": "string",
      "maxLength": 32,
      "description": "Metric unit, e.g. 'g', 'ml'."
    },
    "heuristicUnit": {
      "type": "string",
      "maxLength": 32,
      "description": "Imperial/heuristic unit, e.g. 'cup', 'tbsp', 'lb'."
    },
    "measuredAmount": {
      "type": "integer",
      "description": "Metric amount in grams or millilitres."
    },
    "heuristicAmount": {
      "type": "integer",
      "description": "Imperial/heuristic approximate amount."
    }
  }
}
instruction object

No description available.

Properties

value string Required

Step instruction text.

maxLength: 5000 bytes
waitTimeMinutes integer Optional

Wait/rest time in minutes for visual highlighting.

minimum: 0
View raw schema
{
  "type": "object",
  "required": [
    "value"
  ],
  "properties": {
    "value": {
      "type": "string",
      "maxLength": 5000,
      "description": "Step instruction text."
    },
    "waitTimeMinutes": {
      "type": "integer",
      "minimum": 0,
      "description": "Wait/rest time in minutes for visual highlighting."
    }
  }
}

Lexicon Garden

@