read
Reads a behaviors list: each item is a module name, or a one-key map from a module name to its settings. Malformed items and repeats are reported through warn, naming where, and skipped. Returns null when raw is not a list, after reporting it, so the caller keeps what it would run without the list.