validate
Validate the structural and reference integrity of this NetworkSpec, returning every problem found (not just the first). An empty list means the spec is well-formed and safe to pass to SupplyChainBuilder.build.
Checks:
at least one node; no duplicate item or node names; no node named with the NodeSpec.EXTERNAL_SUPPLIER sentinel;
at least one root (a node whose parent is the external supplier);
every node
parentresolves (a node name or the sentinel);no cycles in the supplier graph;
cross-dock nodes carry no inventory;
every
itemTypeName(inventories and demand generators) resolves;every demand-generator
noderesolves;shipment formation only under TransportStrategySpec.PerIHPTimeBased, with valid per-option parameters;
per-node cost-override keys resolve to node names.
Parameter sanity beyond this (e.g. reorderQty > 0) is left to the framework's own requires at build time; this layer focuses on the structural/reference integrity that is the spec layer's value-add.