🔌 Crafting — Abstractions¶
📦 Folder Overview¶
This folder defines the supported integration seams for the Crafting system.
Everything here represents the public contract surface used by the Crafting runtime.
The Crafting runtime depends only on these abstractions and does not reference any concrete implementations.
🧩 What Lives Here¶
- Interfaces used by external systems to integrate with Crafting
- Contract definitions for inventory, currency, and routing behaviour
- Documentation (via XML comments) describing expected behaviour
Concrete implementations are provided by:
- the consuming project
- optional RevFramework modules
- custom adapters
🎯 Purpose¶
These abstractions allow Crafting to remain:
- inventory-agnostic
- currency-agnostic
- netcode-agnostic
- extensible without modifying core runtime code
They define how Crafting communicates with external systems without introducing direct dependencies.
🧠 Usage Guidance¶
If you are integrating Crafting with your own systems:
- implement the relevant interfaces in this folder
- map your backend behaviour to the expected contract
- ensure your implementation matches the documented expectations
This is the intended extension surface for Crafting integrations.
⚠️ Important Notes¶
- Behaviour expectations are defined in interface comments (XML docs)
- Crafting Core relies on these contracts being correctly implemented
- Incorrect or partial implementations may lead to invalid crafting behaviour
🔗 Related Documentation¶
- Crafting Core (runtime implementation)
- Integrations (example adapters and bridges)