Two docs pages reference `mo:base` in notes about upstream examples. Rather than patching the notes, the right fix is a purpose-built example and a full guide rewrite.
Current state
- `docs/guides/backends/randomness.md` — notes that `motoko/random_maze` in `dfinity/examples` uses `mo:base/Random.Finite`
- `docs/guides/canister-management/optimization.md` — notes that `motoko/low_wasm_memory` uses legacy `mo:base`
Plan
randomness.md (primary scope)
Per issue #44, create a new `random_lottery` example (Motoko + Rust, Ninja-enabled) with three focused regions:
| Region |
What it shows |
| `raw_rand_call` |
Calling the management canister's `raw_rand` |
| `random_in_range` |
Deriving a bounded `Nat` from the 32-byte result |
| `fair_selection` |
Picking a winner from a list |
Then:
- Add region markers + `mops.toml` in a PR to `dfinity/examples`
- Bump `.sources/examples` submodule
- Rewrite `randomness.md` → `randomness.mdx` using `` — the `mo:base` note disappears naturally
- Keep `random_maze` as a "see also" link (no note about `mo:base`)
The example is backend-only; ICP Ninja provides the UI for calling canister methods.
optimization.md (separate, smaller fix)
Remove the note about `motoko/low_wasm_memory` using legacy `mo:base` — the inline snippet in the page is already the correct `mo:core` reference. This is a one-line text change, independent of the `random_lottery` work.
Out of scope
Updating `random_maze` itself — the maze algorithm is too complex to serve as a teaching example for randomness patterns.
Two docs pages reference `mo:base` in notes about upstream examples. Rather than patching the notes, the right fix is a purpose-built example and a full guide rewrite.
Current state
Plan
randomness.md (primary scope)
Per issue #44, create a new `random_lottery` example (Motoko + Rust, Ninja-enabled) with three focused regions:
Then:
The example is backend-only; ICP Ninja provides the UI for calling canister methods.
optimization.md (separate, smaller fix)
Remove the note about `motoko/low_wasm_memory` using legacy `mo:base` — the inline snippet in the page is already the correct `mo:core` reference. This is a one-line text change, independent of the `random_lottery` work.
Out of scope
Updating `random_maze` itself — the maze algorithm is too complex to serve as a teaching example for randomness patterns.