Skip to content

📦 Model

Defines the authoring and lookup layer for inventory items.

This folder contains the core types that describe what an item is and how it is resolved at runtime.


🎯 Purpose

Provide the source of truth for item identity and lookup.


🧩 What Lives Here

  • ItemDefinition → ScriptableObject describing an item
  • ItemDatabase → concrete registry for item lookup
  • IItemDatabase → read-only contract for item resolution

⚠️ Important Notes

  • This layer defines authoring and lookup only
  • It does not implement container behaviour or mutation logic
  • It is safe to reference from runtime and editor systems

🧠 Usage Guidance

ItemDefinition

Represents a single item definition.

Includes:

  • stable identifier (guid)
  • presentation data
  • stack limits
  • classification (category, tags)
  • optional gameplay hooks

ItemDatabase

Provides lookup of item definitions by GUID.

  • lookups are case-insensitive
  • keys are normalised before comparison
  • duplicate entries may resolve to the last registered definition

May include an optional placeholder for missing items.


IItemDatabase

Read-only contract for item lookup.

Allows systems to resolve items without depending on concrete implementations.


🚫 Not for Production Use

This folder does not:

  • Enforce stacking rules
  • Perform inventory mutation
  • Provide container storage
  • Enforce authority
  • Define UI behaviour

  • ../
  • ../Stacks/README.md
  • ../../Containers/README.md