feat(simulation): NpcBlueprint struct design, RON schema, and validator CLI (#611)

Define ZoneSpec, CultureProfile, and NpcBlueprint structs with serde/RON
deserialization. Ship example RON files as schema contract for the copy
team (#609, #610). Add validate-ron CLI for copy team to lint their files
without compiling the server.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-06 21:39:27 +01:00
co-authored by Claude Opus 4.6
parent 4cbaf0cb57
commit fb3ebf4313
8 changed files with 638 additions and 1 deletions
+20 -1
View File
@@ -128,6 +128,12 @@ version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
[[package]]
name = "base64"
version = "0.21.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
[[package]]
name = "bevy_app"
version = "0.18.0"
@@ -1001,6 +1007,18 @@ dependencies = [
"serde",
]
[[package]]
name = "ron"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94"
dependencies = [
"base64",
"bitflags",
"serde",
"serde_derive",
]
[[package]]
name = "rustc-hash"
version = "2.1.1"
@@ -1092,7 +1110,7 @@ dependencies = [
[[package]]
name = "settled-reach-server"
version = "0.1.23"
version = "0.1.24"
dependencies = [
"bevy_app",
"bevy_ecs",
@@ -1102,6 +1120,7 @@ dependencies = [
"rand",
"rand_chacha",
"rmp-serde",
"ron",
"serde",
"serde_json",
"serde_yaml",