Tracking: craftanything branch — modularization completion #29
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Tracking:
craftanythingbranch — how much of the modularization work is done?Branch: upstream
craftanything, tipc64b8bd, on mainb9e7cd73.No PR yet; nothing here is in main. This issue exists so the branch's
coverage is measured in one place instead of across #27, #3, #25, #4.
Verified on the branch (lantern-vm, Godot 4.6.3): clean double import,
module_check+modloader_check+ the full headless suite list PASS.Note for context: in main today, modularization is only PR #28 (open,
unmerged) — so main itself is at ~0% landed; everything below is
branch state.
Scorecard (estimate, from branch evidence — re-weight freely)
errors, typed registry (frozen after boot), loader discovery
(
res://modules,user://modules,.pck), dependency ordering withSemVer ranges, cycle + tie errors naming both sides,
replacesredirects, entrypoints + hooks +
ModApi/api.deadair, boot wiring(
ModHost.boot()fromGame._ready, MODULE ERRORS on the menusign), spawner path,
docs/modding.md+ example mod.ItemSpecshared by
GenericItem/ItemDefinition, grip poses + markers asvalidated data, firearms, world items, inventory/save bridging),
rules/tuning/story text (
GameRules,data/rules/gameplay.json,wired in
game.gd), rig elements. Partial: levels (spec +LevelElementexist, no consumer wiring found), UI (UiFactory/UiRegistry/UiSpec/UiElementexist, zero usages insrc/or scenes), interactables (spec/factory/registry/elementexist, wiring in progress). Element types: 14 declared; ~8
behavior-bearing, 6 data-validated-only (
dialogue,entity,loot_table,mission,strings,trader— schema + requiredfields via
DataElement, no behaviour yet).loading only. No spawn button, no pck enforcement (a zip containing
modules/still loads — convention, not enforced), no data reload(registry frozen by design), no manager/packager.
Tribe = hybrid manifest + script entrypoints. Load order =
dependency order. Ties = errors.
GenericItem= third answer(both classes remain, sharing
ItemSpec). Soft-fail = errors shownon the menu, game still boots (not per-module disable).
Overall, if "done" means framework + content fully module-driven +
tooling for modders to build and ship: roughly 60% — framework
~95%, content ~50%, tooling ~25%, all of it on an unmerged branch.
What's left (checklist)
craftanything+ merge decision (on merge, #28 closesas superseded)
manager/packager, soft-fail stance,
GenericItemrulinginjection, force grab, or grab_state yet), headset feel check,
blessing the hand-rolled interactor over the planned
DAFunctionPickupadapterzero usages)
loot_table, mission, strings, trader)
traversal, #20 arms IK in substance, #12 vocabulary
opencode.json— see belowBranch fix deferred:
opencode.jsonThe branch deleted the repo's
opencode.json(the shared debug-bridgeMCP config from main) and added
/opencode.jsonto.gitignorewith the comment "OpenCode local session config (paths/MCPs vary by
machine)". That treated a shared project file as local session
config — unintentional. Fix later: restore the file AND remove the
/opencode.jsongitignore line (restoring the file alone leaves itignored and untracked).
Closing: the craftanything modularization tracked here landed via PR #30 (merged 2026-11-06, merge commit
94bb04078). This tracking issue is superseded by that merge.