fn reject_unknown_node_keys(
obj: &Map<String, Value>,
path: &str,
op: &str,
required: &[&str],
) -> Result<()>Expand description
Reject node fields outside the allowed set and require the structural ones.
required lists the keys an operator must carry beyond op (e.g.
children for sequence/parallel; cap + args for do). op_id and
description are always optional — the model emits them (op_id defaults to
0, which pilot ignores and reassigns), but a reply that omits them still
parses. Any other key (out, id, plan_id, …) is an error.