{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"runsave.declared-topology-report.v1","type":"object","properties":{"schema":{"const":"runsave.declared-topology-report.v1"},"engine_version":{"const":"0.1.0-pilot"},"method":{"const":"declared-topology-v1"},"input":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"},"context":{"enum":["distributed","server","client"]},"module_count":{"type":"integer","minimum":0},"connection_count":{"type":"integer","minimum":0}},"required":["name","version","context","module_count","connection_count"],"additionalProperties":false},"checks":{"type":"object","properties":{"connectivity":{"type":"object","properties":{"weak_component_count":{"type":"integer","minimum":0},"weak_components":{"type":"array","items":{"type":"array","items":{"type":"string"}}},"strong_component_count":{"type":"integer","minimum":0},"strong_components":{"type":"array","items":{"type":"array","items":{"type":"string"}}}},"required":["weak_component_count","weak_components","strong_component_count","strong_components"],"additionalProperties":false},"module_removal":{"type":"object","properties":{"baseline_weak_components":{"type":"integer","minimum":0},"critical_modules":{"type":"array","items":{"type":"object","properties":{"module":{"type":"string"},"weak_components_after_removal":{"type":"integer","minimum":0}},"required":["module","weak_components_after_removal"],"additionalProperties":false}}},"required":["baseline_weak_components","critical_modules"],"additionalProperties":false},"structural_redundancy":{"type":"object","properties":{"connections_with_alternate_route":{"type":"integer","minimum":0},"total_connections":{"type":"integer","minimum":0},"coverage":{"type":"number","minimum":0},"connection_indexes":{"type":"array","items":{"type":"integer","minimum":0}}},"required":["connections_with_alternate_route","total_connections","coverage","connection_indexes"],"additionalProperties":false},"cycles":{"type":"object","properties":{"cyclic_component_count":{"type":"integer","minimum":0},"signal_or_governance_component_count":{"type":"integer","minimum":0},"other_cyclic_component_count":{"type":"integer","minimum":0},"components":{"type":"array","items":{"type":"object","properties":{"modules":{"type":"array","items":{"type":"string"}},"relation_types":{"type":"array","items":{"enum":["control","execution","state","signal","analysis","governance"]}},"classification":{"enum":["contains-signal-or-governance","other-cycle"]}},"required":["modules","relation_types","classification"],"additionalProperties":false}}},"required":["cyclic_component_count","signal_or_governance_component_count","other_cyclic_component_count","components"],"additionalProperties":false},"centrality":{"type":"object","properties":{"highest_module":{"type":["string","null"]},"highest_betweenness":{"type":"number","minimum":0},"by_module":{"type":"object","additionalProperties":{"type":"number","minimum":0}}},"required":["highest_module","highest_betweenness","by_module"],"additionalProperties":false},"edge_types":{"type":"object","properties":{"counts":{"type":"object","properties":{"control":{"type":"integer","minimum":0},"execution":{"type":"integer","minimum":0},"state":{"type":"integer","minimum":0},"signal":{"type":"integer","minimum":0},"analysis":{"type":"integer","minimum":0},"governance":{"type":"integer","minimum":0}},"required":["control","execution","state","signal","analysis","governance"],"additionalProperties":false},"ratios":{"type":"object","properties":{"control":{"type":"number","minimum":0},"execution":{"type":"number","minimum":0},"state":{"type":"number","minimum":0},"signal":{"type":"number","minimum":0},"analysis":{"type":"number","minimum":0},"governance":{"type":"number","minimum":0}},"required":["control","execution","state","signal","analysis","governance"],"additionalProperties":false}},"required":["counts","ratios"],"additionalProperties":false}},"required":["connectivity","module_removal","structural_redundancy","cycles","centrality","edge_types"],"additionalProperties":false},"findings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"level":{"enum":["attention","observation"]},"title":{"type":"string"},"evidence":{"type":"string"},"inspect":{"type":"string"},"modules":{"type":"array","items":{"type":"string"}}},"required":["id","level","title","evidence","inspect","modules"],"additionalProperties":false}},"non_claims":{"type":"array","items":{"type":"string"}},"input_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"},"report_digest":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"required":["schema","engine_version","method","input","checks","findings","non_claims","input_digest","report_digest"],"additionalProperties":false}