🧩 Crafting — Core / Lifecycle¶
📦 Folder Overview¶
This folder defines the shared lifecycle vocabulary used by the Crafting system.
Types in this folder describe what phase a crafting job is in. They do not define how that phase is executed or what caused it.
This vocabulary is shared across runtime execution, events, UI, and diagnostics.
🧩 What Lives Here¶
JobLifecyclePhase¶
JobLifecyclePhaseUnified lifecycle phases emitted by the Crafting service
Phases include:
- Enqueued — job accepted (inputs and currency already consumed)
- Started — job entered running state
- Progress — progress notification
- Completed — outputs delivered
- Cancelled — job cancelled
- Failed — job failed with a reason
These phases are intended for observation, not control.
🎯 Purpose¶
This folder provides a consistent vocabulary for:
- job lifecycle events
- UI feedback and status display
- logging and analytics
It avoids duplicated enums and inconsistent interpretations.
🧠 Usage Guidance¶
Event Consumers¶
- treat lifecycle phases as notifications
- do not assume ordering across different jobs
- rely only on ordering within a single job
- use failure reasons alongside lifecycle events
UI and Analytics¶
- use lifecycle phases to drive UI and telemetry
- do not infer internal state from events alone
- query the service for authoritative state
⚠️ Important Notes¶
JobLifecyclePhaseis not the same asCraftJobState- lifecycle phases are a public event vocabulary
- internal state transitions are not exposed
🚫 Not for Production Use¶
This folder does not include:
- job scheduling logic
- state machines or transitions
- timing or progress calculations
🔗 Related Documentation¶
- Crafting Core (runtime behaviour)
- Crafting Contracts (job state and results)
🧱 Public API¶
All types in this folder are part of the supported Crafting API surface.
- new phases may be added
- existing phases retain their meaning
🧠 Design Notes¶
- simple, stable lifecycle vocabulary
- describes what happened, not how
For more detailed state, query the Crafting service directly.