Add level 6: Anchors

Target structure: a `trap:` dict plus a `rooms:` map where 2-3 rooms
all share the same trap. serde_yaml expands aliases on parse, so the
emitted target is the inlined form; players using `&anchor` / `*alias`
produce the same parsed Value and pass via the semantic short-circuit.

Trap properties (type / depth / spikes) and reused rooms are randomised
per seed (ChaCha8Rng XOR'd with 0x..06).

Not wired into levels::registry() yet — integration belongs to a follow-up.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-21 22:54:08 +03:00
parent bac059a789
commit c0e89ca1a1
2 changed files with 114 additions and 0 deletions

View File

@@ -13,6 +13,7 @@
pub mod l01_minimum;
pub mod l02_kv;
pub mod l03_dict;
pub mod l06_anchors;
use serde::{Deserialize, Serialize};