io.kich.recipe.defs

kich.io

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "collectionRef": {
      "description": "A collection this recipe belongs to, by id and display name.",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "type": "object"
    },
    "main": {
      "description": "Shared definitions for recipe-related lexicons",
      "properties": {},
      "type": "object"
    },
    "recipeView": {
      "description": "A recipe as a list reader sees it: enough to choose one, not enough to cook it. Ingredients and instructions are deliberately absent — a caller that wants to cook follows `url`.",
      "properties": {
        "collections": {
          "items": {
            "ref": "#collectionRef",
            "type": "ref"
          },
          "type": "array"
        },
        "completenessPercent": {
          "description": "How much of this recipe the pantry already covers, 0–100. A whole number rather than the stored 0–1 fraction, because lexicons have no float type and no reader needs the precision.",
          "maximum": 100,
          "minimum": 0,
          "type": "integer"
        },
        "cookTimeMinutes": {
          "minimum": 0,
          "type": "integer"
        },
        "createdAt": {
          "description": "When the recipe was saved to this kitchen. Distinct from `updatedAt`, which moves every time somebody edits it — a reader sorting a cookbook by what is new wants the first, not the second.",
          "format": "datetime",
          "type": "string"
        },
        "description": {
          "type": "string"
        },
        "id": {
          "description": "Stable identifier for this recipe",
          "type": "string"
        },
        "imageUrl": {
          "description": "An absolute URL to a photograph, already resolved — whether the recipe is private (object storage) or published (a PDS blob on a CDN). Absent when the recipe has no image.",
          "format": "uri",
          "type": "string"
        },
        "missingCount": {
          "description": "How many ingredients are not in the house. 0 means everything is in.",
          "minimum": 0,
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "prepTimeMinutes": {
          "minimum": 0,
          "type": "integer"
        },
        "servings": {
          "description": "How many the recipe makes. A number; halves are real, so not an integer.",
          "type": "unknown"
        },
        "tags": {
          "items": {
            "ref": "#tagRef",
            "type": "ref"
          },
          "type": "array"
        },
        "updatedAt": {
          "format": "datetime",
          "type": "string"
        },
        "url": {
          "description": "Where to open this recipe in kich",
          "format": "uri",
          "type": "string"
        }
      },
      "required": [
        "id",
        "name",
        "servings",
        "completenessPercent",
        "url"
      ],
      "type": "object"
    },
    "tagRef": {
      "description": "A tag, by id and display name.",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name"
      ],
      "type": "object"
    }
  },
  "description": "Shared definitions for the recipe namespace.",
  "id": "io.kich.recipe.defs",
  "lexicon": 1
}

Validate Record

Validate a record against io.kich.recipe.defs

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:uxjwdy4wvuridijisalvxlxe
CID
bafyreievxsm7ukvpm2ocf6gqupaahe3aoitq2qyuuorffkw6ndimlysple
Indexed At
2026-09-12 23:51 UTC
AT-URI
at://did:plc:uxjwdy4wvuridijisalvxlxe/com.atproto.lexicon.schema/io.kich.recipe.defs

Version History (3 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

Lexicon Garden

@