A 5e storytelling engine with an LLM DM

Add storied roll, the CLI face for the dice engine master

Task 1 landed dice::parse and dice::roll as a pure module with no way to run it from the command line. This wires storied roll NOTATION through cli.rs the way storied srd is wired: parse the notation, roll it once with a real RNG at the CLI boundary, and print the result as a short story, one line per die showing every value it showed and whether it counted, the modifier if the notation carried one, and the total. An unparseable notation prints the parse error and exits nonzero. The story renderer lives in src/dice_story.rs, wired into the dice module rather than inline in cli.rs, since it belongs to the dice domain. Plain stdout only; the fancier formatting waits for the transcript work in a later phase. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CUXjWo1zGFhdJUig1hcQGf