package world import ( "testing" "gopkg.in/yaml.v3" ) // Regression: a reference-style room object entry (id only) that also carries // behavior fields silently lost them at runtime, because the loader always // uses the object file. It must now be rejected at load time. func TestRoomObjectReferenceRejectsBehaviorFields(t *testing.T) { src := "id: 1\nname: Test\nobjects:\n - id: chest\n on_use:\n - steps:\n - message: hi\n" var r Room if err := yaml.Unmarshal([]byte(src), &r); err == nil { t.Fatal("reference object entry with on_use was accepted; the behavior would be silently lost") } }