ink.igav.whatmealtodo.pantryItem

kaur.igav.ink

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "One thing in a pantry. Structured on purpose: a recipe ingredient is prose because recipe.exchange chose prose, but this lexicon is being written from scratch and has no reason to inherit that.",
      "key": "tid",
      "record": {
        "properties": {
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "expiresAt": {
            "format": "datetime",
            "type": "string"
          },
          "kind": {
            "description": "Whether this is something the kitchen happens to hold or something it always holds. Absent means ingredient. The difference is a claim about time rather than about quantity: an ingredient is a stock level that runs out, a staple is a standing assertion that this is simply always around. Matching treats the two the same once a recipe is being scored and says which it was, but only ingredients decide which recipes are considered at all — see the getSuggestions description.",
            "knownValues": [
              "ink.igav.whatmealtodo.defs#ingredient",
              "ink.igav.whatmealtodo.defs#staple"
            ],
            "type": "string"
          },
          "name": {
            "description": "The canonical ingredient name, and the only field matching reads. Proposed by the normalizer, then accepted or corrected by a person before it is written — so it is an assertion by the owner, not a cache of a function that may change tomorrow.",
            "maxLength": 100,
            "type": "string"
          },
          "nameSource": {
            "description": "Whether `name` is what the normalizer offered or what a person put in its place. Corrections are the cases the rules got wrong, and are worth being able to find.",
            "knownValues": [
              "ink.igav.whatmealtodo.defs#proposed",
              "ink.igav.whatmealtodo.defs#corrected"
            ],
            "type": "string"
          },
          "note": {
            "maxLength": 500,
            "type": "string"
          },
          "quantity": {
            "description": "Optional, and not consulted when matching: recipe quantities are prose too, so there is nothing honest to compare against yet. Stored because the normalizer has to strip it to find the name anyway, and because it is what makes this record useful to another app reading the space.",
            "ref": "ink.igav.whatmealtodo.defs#quantity",
            "type": "ref"
          },
          "text": {
            "description": "Exactly what was typed, kept verbatim. Provenance, and the input a re-scan re-reads when the rules improve. Same 500-character cap as an exchange.recipe.recipe ingredient, because it holds the same kind of thing.",
            "maxLength": 500,
            "type": "string"
          }
        },
        "required": [
          "name",
          "text",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "ink.igav.whatmealtodo.pantryItem",
  "lexicon": 1
}

Validate Record

Validate a record against ink.igav.whatmealtodo.pantryItem

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:vd7yvfuocu3xr54lnszirlgz
CID
bafyreidqkrmiixuwcidwpm5hah6ug5pdfefewkwnd7qpwdfsqlgbbxbj54
Indexed At
2026-08-27 09:35 UTC
AT-URI
at://did:plc:vd7yvfuocu3xr54lnszirlgz/com.atproto.lexicon.schema/ink.igav.whatmealtodo.pantryItem

Version History (2 versions)

Referenced Schemas (1)

Similar Lexicons

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

  • A person overrode the normalizer's proposal. Every one of these is a case the rules got wrong, which is why it is recorded rather than discarded.

  • Shared definitions for the pantry namespace. The pantry has no record type — it lives in the application database rather than on a PDS — so these views exist only as query output.

Lexicon Garden

@