Skip to content

🧩 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

  • CraftModHook
  • CraftValidatorHook
  • CraftValidatorDelegate

Used internally to:

  • compose modifier behaviour
  • compose validator behaviour
  • control execution order and isolation

External code should use ICraftingModifier and ICraftingValidator instead.


Internal Utilities

  • TimeExtensions Bridges ITimeProvider and CraftTimeMode

  • SeededRandomProvider Deterministic RNG used when configured

  • UnityRandomProvider Wrapper over UnityEngine.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 internal and 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.


  • 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.