Summary
Stardew item-object and item-ID EMC lookups use different fallbacks, allowing items missing from the generated EMC map to be learned and potentially extracted for 1 EMC.
Evidence
- EmcValueRegistry.EmcValue(Item) falls back to the item's sell price.
- EmcValueRegistry.EmcValue(string qualifiedItemId) falls back to exactly 1.
- DissolverMenu learning accepts any qualified item ID without consuming the item or checking that it has a registered value.
- Extraction uses the string lookup, while dissolving uses the item-object lookup.
- The generated item sources do not cover every possible tool, special, dynamic, or third-party item type.
Impact
A missing-map item can be valued normally when dissolved but cost only 1 EMC to recreate, enabling cheap duplication and economy bypasses.
Reproduction / verification
- Use a tool or third-party item absent from default-emc-values.yaml.
- Learn it, extract it, and compare charged EMC with its dissolve value.
- Repeat for zero-price, non-stackable, and modded items.
Proposed direction
Resolve item IDs through a single authoritative eligibility/value API. Reject unknown items unless explicitly allowed, and enforce creative-item policy before learning, dissolving, or extracting.
Acceptance criteria
Audit provenance
Candidate #11 from the read-only repository audit performed on 2026-07-20. This is separate from existing issues #3, #4, #25, and #27 unless explicitly linked later.
Summary
Stardew item-object and item-ID EMC lookups use different fallbacks, allowing items missing from the generated EMC map to be learned and potentially extracted for 1 EMC.
Evidence
Impact
A missing-map item can be valued normally when dissolved but cost only 1 EMC to recreate, enabling cheap duplication and economy bypasses.
Reproduction / verification
Proposed direction
Resolve item IDs through a single authoritative eligibility/value API. Reject unknown items unless explicitly allowed, and enforce creative-item policy before learning, dissolving, or extracting.
Acceptance criteria
Audit provenance
Candidate #11 from the read-only repository audit performed on 2026-07-20. This is separate from existing issues #3, #4, #25, and #27 unless explicitly linked later.