Split out from #13, whose actual ask (search using categories, to populate the grid) already shipped via PRs #32, #43, #48. This ticket covers the part #13 only gestured at:
I'd would be nice to eventually be able to fill in the grid manually with items to try and make crafts, but that will have to be after this search functionality is implemented.
The ask
Let a visitor place items directly into a 3×3 crafting grid on the site (like the real in-game crafting UI) and have the page tell them which recipe, if any, matches what's placed — the reverse of today's flow (pick a recipe, see its grid) rather than a forward lookup.
Open questions — needs a design pass before implementation
- Ingredient matching: recipes.json's ingredients are sometimes exact items, sometimes tags (e.g. "any plank," "any wool"). Does the sandbox need tag-aware matching, or does it only recognize exact items to start?
- Interaction model: drag-and-drop from a palette of all items? Click-to-place? Needs to work on mobile/touch, not just desktop drag targets.
- Data: does this reuse
items.json/recipes.json client-side as-is, or does it need a new derived index (e.g. ingredient-set → recipe) to make matching fast without a linear scan per placement?
- Shapeless recipes: today's data already flags
shapeless/transmute types — the sandbox needs to treat grid position as irrelevant for those, exact for shaped ones.
- Empty/partial states: what does the UI show when nothing matches yet vs. a near-miss?
Design-first, no implementation yet.
Split out from #13, whose actual ask (search using categories, to populate the grid) already shipped via PRs #32, #43, #48. This ticket covers the part #13 only gestured at:
The ask
Let a visitor place items directly into a 3×3 crafting grid on the site (like the real in-game crafting UI) and have the page tell them which recipe, if any, matches what's placed — the reverse of today's flow (pick a recipe, see its grid) rather than a forward lookup.
Open questions — needs a design pass before implementation
items.json/recipes.jsonclient-side as-is, or does it need a new derived index (e.g. ingredient-set → recipe) to make matching fast without a linear scan per placement?shapeless/transmutetypes — the sandbox needs to treat grid position as irrelevant for those, exact for shaped ones.Design-first, no implementation yet.