🧩 Crafting — Core / Internal¶
📦 Folder Overview¶
This folder contains framework-internal helpers used by the Crafting service.
Types in this folder support the implementation of CraftingService and are
not part of the supported extension surface.
Consumers integrating or extending Crafting should not reference anything here.
🧩 What Lives Here¶
Internal Delegate Hooks¶
CraftModHookCraftValidatorHookCraftValidatorDelegate
Used internally to:
- compose modifier behaviour
- compose validator behaviour
- control execution order and isolation
External code should use ICraftingModifier and ICraftingValidator instead.
Internal Utilities¶
-
TimeExtensionsBridgesITimeProviderandCraftTimeMode -
SeededRandomProviderDeterministic RNG used when configured -
UnityRandomProviderWrapper overUnityEngine.Random
These utilities support service implementation and are not intended for reuse.
🎯 Purpose¶
This folder exists to:
- support internal orchestration within the Crafting service
- keep implementation details separate from the public API
- allow internal flexibility without expanding the supported surface
🧠 Usage Guidance¶
- do not reference types in this folder from external code
- use public abstractions and contracts instead
If functionality appears missing, it should be exposed through a supported seam rather than accessed from this folder.
⚠️ Important Notes¶
- types are
internaland subject to change - semantics may change without notice
- stability guarantees do not apply to this folder
🚫 Not for Production Use¶
This folder is not intended for direct use by consuming projects.
🔗 Related Documentation¶
- Crafting Core (public runtime behaviour)
- Crafting Abstractions (supported extension seams)
🧱 Visibility¶
All types in this folder:
- are internal to the framework
- may be renamed, moved, or removed
- are excluded from public API guarantees
🧠 Design Notes¶
- keeps the public surface small and focused
- allows pragmatic internal implementation
If a type in this folder appears necessary for external use, it indicates that a public extension point may be required.