!752 !include #1003021 // new unstructure static new MultiMap byName; // multiple entries not really handled yet sclass BaseNode { S id = randomID(12); S name; new L related; new Map relationStrengths; // strength of relation, 0 to 1 new L identicalOuter; // identical nodes in other bots *() {} *(S *name) { byName.put(name, (Node) this); } } sclass Node extends BaseNode { *() {} *(S name) { super(name); } new L opposites; // list of opposites new L dropped; // no longer considered opposites new Map modifiers; // optional modifier for each entry new Map sources; // source(s) of each entry } p { readLocally("#1003015", "byName"); for (S name : keys(byName.data)) { print(name); L nodes = byName.data.get(name); for (O n : nodes) print(" " + n.getClass()); } }