Files
sporel-module-vagrant-skeleton/manifest.module
calic f93fef5990 crafting: actor-precondition (requires) + reward (grants) — Skills half of Phase H (ADR-0056)
lib-core.crafting v0.4.0: two optional domain-free recipe fields.
- `requires`: a match-table evaluated against ctx.actor (not container items) — a hard gate. Failing -> {ok=false, error="requires_unmet", unmet={keys}}; fail-closed when ctx.actor is nil. Same predicate machinery as slots; distinct from is_known (discovery vs lock).
- `grants`: property->number reward, returned as `granted` from craft(); the consuming MODULE applies it to the actor (crafting stays container-scoped). Crafting knows no 'skill' vocabulary (ADR-0001).

vagrant-skeleton v0.21.0: player-actor carries skill.knapping (entity property, Phase-A lesson); knap_sharp_stone grants knapping XP, craft_stone_axe requires knapping>=3; module applies granted; skill-locked recipes show 'Skill too low'. Gate->earn->unlock loop headless-verified (axe locked @0 requires_unmet -> 3 knaps -> unlocks).

Quality-band reserved (Phase J): the requires threshold = the future quality floor (no re-authoring). Docs synced: ADR-0056, crafting-model.md (v0.4.0 + Actor-Precondition section), libraries.md, crafting README, vagrant README.
2026-07-31 10:00:27 +00:00

36 lines
1.8 KiB
Plaintext

{
"id": "vagrant-skeleton",
"version": "0.21.0",
"kind": "module",
"api": "^0.1",
"ci_frames": 60,
"entry_point": "init.lua",
"asset_aliases": {
"subterrain_player": "lib-asset.prototype-subterrain",
"blob_testbench": "lib-asset.prototype-blob-geom",
"blob_rect_stone": "lib-asset.prototype-blob-geom",
"tc_basics": "lib-asset.prototype-tc-basics"
},
"deps": [
{"id": "lib-core.input", "version": "0.4.0"},
{"id": "lib-core.camera", "version": "0.3.0"},
{"id": "lib-core.render", "version": "0.3.0"},
{"id": "lib-core.composition", "version": "0.3.0"},
{"id": "lib-core.actor", "version": "0.1.0"},
{"id": "lib-core.panel", "version": "0.4.0"},
{"id": "lib-core.inventory-list-display", "version": "0.2.0"},
{"id": "lib-core.notify", "version": "0.1.0"},
{"id": "lib-core.notify-display", "version": "0.1.0"},
{"id": "lib-core.world-overlay", "version": "0.1.0"},
{"id": "lib-core.maps", "version": "0.5.7"},
{"id": "lib-core.puppet", "version": "0.5.0"},
{"id": "lib-core.interaction", "version": "0.1.0"},
{"id": "lib-core.inventory-list", "version": "0.1.0"},
{"id": "lib-core.crafting", "version": "0.4.0"},
{"id": "lib-core.crafting-display", "version": "0.3.0"},
{"id": "lib-asset.prototype-subterrain", "version": "0.2.0"},
{"id": "lib-asset.prototype-blob-geom", "version": "0.1.0"},
{"id": "lib-asset.prototype-tc-basics", "version": "0.3.0"}
]
}