Dynamic State Machines
No part may implement or own its own state machine, including fixed status options, transitions, and state-changing UI or business logic. Define default machines as seed data in stateMachines.json, listing state names in states. Define each state in the sibling stateMachines/${name}.json file. The stateMachines part owns runtime definitions, item states, and transitions, and part code must use its shared integration.
Fix
Move default machine metadata and state names to stateMachines.json, put each state and its transitions in stateMachines/${name}.json, remove hardcoded status choices and state-changing logic from the part, and use the stateMachines part for runtime state changes.