📦 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 itemItemDatabase→ concrete registry for item lookupIItemDatabase→ 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
🔗 Related Documentation¶
- ../
- ../Stacks/README.md
- ../../Containers/README.md