{"analyzer":{"code_digest":"7106e3595fa7df9269cb43ee280f9c557659db7bda171b1f65ff5619ab54aa24","name":"archkeel-python-analyzer","version":"0.74.0"},"bindings":[],"calls":[["CALL-16363d27207391db","FACT","call_hierarchy","resolved_call","Call str",["builtins.str","demo.core.helper"],["EVD-d29db8a8b3a6e556"],[],[],[],[1,false,null,"str","Python builtin",[],"$7","demo.core","demo.core.helper","resolved",[],["builtins.str"]]],["CALL-a547434153bc85e8","FACT","call_hierarchy","resolved_call","Call Unit",["demo.core.Unit","demo.core.build"],["EVD-dfb359b11b856942"],[],[],[],[1,false,{"candidates_truncated":false,"reason":"Stable class with default allocation and initialization","status":"resolved","targets":["demo.core.Unit"]},"Unit","module-local symbol",[{"annotation":null,"definition_contexts":[],"evidence_ids":["EVD-ef45746ccb7caf66"],"id":"VALUEBIND-fda1aa4229d7ec5d","initializer":"Unit()","name":"item","target_kind":"name"}],"$10","demo.core","demo.core.build","resolved",["EVD-72dc59925c20012a"],["demo.core.Unit"]]],["CALL-a821f4f8aa0b683d","FACT","call_hierarchy","resolved_call","Call helper",["demo.app.work","demo.core.helper"],["EVD-787bc0ede436a3cf"],[],[],[],[1,false,null,"helper","imported symbol binding",[],"$15","demo.app","demo.app.work","resolved",["EVD-d193553a8b140ce6"],["demo.core.helper"]]],["CALL-ad4ce7ea135edf73","FACT","call_hierarchy","resolved_call","Call helper",["demo.core.Client.run","demo.core.helper"],["EVD-dc57392c5839a8c0"],[],[],[],[1,false,null,"helper","module-local symbol",[],"$11","demo.core","demo.core.Client.run","resolved",["EVD-d193553a8b140ce6"],["demo.core.helper"]]]],"constructs":[],"context_evidence":[["CONTEXT-DEP-4c17d0d595f1a1e4","FACT","contexts_state","context_dependency","demo.core.State depends on enum",["demo.core.State","enum"],[],[],["IMP-c68a60dae4eb62e0"],[],["demo.core.State","enum"]],["CONTEXT-DEP-79abb9fccc8fb691","FACT","contexts_state","context_dependency","demo.core.State depends on typing",["demo.core.State","typing"],[],[],["IMP-12aa2dbae098d357","IMP-97203a7ba999b4b0"],[],["demo.core.State","typing"]]],"contexts":[["CONTEXT-c79f6b32bf949800","FACT","contexts_state","context_topology","demo.core.State",["demo.core.State"],["EVD-953c324527908e72"],[],["CONTEXT-DEP-4c17d0d595f1a1e4","CONTEXT-DEP-79abb9fccc8fb691","$14"],[],[[],"local_domain_state_candidate","LOCAL / DOMAIN STATE CANDIDATE",false,["CONTEXT-DEP-4c17d0d595f1a1e4","CONTEXT-DEP-79abb9fccc8fb691"],[],[],[],"demo.core.State",[],[]]]],"contract":{"digest":"6551ca16f251e87bd9c716a896b09625324e80651ff17a5de1d1feb06a86e23f","path":"architecture-contract.json","schema_version":"2.2.0"},"coverage":{"ast_coverage_percent":100.0,"call_resolution_percent":100.0,"calls_analyzed":4,"calls_partially_resolved":0,"calls_resolved":4,"calls_unresolved":0,"failures":[],"files_discovered":3,"files_parsed":3,"files_read":3,"rules":"PASS","status":"PASS"},"cycles":[],"declarations":[["demo-component","DECLARED_RULE","components","component_responsibility","demo",["demo"],[],[],[],["$20"],["architect","$m",[],"$m","$m","$m","demo","$m",["demo.app","demo.core"],"$m","$m",[],["Demonstrate static UML evidence and independent design intent."],"component","$m"]],["UML-TARGET-a2e40c5592b1b06a","DECLARED_RULE","uml","uml_target","Independent UML target",[],[],[],[],["architecture-contract.json"],["$m",[],"$m",[],[],[],"$m",["demo-component"],"$m",[],"Independent UML intent defines required entities and relationships.","$m","$m","$m",{"entities":[{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":"$19","id":"core-module","initializer":null,"kind":"module","language":"python","modifiers":[],"parent_id":"demo-component","presence":"planned","provenance":["$20"],"qualified_name":"demo.core","record_ids":[],"responsibilities":["Define the execution port and local implementation."],"signature":null,"visibility":{"basis":"unknown","kind":"unknown","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":"demo/app.py","id":"app-module","initializer":null,"kind":"module","language":"python","modifiers":[],"parent_id":"demo-component","presence":"planned","provenance":["$20"],"qualified_name":"demo.app","record_ids":[],"responsibilities":["Delegate requests through the published helper."],"signature":null,"visibility":{"basis":"unknown","kind":"unknown","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"port","initializer":null,"kind":"interface","language":"python","modifiers":[],"parent_id":"core-module","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.Port","record_ids":[],"responsibilities":["Accept a value and return its text."],"signature":null,"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"port-run","initializer":null,"kind":"method","language":"python","modifiers":[],"parent_id":"port","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.Port.run","record_ids":[],"responsibilities":["Declare the execution operation."],"signature":{"parameters":[{"annotation":null,"default":null,"default_known":true,"kind":"positional","name":"self"},{"annotation":"int","default":null,"default_known":true,"kind":"positional","name":"value"}],"returns":"str"},"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"base","initializer":null,"kind":"class","language":"python","modifiers":[],"parent_id":"core-module","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.Base","record_ids":[],"responsibilities":["Provide the base classifier."],"signature":null,"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"client","initializer":null,"kind":"class","language":"python","modifiers":[],"parent_id":"core-module","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.Client","record_ids":[],"responsibilities":["Implement the execution port."],"signature":null,"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"run","initializer":null,"kind":"method","language":"python","modifiers":[],"parent_id":"client","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.Client.run","record_ids":[],"responsibilities":["Delegate formatting to helper."],"signature":{"parameters":[{"annotation":null,"default":null,"default_known":true,"kind":"positional","name":"self"},{"annotation":"int","default":null,"default_known":true,"kind":"positional","name":"value"}],"returns":"str"},"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":"str","definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"private-token","initializer":null,"kind":"attribute","language":"python","modifiers":[],"parent_id":"client","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.Client._token","record_ids":[],"responsibilities":["Reserve private token storage."],"signature":null,"visibility":{"basis":"declared","kind":"private","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"limit","initializer":null,"kind":"attribute","language":"python","modifiers":["static"],"parent_id":"client","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.Client.limit","record_ids":[],"responsibilities":["Hold the shared limit."],"signature":null,"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"reset","initializer":null,"kind":"method","language":"python","modifiers":["static"],"parent_id":"client","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.Client.reset","record_ids":[],"responsibilities":["Expose the static reset operation."],"signature":{"parameters":[],"returns":"None"},"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"unit","initializer":null,"kind":"class","language":"python","modifiers":[],"parent_id":"core-module","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.Unit","record_ids":[],"responsibilities":["Represent a statically constructed value."],"signature":null,"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"state","initializer":null,"kind":"enum","language":"python","modifiers":[],"parent_id":"core-module","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.State","record_ids":[],"responsibilities":["Name the lifecycle states."],"signature":null,"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"ready","initializer":null,"kind":"enum_literal","language":"python","modifiers":[],"parent_id":"state","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.State.READY","record_ids":[],"responsibilities":["Name the ready state."],"signature":null,"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"stopped","initializer":null,"kind":"enum_literal","language":"python","modifiers":[],"parent_id":"state","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.State.STOPPED","record_ids":[],"responsibilities":["Name the stopped state."],"signature":null,"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"helper","initializer":null,"kind":"function","language":"python","modifiers":[],"parent_id":"core-module","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.helper","record_ids":[],"responsibilities":["Convert the value to text."],"signature":{"parameters":[{"annotation":"int","default":null,"default_known":true,"kind":"positional","name":"value"}],"returns":"str"},"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"build","initializer":null,"kind":"function","language":"python","modifiers":[],"parent_id":"core-module","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.build","record_ids":[],"responsibilities":["Construct one Unit."],"signature":{"parameters":[],"returns":"Unit"},"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"item","initializer":"Unit()","kind":"binding","language":"python","modifiers":[],"parent_id":"build","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.build.item","record_ids":[],"responsibilities":["Hold the constructed Unit at this assignment site."],"signature":null,"visibility":{"basis":"unknown","kind":"unknown","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"work","initializer":null,"kind":"function","language":"python","modifiers":[],"parent_id":"app-module","presence":"planned","provenance":["$20"],"qualified_name":"demo.app.work","record_ids":[],"responsibilities":["Call the published helper."],"signature":{"parameters":[{"annotation":"int","default":null,"default_known":true,"kind":"positional","name":"value"}],"returns":"str"},"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"text","initializer":null,"kind":"type_alias","language":"python","modifiers":[],"parent_id":"core-module","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.Text","record_ids":[],"responsibilities":["Name the text result type."],"signature":null,"visibility":{"basis":"declared","kind":"public","spelling":null}},{"annotation":null,"definition_contexts":[],"evidence_ids":[],"file_path":null,"id":"version","initializer":null,"kind":"constant","language":"python","modifiers":[],"parent_id":"core-module","presence":"planned","provenance":["$20"],"qualified_name":"demo.core.VERSION","record_ids":[],"responsibilities":["Name the demo version."],"signature":null,"visibility":{"basis":"declared","kind":"public","spelling":null}}],"relationships":[{"candidate_count":null,"candidate_ids":[],"candidates_truncated":false,"decided_by":null,"evidence_ids":[],"expression":null,"id":"client-base","kind":"inherits","provenance":["$20"],"reason":null,"record_ids":[],"resolution":"not_applicable","source_id":"client","target_id":"base","through":[]},{"candidate_count":null,"candidate_ids":[],"candidates_truncated":false,"decided_by":null,"evidence_ids":[],"expression":null,"id":"client-port","kind":"realizes","provenance":["$20"],"reason":null,"record_ids":[],"resolution":"not_applicable","source_id":"client","target_id":"port","through":[]},{"candidate_count":null,"candidate_ids":[],"candidates_truncated":false,"decided_by":null,"evidence_ids":[],"expression":null,"id":"run-helper","kind":"calls","provenance":["$20"],"reason":null,"record_ids":[],"resolution":"not_applicable","source_id":"run","target_id":"helper","through":[]},{"candidate_count":null,"candidate_ids":[],"candidates_truncated":false,"decided_by":null,"evidence_ids":[],"expression":null,"id":"build-unit-reference","kind":"references","provenance":["$20"],"reason":null,"record_ids":[],"resolution":"not_applicable","source_id":"build","target_id":"unit","through":[]},{"candidate_count":null,"candidate_ids":[],"candidates_truncated":false,"decided_by":null,"evidence_ids":[],"expression":null,"id":"app-import","kind":"imports","provenance":["$20"],"reason":null,"record_ids":[],"resolution":"not_applicable","source_id":"app-module","target_id":"core-module","through":[]},{"candidate_count":null,"candidate_ids":[],"candidates_truncated":false,"decided_by":null,"evidence_ids":[],"expression":null,"id":"work-helper","kind":"calls","provenance":["$20"],"reason":null,"record_ids":[],"resolution":"not_applicable","source_id":"work","target_id":"helper","through":[]},{"candidate_count":null,"candidate_ids":[],"candidates_truncated":false,"decided_by":null,"evidence_ids":[],"expression":null,"id":"build-unit","kind":"creates","provenance":["$20"],"reason":null,"record_ids":[],"resolution":"not_applicable","source_id":"build","target_id":"unit","through":[]},{"candidate_count":null,"candidate_ids":[],"candidates_truncated":false,"decided_by":null,"evidence_ids":[],"expression":null,"id":"item-unit","kind":"instance_of","provenance":["$20"],"reason":null,"record_ids":[],"resolution":"not_applicable","source_id":"item","target_id":"unit","through":[]}],"schema_version":"1.1.0","scopes":[]}]]],"dependency_edges":[["EDGE-03deac4618d52565","FACT","package_topology","package_dependency","demo.app → demo.core",["demo.app","demo.core"],[],[],["IMP-1eb22bb9478479b1"],[],[false,1,"package",1,"demo.app",0,"demo.core",1,0]],["EDGE-84d8fc2da2368463","FACT","module_topology","module_dependency","demo.app → demo.core",["demo.app","demo.core"],[],[],["IMP-1eb22bb9478479b1"],[],[false,1,"module",1,"demo.app",0,"demo.core",1,0]]],"encoding":{"escaped_literal":"additional leading $","evidence_fields":["id","file","line","end_line","column","excerpt"],"kind":"architecture-ir-columnar-v1","record_fields":["id","evidence_class","area","kind","title","subjects","evidence_ids","rule_ids","fact_ids","provenance","data"],"section_data_fields":{"bindings":[],"calls":["candidate_count","candidates_truncated","construction","expression","reason","result_bindings","source_definition_id","source_module","source_scope","status","target_evidence_ids","targets"],"constructs":[],"context_evidence":["context","target_module"],"contexts":["constructed_by","context_class","context_class_label","declared_root","dependencies","fields","methods","passes","qualified_name","reads","writes"],"cycles":[],"declarations":["decided_by","external_scope_ids","forbidden_responsibilities","inside_levels","layout_rule_ids","module_target_ids","namespace","owner_ids","public","public_api_ids","rationale","requires","responsibilities","role","target"],"dependency_edges":["bidirectional","count","level","runtime_count","source","source_rank","target","target_rank","type_checking_count"],"imports":["binding","declared_in_all","origin_definition","reexport","reexport_chain","relative_level","source_binding_unique","source_member_binding_static","source_module","source_package","symbol","symbol_visibility","symbols_known","target_module","target_package","under_type_checking"],"metrics":["tab","value"],"modules":["all_exports","all_literal","compatibility_logic_free","fan_in","fan_out","file","package","qualified_name","rank","symbol_count"],"packages":["dependencies","fan_in","fan_out","module_count","qualified_name","rank"],"path_observations":[],"references":["declaration_definition_id","declaration_scope","expression","source_definition_id","source_module","source_scope","status","targets","use"],"scope_observations":["assessment_complete","comparison","component_id","coverage_complete","fan_out","files","module_count","modules","observed_module_count","outgoing_modules","outgoing_scopes","scope","scope_module_counts","scopes"],"symbols":["alias","async","attribute_declarations","base_declarations","base_roots","bases","class_body_control_flow","class_header_static","class_kind","class_members","constant","declared_in_all","decorators","default_instance_result","definition_contexts","enum_members","facade_types","fields","frozen_object","lexical_parent_id","member_inventories","method_kind","module","name","namespace_bound","overload_signature","package","parameters","parent","qualified_name","receiver_parameter","record_kind","returns","shape","shape_nodes","signature_decorators_proven","source_binding_unique","source_final_method_binding","source_member_binding_static","symbol_category","visibility","visibility_detail"],"transitive_paths":[],"typing_signals":[],"unknowns":["reason","unresolved_calls"],"violations":["aspect","change","evidence_ids","fact_ids","id","observed_ids","reason","status","subject_id"]},"string_reference":"$<index>"},"evidence":[["EVD-0438a371ae5621cf","$19",5,5,0,"from typing import Protocol, TypeAlias"],["EVD-0539f5067b55422c","demo/__init__.py",1,1,0,"# Archkeel"],["EVD-0f4520302a94de78","$19",46,46,0,"Text: TypeAlias = str"],["EVD-1007db24fd37dbc2","$19",16,25,0,"class Client(Base, Port):"],["EVD-1f8f13a53a544629","$19",34,34,4,"    STOPPED = \"stopped\""],["EVD-2c000c37da34e919","$19",17,17,4,"    _token: str"],["EVD-369e4da38e7e7945","$19",16,16,13,"class Client(Base, Port):"],["EVD-3adda43ea486ba0a","$19",9,9,4,"    def run(self, value: int) -> str: ..."],["EVD-42977271254d62d7","$19",41,43,0,"def build() -> Unit:"],["EVD-551f8b4c67f216e9","$19",8,9,0,"class Port(Protocol):"],["EVD-60c36149c0c5e554","demo/app.py",1,1,0,"# Archkeel"],["EVD-6a0c396f00a895c3","$19",20,21,4,"    def run(self, value: int) -> int:"],["EVD-6c038d27557d8a04","$19",4,4,0,"from enum import Enum"],["EVD-716ea6507762660e","$19",18,18,4,"    limit = 10"],["EVD-72dc59925c20012a","$19",28,29,0,"class Unit:"],["EVD-7877a753795d7fb2","$19",33,33,4,"    READY = \"ready\""],["EVD-787bc0ede436a3cf","demo/app.py",8,8,11,"    return helper(value)"],["$3","$19",1,1,0,"# Archkeel"],["EVD-8c5b15c896b4c84d","$19",12,13,0,"class Base:"],["EVD-953c324527908e72","$19",32,34,0,"class State(Enum):"],["EVD-bcc48e554c76ca4f","$19",32,32,12,"class State(Enum):"],["EVD-bcd6ad0737a9aef7","demo/app.py",7,8,0,"def work(value: int) -> str:"],["EVD-c27bc0bcf0adbe2c","$19",8,8,11,"class Port(Protocol):"],["EVD-cb8989653f4daacd","$19",24,25,4,"    def reset() -> None:"],["EVD-d193553a8b140ce6","$19",37,38,0,"def helper(value: int) -> str:"],["EVD-d29db8a8b3a6e556","$19",38,38,11,"    return str(value)"],["EVD-d325063529460a97","$19",47,47,0,"VERSION = 1"],["EVD-dc57392c5839a8c0","$19",21,21,15,"        return helper(value)"],["EVD-dcd810f40bf0de82","demo/app.py",4,4,0,"from demo.core import helper"],["EVD-dfb359b11b856942","$19",42,42,11,"    item = Unit()"],["EVD-e997898fd86bef60","$19",41,41,15,"def build() -> Unit:"],["EVD-ef45746ccb7caf66","$19",42,42,4,"    item = Unit()"],["EVD-f012fe32fe2b0cda","$19",16,16,19,"class Client(Base, Port):"]],"imports":[["IMP-12aa2dbae098d357","FACT","dependencies","import","Import typing.TypeAlias",["demo.core","typing"],["EVD-0438a371ae5621cf"],[],[],[],["TypeAlias",false,"typing.TypeAlias",false,["typing.TypeAlias"],0,true,false,"demo.core","demo.core","TypeAlias","public_name",true,"typing","typing",false]],["IMP-1eb22bb9478479b1","FACT","dependencies","import","Import demo.core.helper",["demo.app","demo.core"],["EVD-dcd810f40bf0de82"],[],[],[],["helper",false,"demo.core.helper",false,["demo.core.helper"],0,true,false,"demo.app","demo.app","helper","public_name",true,"demo.core","demo.core",false]],["IMP-97203a7ba999b4b0","FACT","dependencies","import","Import typing.Protocol",["demo.core","typing"],["EVD-0438a371ae5621cf"],[],[],[],["Protocol",false,"typing.Protocol",false,["typing.Protocol"],0,true,false,"demo.core","demo.core","Protocol","public_name",true,"typing","typing",false]],["IMP-c68a60dae4eb62e0","FACT","dependencies","import","Import enum.Enum",["demo.core","enum"],["EVD-6c038d27557d8a04"],[],[],[],["Enum",false,"enum.Enum",false,["enum.Enum"],0,true,false,"demo.core","demo.core","Enum","public_name",true,"enum","enum",false]]],"metrics":[["METRIC-0477b10f3aa518a5","FACT","overview","interface_surface","Interface surface",[],[],[],[],[],["api",0]],["METRIC-115ac1d218349491","FACT","overview","forbidden_package_edges","Forbidden package edges",[],[],[],[],[],["violations",0]],["METRIC-130e9ec98394803f","FACT","overview","private_crossings","Confirmed private symbol crossings",[],[],[],[],[],["api",0]],["METRIC-1ea50a8caf608504","FACT","overview","symbols","Symbols",[],[],[],["$7","$8","SYM-27f111f39e1efe4c","SYM-2fd83fb763ba297b","$9","$10","$11","$12","SYM-ab867c321ac41f40","$13","$14","$15","SYM-f35c2e92882824d9"],[],["components",13]],["METRIC-45b586bf31456c32","FACT","overview","violating_import_sites","Violating import sites",[],[],[],[],[],["violations",0]],["METRIC-5610c365b3e34d3d","FACT","overview","typing_signals","Typing & dynamic signals",[],[],[],[],[],["types",0]],["METRIC-58f9e6977954a47e","FACT","overview","module_cycles","Module cycles",[],[],[],[],[],["cycles",0]],["METRIC-5e1b38214272f111","FACT","overview","untyped_private_accesses","Private attribute accesses through untyped or Any parameters",[],[],[],[],[],["api",0]],["METRIC-9a8bf9ba32aac4c3","FACT","overview","ast_coverage","AST coverage",[],[],[],["$5","MOD-2a97516c354b6884","$6"],[],["coverage","100.0%"]],["METRIC-a4770d56d0e45bc8","FACT","overview","affected_violation_modules","Affected source modules",[],[],[],[],[],["violations",0]],["METRIC-af8a12e31cd6b969","FACT","overview","package_cycles","Package cycles",[],[],[],[],[],["cycles",0]],["METRIC-b28b1ed9821f38c6","FACT","overview","packages","Packages",[],[],[],["PKG-0077782972bbc031","PKG-2a97516c354b6884","PKG-c42dd47e4cf5a68f"],[],["package",3]],["METRIC-b2983be8c3741e5b","FACT","overview","source_files","Source files",[],[],[],["$5","MOD-2a97516c354b6884","$6"],[],["coverage",3]],["METRIC-b5246b04f97b5e43","FACT","overview","call_resolution","Uniquely resolved calls",[],[],[],["CALL-16363d27207391db","CALL-a547434153bc85e8","CALL-a821f4f8aa0b683d","CALL-ad4ce7ea135edf73"],[],["calls","100.0%"]],["METRIC-c6ba710e0c094515","FACT","overview","violations","Contract violations",[],[],[],[],[],["violations",0]],["METRIC-cd26a4b22ffceb0b","FACT","overview","unresolved_calls","Unresolved calls",[],[],[],[],[],["calls",0]],["METRIC-f96ad8a9b8498c26","FACT","overview","rollup_only_package_cycles","Package cycles no module cycle crosses",[],[],[],[],[],["cycles",0]],["METRIC-fbc6c1d4c3b6db8f","FACT","overview","modules","Modules",[],[],[],["$5","MOD-2a97516c354b6884","$6"],[],["module",3]]],"modules":[["$5","FACT","module_topology","module","demo.core",["demo.core","demo.core"],["$3"],[],[],[],[[],false,false,1,0,"$19","demo.core","demo.core",1,12]],["MOD-2a97516c354b6884","FACT","module_topology","module","demo",["demo","demo"],["EVD-0539f5067b55422c"],[],[],[],[[],false,false,0,0,"demo/__init__.py","demo","demo",0,0]],["$6","FACT","module_topology","module","demo.app",["demo.app","demo.app"],["EVD-60c36149c0c5e554"],[],[],[],[[],false,false,0,1,"demo/app.py","demo.app","demo.app",0,1]]],"packages":[["PKG-0077782972bbc031","FACT","package_topology","package","demo.core",["demo.core"],[],[],["$5"],[],[[],1,0,1,"demo.core",1]],["PKG-2a97516c354b6884","FACT","package_topology","package","demo",["demo"],[],[],["MOD-2a97516c354b6884"],[],[[],0,0,1,"demo",0]],["PKG-c42dd47e4cf5a68f","FACT","package_topology","package","demo.app",["demo.app"],[],[],["$6"],[],[["demo.core"],0,1,1,"demo.app",0]]],"path_observations":[],"python_version":"3.11.12","references":[["REF-266430c4d50a2420","FACT","call_hierarchy","value_reference","Reference Unit",["demo.core","demo.core.Unit"],["EVD-e997898fd86bef60"],[],[],[],["$10","demo.core.build","Unit","$5","demo.core","demo.core","resolved",["demo.core.Unit"],"value"]],["REF-8b409b53a8a914e7","FACT","call_hierarchy","value_reference","Reference Port",["demo.core","demo.core.Port"],["EVD-f012fe32fe2b0cda"],[],[],[],["$m","$m","Port","$5","demo.core","demo.core","resolved",["demo.core.Port"],"value"]],["REF-b8b18f0c4e760c0a","FACT","call_hierarchy","value_reference","Reference Base",["demo.core","demo.core.Base"],["EVD-369e4da38e7e7945"],[],[],[],["$m","$m","Base","$5","demo.core","demo.core","resolved",["demo.core.Base"],"value"]]],"runtime":{"name":"python","required":">=3.11","version":"3.11.12"},"schema_version":"2.0.0","scope_observations":[["SCOPE-a25fd99dd5ab7f3e","FACT","components","declared_component_scope_observation","Observed source scope for demo",["demo"],["EVD-0539f5067b55422c","EVD-60c36149c0c5e554","$3"],["demo-component"],["$5","MOD-2a97516c354b6884","$6"],[],["$m","$m","demo-component",true,0,["demo/__init__.py","demo/app.py","$19"],3,["demo","demo.app","demo.core"],3,[],[],"$m",[{"kind":"package","observed_module_count":3,"scope":"demo"}],["demo"]]],["UML-EVALUATION-91ba575e64c861dd","FACT","uml","rule_evaluation","Independent UML target evaluated",[],["EVD-0f4520302a94de78","EVD-1007db24fd37dbc2","EVD-1f8f13a53a544629","EVD-2c000c37da34e919","EVD-369e4da38e7e7945","EVD-3adda43ea486ba0a","EVD-42977271254d62d7","EVD-551f8b4c67f216e9","EVD-60c36149c0c5e554","EVD-6a0c396f00a895c3","EVD-716ea6507762660e","EVD-72dc59925c20012a","EVD-7877a753795d7fb2","EVD-787bc0ede436a3cf","$3","EVD-8c5b15c896b4c84d","EVD-953c324527908e72","EVD-bcd6ad0737a9aef7","EVD-cb8989653f4daacd","EVD-d193553a8b140ce6","EVD-d325063529460a97","EVD-dc57392c5839a8c0","EVD-dcd810f40bf0de82","EVD-dfb359b11b856942","EVD-e997898fd86bef60","EVD-ef45746ccb7caf66","EVD-f012fe32fe2b0cda"],["UML-TARGET-a2e40c5592b1b06a"],["CALL-a547434153bc85e8","CALL-a821f4f8aa0b683d","CALL-ad4ce7ea135edf73","IMP-1eb22bb9478479b1","$5","$6","REF-266430c4d50a2420","$7","$8","SYM-27f111f39e1efe4c","SYM-2fd83fb763ba297b","$9","$10","$11","$12","SYM-ab867c321ac41f40","$13","$14","$15","SYM-f35c2e92882824d9"],["architecture-contract.json"],[true,{"assessments":[{"aspect":"existence","change":"matched","evidence_ids":["$3"],"fact_ids":["$5"],"id":"UML-ASSESSMENT-0440dc0c6eb53229","observed_ids":["$5"],"reason":"$0","status":"PASS","subject_id":"core-module"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-60c36149c0c5e554"],"fact_ids":["$6"],"id":"UML-ASSESSMENT-83a2cebf12ff2218","observed_ids":["$6"],"reason":"$0","status":"PASS","subject_id":"app-module"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-551f8b4c67f216e9"],"fact_ids":["$13"],"id":"UML-ASSESSMENT-61efae41fd72ecab","observed_ids":["$13"],"reason":"$0","status":"PASS","subject_id":"port"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-551f8b4c67f216e9","$3"],"fact_ids":["$5","$13"],"id":"UML-ASSESSMENT-e479618f9396faf7","observed_ids":["$5","$13"],"reason":"$4","status":"PASS","subject_id":"port"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-551f8b4c67f216e9"],"fact_ids":["$13"],"id":"UML-ASSESSMENT-40ce361b1770f404","observed_ids":["$13"],"reason":"$16","status":"PASS","subject_id":"port"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-3adda43ea486ba0a"],"fact_ids":["$12"],"id":"UML-ASSESSMENT-72f75d785fc474e1","observed_ids":["$12"],"reason":"$0","status":"PASS","subject_id":"port-run"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-3adda43ea486ba0a","EVD-551f8b4c67f216e9"],"fact_ids":["$12","$13"],"id":"UML-ASSESSMENT-363990ddc2d96f31","observed_ids":["$12","$13"],"reason":"$4","status":"PASS","subject_id":"port-run"},{"aspect":"signature","change":"matched","evidence_ids":["EVD-3adda43ea486ba0a"],"fact_ids":["$12"],"id":"UML-ASSESSMENT-b0c1984d54ca75e7","observed_ids":["$12"],"reason":"$1","status":"PASS","subject_id":"port-run"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-3adda43ea486ba0a"],"fact_ids":["$12"],"id":"UML-ASSESSMENT-2c299922f4032eb9","observed_ids":["$12"],"reason":"$16","status":"PASS","subject_id":"port-run"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-8c5b15c896b4c84d"],"fact_ids":["SYM-ab867c321ac41f40"],"id":"UML-ASSESSMENT-db121456c70fd241","observed_ids":["SYM-ab867c321ac41f40"],"reason":"$0","status":"PASS","subject_id":"base"},{"aspect":"containment","change":"matched","evidence_ids":["$3","EVD-8c5b15c896b4c84d"],"fact_ids":["$5","SYM-ab867c321ac41f40"],"id":"UML-ASSESSMENT-7e7c550de50fd585","observed_ids":["$5","SYM-ab867c321ac41f40"],"reason":"$4","status":"PASS","subject_id":"base"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-8c5b15c896b4c84d"],"fact_ids":["SYM-ab867c321ac41f40"],"id":"UML-ASSESSMENT-450d38591cf19cdf","observed_ids":["SYM-ab867c321ac41f40"],"reason":"$16","status":"PASS","subject_id":"base"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-1007db24fd37dbc2"],"fact_ids":["$9"],"id":"UML-ASSESSMENT-ac308774c4c3cdfc","observed_ids":["$9"],"reason":"$0","status":"PASS","subject_id":"client"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-1007db24fd37dbc2","$3"],"fact_ids":["$5","$9"],"id":"UML-ASSESSMENT-de1638fc1ca17ac9","observed_ids":["$5","$9"],"reason":"$4","status":"PASS","subject_id":"client"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-1007db24fd37dbc2"],"fact_ids":["$9"],"id":"UML-ASSESSMENT-82c615fbbe70f894","observed_ids":["$9"],"reason":"$16","status":"PASS","subject_id":"client"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-6a0c396f00a895c3"],"fact_ids":["$11"],"id":"UML-ASSESSMENT-8555870cce125360","observed_ids":["$11"],"reason":"$0","status":"PASS","subject_id":"run"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-1007db24fd37dbc2","EVD-6a0c396f00a895c3"],"fact_ids":["$9","$11"],"id":"UML-ASSESSMENT-78c50d21c79c926b","observed_ids":["$9","$11"],"reason":"$4","status":"PASS","subject_id":"run"},{"aspect":"signature","change":"changed","evidence_ids":["EVD-6a0c396f00a895c3"],"fact_ids":["$11"],"id":"UML-ASSESSMENT-f425044842531156","observed_ids":["$11"],"reason":"Return annotation differs.","status":"FAIL","subject_id":"run"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-6a0c396f00a895c3"],"fact_ids":["$11"],"id":"UML-ASSESSMENT-13900baaacde8c8f","observed_ids":["$11"],"reason":"$16","status":"PASS","subject_id":"run"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-2c000c37da34e919"],"fact_ids":["$9"],"id":"UML-ASSESSMENT-43fcdc1e635116c0","observed_ids":["ATTR-37b1344bc7de7f93"],"reason":"$0","status":"PASS","subject_id":"private-token"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-1007db24fd37dbc2","EVD-2c000c37da34e919"],"fact_ids":["$9"],"id":"UML-ASSESSMENT-2c2b1759b7e6b541","observed_ids":["ATTR-37b1344bc7de7f93","$9"],"reason":"$4","status":"PASS","subject_id":"private-token"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-2c000c37da34e919"],"fact_ids":["$9"],"id":"UML-ASSESSMENT-051f160a90f840cf","observed_ids":["ATTR-37b1344bc7de7f93"],"reason":"$16","status":"PASS","subject_id":"private-token"},{"aspect":"annotation","change":"matched","evidence_ids":["EVD-2c000c37da34e919"],"fact_ids":["$9"],"id":"UML-ASSESSMENT-8911af230975b0c6","observed_ids":["ATTR-37b1344bc7de7f93"],"reason":"Annotation matches.","status":"PASS","subject_id":"private-token"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-716ea6507762660e"],"fact_ids":["$9"],"id":"UML-ASSESSMENT-55ec18ad13bdfed2","observed_ids":["ATTR-f48732d04457accf"],"reason":"$0","status":"PASS","subject_id":"limit"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-1007db24fd37dbc2","EVD-716ea6507762660e"],"fact_ids":["$9"],"id":"UML-ASSESSMENT-11e95af25e75e22b","observed_ids":["ATTR-f48732d04457accf","$9"],"reason":"$4","status":"PASS","subject_id":"limit"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-716ea6507762660e"],"fact_ids":["$9"],"id":"UML-ASSESSMENT-a33ce98bc6511028","observed_ids":["ATTR-f48732d04457accf"],"reason":"$16","status":"PASS","subject_id":"limit"},{"aspect":"modifiers","change":"matched","evidence_ids":["EVD-716ea6507762660e"],"fact_ids":["$9"],"id":"UML-ASSESSMENT-468c9bc5e7b884d3","observed_ids":["ATTR-f48732d04457accf"],"reason":"Requested traits are recorded.","status":"PASS","subject_id":"limit"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-cb8989653f4daacd"],"fact_ids":["$8"],"id":"UML-ASSESSMENT-53055453f59188d0","observed_ids":["$8"],"reason":"$0","status":"PASS","subject_id":"reset"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-1007db24fd37dbc2","EVD-cb8989653f4daacd"],"fact_ids":["$8","$9"],"id":"UML-ASSESSMENT-b347fcbae010c3e7","observed_ids":["$8","$9"],"reason":"$4","status":"PASS","subject_id":"reset"},{"aspect":"signature","change":"matched","evidence_ids":["EVD-cb8989653f4daacd"],"fact_ids":["$8"],"id":"UML-ASSESSMENT-8843757f5804128a","observed_ids":["$8"],"reason":"$1","status":"PASS","subject_id":"reset"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-cb8989653f4daacd"],"fact_ids":["$8"],"id":"UML-ASSESSMENT-04de5ae6977b90a8","observed_ids":["$8"],"reason":"$16","status":"PASS","subject_id":"reset"},{"aspect":"modifiers","change":"matched","evidence_ids":["EVD-cb8989653f4daacd"],"fact_ids":["$8"],"id":"UML-ASSESSMENT-8d55da04ed0736b5","observed_ids":["$8"],"reason":"Requested traits are recorded.","status":"PASS","subject_id":"reset"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-72dc59925c20012a"],"fact_ids":["SYM-27f111f39e1efe4c"],"id":"UML-ASSESSMENT-acf62df406bab7b9","observed_ids":["SYM-27f111f39e1efe4c"],"reason":"$0","status":"PASS","subject_id":"unit"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-72dc59925c20012a","$3"],"fact_ids":["$5","SYM-27f111f39e1efe4c"],"id":"UML-ASSESSMENT-7889eb08d4a9c08d","observed_ids":["$5","SYM-27f111f39e1efe4c"],"reason":"$4","status":"PASS","subject_id":"unit"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-72dc59925c20012a"],"fact_ids":["SYM-27f111f39e1efe4c"],"id":"UML-ASSESSMENT-00d5350a31780875","observed_ids":["SYM-27f111f39e1efe4c"],"reason":"$16","status":"PASS","subject_id":"unit"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-953c324527908e72"],"fact_ids":["$14"],"id":"UML-ASSESSMENT-39540592dfc118d3","observed_ids":["$14"],"reason":"$0","status":"PASS","subject_id":"state"},{"aspect":"containment","change":"matched","evidence_ids":["$3","EVD-953c324527908e72"],"fact_ids":["$5","$14"],"id":"UML-ASSESSMENT-4b55303634bd3067","observed_ids":["$5","$14"],"reason":"$4","status":"PASS","subject_id":"state"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-953c324527908e72"],"fact_ids":["$14"],"id":"UML-ASSESSMENT-0844b3274b1cdbee","observed_ids":["$14"],"reason":"$16","status":"PASS","subject_id":"state"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-7877a753795d7fb2"],"fact_ids":["$14"],"id":"UML-ASSESSMENT-1425ded8804e407f","observed_ids":["ATTR-381d023db97dc2ec"],"reason":"$0","status":"PASS","subject_id":"ready"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-7877a753795d7fb2","EVD-953c324527908e72"],"fact_ids":["$14"],"id":"UML-ASSESSMENT-4cb31c81b30bdef2","observed_ids":["ATTR-381d023db97dc2ec","$14"],"reason":"$4","status":"PASS","subject_id":"ready"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-7877a753795d7fb2"],"fact_ids":["$14"],"id":"UML-ASSESSMENT-a2d234c16a29ab56","observed_ids":["ATTR-381d023db97dc2ec"],"reason":"$16","status":"PASS","subject_id":"ready"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-1f8f13a53a544629"],"fact_ids":["$14"],"id":"UML-ASSESSMENT-abb9560e2e3f7e89","observed_ids":["ATTR-bd925ad97fe2179a"],"reason":"$0","status":"PASS","subject_id":"stopped"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-1f8f13a53a544629","EVD-953c324527908e72"],"fact_ids":["$14"],"id":"UML-ASSESSMENT-d96f93fa5b5dc02c","observed_ids":["ATTR-bd925ad97fe2179a","$14"],"reason":"$4","status":"PASS","subject_id":"stopped"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-1f8f13a53a544629"],"fact_ids":["$14"],"id":"UML-ASSESSMENT-3d1bbdd218a6c1be","observed_ids":["ATTR-bd925ad97fe2179a"],"reason":"$16","status":"PASS","subject_id":"stopped"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-d193553a8b140ce6"],"fact_ids":["$7"],"id":"UML-ASSESSMENT-96cf3683023bdeef","observed_ids":["$7"],"reason":"$0","status":"PASS","subject_id":"helper"},{"aspect":"containment","change":"matched","evidence_ids":["$3","EVD-d193553a8b140ce6"],"fact_ids":["$5","$7"],"id":"UML-ASSESSMENT-52a00c014562322e","observed_ids":["$5","$7"],"reason":"$4","status":"PASS","subject_id":"helper"},{"aspect":"signature","change":"matched","evidence_ids":["EVD-d193553a8b140ce6"],"fact_ids":["$7"],"id":"UML-ASSESSMENT-a2bb8a9d48683e57","observed_ids":["$7"],"reason":"$1","status":"PASS","subject_id":"helper"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-d193553a8b140ce6"],"fact_ids":["$7"],"id":"UML-ASSESSMENT-bf40e32f979eaafa","observed_ids":["$7"],"reason":"$16","status":"PASS","subject_id":"helper"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-42977271254d62d7"],"fact_ids":["$10"],"id":"UML-ASSESSMENT-f3151fe84b7cd73e","observed_ids":["$10"],"reason":"$0","status":"PASS","subject_id":"build"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-42977271254d62d7","$3"],"fact_ids":["$5","$10"],"id":"UML-ASSESSMENT-b3b2e4919b2200c3","observed_ids":["$5","$10"],"reason":"$4","status":"PASS","subject_id":"build"},{"aspect":"signature","change":"matched","evidence_ids":["EVD-42977271254d62d7"],"fact_ids":["$10"],"id":"UML-ASSESSMENT-9c7bab87e2b0b4a5","observed_ids":["$10"],"reason":"$1","status":"PASS","subject_id":"build"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-42977271254d62d7"],"fact_ids":["$10"],"id":"UML-ASSESSMENT-cfde96c043ac3cb2","observed_ids":["$10"],"reason":"$16","status":"PASS","subject_id":"build"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-dfb359b11b856942","EVD-ef45746ccb7caf66"],"fact_ids":["CALL-a547434153bc85e8"],"id":"UML-ASSESSMENT-de336c219fdf7fe8","observed_ids":["VALUEBIND-fda1aa4229d7ec5d"],"reason":"$0","status":"PASS","subject_id":"item"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-42977271254d62d7","EVD-dfb359b11b856942","EVD-ef45746ccb7caf66"],"fact_ids":["CALL-a547434153bc85e8","$10"],"id":"UML-ASSESSMENT-cfded36f1ccced44","observed_ids":["$10","VALUEBIND-fda1aa4229d7ec5d"],"reason":"$4","status":"PASS","subject_id":"item"},{"aspect":"initializer","change":"matched","evidence_ids":["EVD-dfb359b11b856942","EVD-ef45746ccb7caf66"],"fact_ids":["CALL-a547434153bc85e8"],"id":"UML-ASSESSMENT-c24e0977ec25b627","observed_ids":["VALUEBIND-fda1aa4229d7ec5d"],"reason":"Initializer syntax matches.","status":"PASS","subject_id":"item"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-bcd6ad0737a9aef7"],"fact_ids":["$15"],"id":"UML-ASSESSMENT-a9c176709e97532f","observed_ids":["$15"],"reason":"$0","status":"PASS","subject_id":"work"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-60c36149c0c5e554","EVD-bcd6ad0737a9aef7"],"fact_ids":["$6","$15"],"id":"UML-ASSESSMENT-25efe044ba4abb20","observed_ids":["$6","$15"],"reason":"$4","status":"PASS","subject_id":"work"},{"aspect":"signature","change":"matched","evidence_ids":["EVD-bcd6ad0737a9aef7"],"fact_ids":["$15"],"id":"UML-ASSESSMENT-ca5d60ef56720198","observed_ids":["$15"],"reason":"$1","status":"PASS","subject_id":"work"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-bcd6ad0737a9aef7"],"fact_ids":["$15"],"id":"UML-ASSESSMENT-7dab8617a8cc84fd","observed_ids":["$15"],"reason":"$16","status":"PASS","subject_id":"work"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-0f4520302a94de78"],"fact_ids":["SYM-f35c2e92882824d9"],"id":"UML-ASSESSMENT-a4ca0b71b222308f","observed_ids":["SYM-f35c2e92882824d9"],"reason":"$0","status":"PASS","subject_id":"text"},{"aspect":"containment","change":"matched","evidence_ids":["EVD-0f4520302a94de78","$3"],"fact_ids":["$5","SYM-f35c2e92882824d9"],"id":"UML-ASSESSMENT-64d1bb3712fe5d18","observed_ids":["$5","SYM-f35c2e92882824d9"],"reason":"$4","status":"PASS","subject_id":"text"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-0f4520302a94de78"],"fact_ids":["SYM-f35c2e92882824d9"],"id":"UML-ASSESSMENT-e7e250bb6026b4a2","observed_ids":["SYM-f35c2e92882824d9"],"reason":"$16","status":"PASS","subject_id":"text"},{"aspect":"existence","change":"matched","evidence_ids":["EVD-d325063529460a97"],"fact_ids":["SYM-2fd83fb763ba297b"],"id":"UML-ASSESSMENT-77b8164c1befc892","observed_ids":["SYM-2fd83fb763ba297b"],"reason":"$0","status":"PASS","subject_id":"version"},{"aspect":"containment","change":"matched","evidence_ids":["$3","EVD-d325063529460a97"],"fact_ids":["$5","SYM-2fd83fb763ba297b"],"id":"UML-ASSESSMENT-6d7bff027c828d79","observed_ids":["$5","SYM-2fd83fb763ba297b"],"reason":"$4","status":"PASS","subject_id":"version"},{"aspect":"visibility","change":"matched","evidence_ids":["EVD-d325063529460a97"],"fact_ids":["SYM-2fd83fb763ba297b"],"id":"UML-ASSESSMENT-e9aef3a154dd6fb7","observed_ids":["SYM-2fd83fb763ba297b"],"reason":"$16","status":"PASS","subject_id":"version"},{"aspect":"relationship","change":"matched","evidence_ids":["EVD-369e4da38e7e7945"],"fact_ids":["$9"],"id":"UML-ASSESSMENT-d5cc7129a30f9700","observed_ids":["BASE-d69721771dbae45b"],"reason":"$2","status":"PASS","subject_id":"client-base"},{"aspect":"relationship","change":"matched","evidence_ids":["EVD-f012fe32fe2b0cda"],"fact_ids":["$9"],"id":"UML-ASSESSMENT-5a26cbd7559aaaf3","observed_ids":["BASE-484b3dc321c9131f"],"reason":"$2","status":"PASS","subject_id":"client-port"},{"aspect":"relationship","change":"matched","evidence_ids":["EVD-dc57392c5839a8c0"],"fact_ids":["CALL-ad4ce7ea135edf73"],"id":"UML-ASSESSMENT-180b545270dace0a","observed_ids":["CALL-ad4ce7ea135edf73"],"reason":"$2","status":"PASS","subject_id":"run-helper"},{"aspect":"relationship","change":"matched","evidence_ids":["EVD-e997898fd86bef60"],"fact_ids":["REF-266430c4d50a2420"],"id":"UML-ASSESSMENT-ae19b58146dd352c","observed_ids":["REF-266430c4d50a2420"],"reason":"$2","status":"PASS","subject_id":"build-unit-reference"},{"aspect":"relationship","change":"matched","evidence_ids":["EVD-dcd810f40bf0de82"],"fact_ids":["IMP-1eb22bb9478479b1"],"id":"UML-ASSESSMENT-f8f048b7a946e7a3","observed_ids":["IMP-1eb22bb9478479b1"],"reason":"$2","status":"PASS","subject_id":"app-import"},{"aspect":"relationship","change":"matched","evidence_ids":["EVD-787bc0ede436a3cf"],"fact_ids":["CALL-a821f4f8aa0b683d"],"id":"UML-ASSESSMENT-b28bf842ea26a31a","observed_ids":["CALL-a821f4f8aa0b683d"],"reason":"$2","status":"PASS","subject_id":"work-helper"},{"aspect":"relationship","change":"matched","evidence_ids":["EVD-dfb359b11b856942"],"fact_ids":["CALL-a547434153bc85e8"],"id":"UML-ASSESSMENT-f084445c0bcf6db5","observed_ids":["CONSTRUCTION-76542370d7dc93ef"],"reason":"$2","status":"PASS","subject_id":"build-unit"},{"aspect":"relationship","change":"matched","evidence_ids":["EVD-dfb359b11b856942"],"fact_ids":["CALL-a547434153bc85e8"],"id":"UML-ASSESSMENT-a58a62b748d48b8d","observed_ids":["CONSTRUCTION-f9afae97b6598c9f"],"reason":"$2","status":"PASS","subject_id":"item-unit"}],"correspondences":[{"observed_ids":["PKG-2a97516c354b6884"],"target_id":"demo-component"},{"observed_ids":["$5"],"target_id":"core-module"},{"observed_ids":["$6"],"target_id":"app-module"},{"observed_ids":["$13"],"target_id":"port"},{"observed_ids":["$12"],"target_id":"port-run"},{"observed_ids":["SYM-ab867c321ac41f40"],"target_id":"base"},{"observed_ids":["$9"],"target_id":"client"},{"observed_ids":["$11"],"target_id":"run"},{"observed_ids":["ATTR-37b1344bc7de7f93"],"target_id":"private-token"},{"observed_ids":["ATTR-f48732d04457accf"],"target_id":"limit"},{"observed_ids":["$8"],"target_id":"reset"},{"observed_ids":["SYM-27f111f39e1efe4c"],"target_id":"unit"},{"observed_ids":["$14"],"target_id":"state"},{"observed_ids":["ATTR-381d023db97dc2ec"],"target_id":"ready"},{"observed_ids":["ATTR-bd925ad97fe2179a"],"target_id":"stopped"},{"observed_ids":["$7"],"target_id":"helper"},{"observed_ids":["$10"],"target_id":"build"},{"observed_ids":["VALUEBIND-fda1aa4229d7ec5d"],"target_id":"item"},{"observed_ids":["$15"],"target_id":"work"},{"observed_ids":["SYM-f35c2e92882824d9"],"target_id":"text"},{"observed_ids":["SYM-2fd83fb763ba297b"],"target_id":"version"}],"schema_version":"1.0.0","status":"FAIL"},"$m","$m","$m","$m","$m","$m","$m","$m","$m","root","$m","$m"]]],"source":{"dirty":true,"git_head":"73a684ce10fea48db0ff07c79be6f472e1876ea5","scope":["demo/**/*.py"],"source_digest":"5f1b7e7032ef09ace0d2a5db40c4c22363e9bdd4c6bb87b516dd2ef3d998014b"},"string_table":["Declared definition is recorded.","Declared signature matches recorded syntax.","Directed relationship is recorded.","EVD-83167e923e54965c","Lexical parent matches.","MOD-0077782972bbc031","MOD-c42dd47e4cf5a68f","SYM-0170343bf117f919","SYM-1dc57d6089a24c56","SYM-3b3555d9773fd742","SYM-8132a25d33a9f172","SYM-8cb2bfbbf361871d","SYM-9538f08695439e1a","SYM-ca5a4b5efeb66ecd","SYM-ceca6723cdad2cc6","SYM-f105aa943129628a","Visibility matches.","class creation, binding or attribute writes remain unmeasured","class creation, binding or generated methods are not fully represented","demo/core.py","docs/target.md","explicit base with a stable direct module binding","repository_topology"],"symbols":[["$7","FACT","$22","function","helper",["demo.core","demo.core.helper"],["EVD-d193553a8b140ce6"],[],[],[],["$m",false,"$m","$m","$m","$m","$m","$m","$m","$m","$m",false,[],"$m",[],"$m","$m","$m","$m",null,"$m","$m","demo.core","helper",true,false,"demo.core",[{"annotation":"int","default":null,"default_known":true,"kind":"positional","name":"value"}],null,"demo.core.helper","value","$m","str","1d205cab944dd1f8",6,"$m","$m","$m","$m","function","public_name",{"basis":"convention","kind":"public","spelling":"helper"}]],["$8","FACT","$22","method","reset",["demo.core","demo.core.Client.reset"],["EVD-cb8989653f4daacd"],[],[],[],["$m",false,"$m","$m","$m","$m","$m","$m","$m","$m","$m",false,["staticmethod"],"$m",[],"$m","$m","$m","$m","$9","$m","static","demo.core","reset",true,false,"demo.core",[],"demo.core.Client","demo.core.Client.reset",null,"$m","None","ebdf8cc00bc4d9ce",1,true,"$m",false,"$m","method","public_name",{"basis":"convention","kind":"public","spelling":"reset"}]],["SYM-27f111f39e1efe4c","FACT","$22","class","Unit",["demo.core","demo.core.Unit"],["EVD-72dc59925c20012a"],[],[],[],["$m","$m",[],[],[],[],false,true,"class",[],"$m",false,[],true,[],"$m","$m",[],false,null,[{"definition_ids":[],"kind":"attribute","reason":"$17","schema_version":"1.0.0","status":"partial"},{"definition_ids":[],"kind":"method","reason":"$18","schema_version":"1.0.0","status":"partial"}],"$m","demo.core","Unit",true,"$m","demo.core","$m",null,"demo.core.Unit","$m","$m","$m","$m","$m","$m",true,"$m",false,"class","public_name",{"basis":"convention","kind":"public","spelling":"Unit"}]],["SYM-2fd83fb763ba297b","FACT","$22","static_constant","VERSION",["demo.core","demo.core.VERSION"],["EVD-d325063529460a97"],[],[],[],["$m","$m","$m","$m","$m","$m","$m","$m","$m","$m",1,"$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","demo.core","VERSION","$m","$m","$m","$m",null,"demo.core.VERSION","$m","static_constant","$m","$m","$m","$m","$m","$m","$m","$m","public_name",{"basis":"convention","kind":"public","spelling":"VERSION"}]],["$9","FACT","$22","class","Client",["demo.core","demo.core.Client"],["EVD-1007db24fd37dbc2"],[],[],[],["$m","$m",[{"annotation":"str","definition_id":"ATTR-37b1344bc7de7f93","evidence_ids":["EVD-2c000c37da34e919"],"name":"_token","visibility":{"basis":"convention","kind":"private","spelling":"_token"}},{"annotation":null,"definition_id":"ATTR-f48732d04457accf","evidence_ids":["EVD-716ea6507762660e"],"name":"limit","static":true,"visibility":{"basis":"convention","kind":"public","spelling":"limit"}}],[{"candidate_count":1,"evidence_ids":["EVD-369e4da38e7e7945"],"expression":"Base","id":"BASE-d69721771dbae45b","reason":"$21","relationship_kind":"inherits","status":"resolved","targets":["demo.core.Base"]},{"candidate_count":1,"evidence_ids":["EVD-f012fe32fe2b0cda"],"expression":"Port","id":"BASE-484b3dc321c9131f","reason":"$21","relationship_kind":"realizes","status":"resolved","targets":["demo.core.Port"]}],["Base","Port"],["Base","Port"],false,true,"class",["limit","reset","run"],"$m",false,[],false,[],"$m","$m",[],false,null,[{"definition_ids":["ATTR-37b1344bc7de7f93","ATTR-f48732d04457accf"],"kind":"attribute","reason":"$17","schema_version":"1.0.0","status":"partial"},{"definition_ids":["$11","$8"],"kind":"method","reason":"$18","schema_version":"1.0.0","status":"partial"}],"$m","demo.core","Client",true,"$m","demo.core","$m",null,"demo.core.Client","$m","$m","$m","$m","$m","$m",true,"$m",false,"class","public_name",{"basis":"convention","kind":"public","spelling":"Client"}]],["$10","FACT","$22","function","build",["demo.core","demo.core.build"],["EVD-42977271254d62d7"],[],[],[],["$m",false,"$m","$m","$m","$m","$m","$m","$m","$m","$m",false,[],"$m",[],"$m",["demo.core.Unit"],"$m","$m",null,"$m","$m","demo.core","build",true,false,"demo.core",[],null,"demo.core.build",null,"$m","Unit","047325a558205e3f",9,"$m","$m","$m","$m","function","public_name",{"basis":"convention","kind":"public","spelling":"build"}]],["$11","FACT","$22","method","run",["demo.core","demo.core.Client.run"],["EVD-6a0c396f00a895c3"],[],[],[],["$m",false,"$m","$m","$m","$m","$m","$m","$m","$m","$m",false,[],"$m",[],"$m","$m","$m","$m","$9","$m","instance","demo.core","run",true,false,"demo.core",[{"annotation":null,"default":null,"default_known":true,"kind":"positional","name":"self"},{"annotation":"int","default":null,"default_known":true,"kind":"positional","name":"value"}],"demo.core.Client","demo.core.Client.run","self","$m","int","1d205cab944dd1f8",6,true,"$m",false,"$m","method","public_name",{"basis":"convention","kind":"public","spelling":"run"}]],["$12","FACT","$22","method","run",["demo.core","demo.core.Port.run"],["EVD-3adda43ea486ba0a"],[],[],[],["$m",false,"$m","$m","$m","$m","$m","$m","$m","$m","$m",false,[],"$m",[],"$m","$m","$m","$m","$13","$m","instance","demo.core","run",true,false,"demo.core",[{"annotation":null,"default":null,"default_known":true,"kind":"positional","name":"self"},{"annotation":"int","default":null,"default_known":true,"kind":"positional","name":"value"}],"demo.core.Port","demo.core.Port.run","self","$m","str","e3b0c44298fc1c14",0,true,"$m",false,"$m","method","public_name",{"basis":"convention","kind":"public","spelling":"run"}]],["SYM-ab867c321ac41f40","FACT","$22","class","Base",["demo.core","demo.core.Base"],["EVD-8c5b15c896b4c84d"],[],[],[],["$m","$m",[],[],[],[],false,true,"class",[],"$m",false,[],true,[],"$m","$m",[],false,null,[{"definition_ids":[],"kind":"attribute","reason":"$17","schema_version":"1.0.0","status":"partial"},{"definition_ids":[],"kind":"method","reason":"$18","schema_version":"1.0.0","status":"partial"}],"$m","demo.core","Base",true,"$m","demo.core","$m",null,"demo.core.Base","$m","$m","$m","$m","$m","$m",true,"$m",false,"class","public_name",{"basis":"convention","kind":"public","spelling":"Base"}]],["$13","FACT","$22","class","Port",["demo.core","demo.core.Port"],["EVD-551f8b4c67f216e9"],[],[],[],["$m","$m",[],[{"candidate_count":1,"evidence_ids":["EVD-c27bc0bcf0adbe2c"],"expression":"Protocol","id":"BASE-7d0d76986f43edcd","reason":"$21","relationship_kind":"inherits","status":"resolved","targets":["typing.Protocol"]}],["typing.Protocol"],["Protocol"],false,true,"protocol",["run"],"$m",false,[],false,[],"$m","$m",[],false,null,[{"definition_ids":[],"kind":"attribute","reason":"$17","schema_version":"1.0.0","status":"partial"},{"definition_ids":["$12"],"kind":"method","reason":"$18","schema_version":"1.0.0","status":"partial"}],"$m","demo.core","Port",true,"$m","demo.core","$m",null,"demo.core.Port","$m","$m","$m","$m","$m","$m",true,"$m",false,"class","public_name",{"basis":"convention","kind":"public","spelling":"Port"}]],["$14","FACT","$22","class","State",["demo.core","demo.core.State"],["EVD-953c324527908e72"],[],[],[],["$m","$m",[{"annotation":null,"definition_id":"ATTR-381d023db97dc2ec","evidence_ids":["EVD-7877a753795d7fb2"],"name":"READY","static":true,"visibility":{"basis":"convention","kind":"public","spelling":"READY"}},{"annotation":null,"definition_id":"ATTR-bd925ad97fe2179a","evidence_ids":["EVD-1f8f13a53a544629"],"name":"STOPPED","static":true,"visibility":{"basis":"convention","kind":"public","spelling":"STOPPED"}}],[{"candidate_count":1,"evidence_ids":["EVD-bcc48e554c76ca4f"],"expression":"Enum","id":"BASE-062df42af2cc9f08","reason":"$21","relationship_kind":"inherits","status":"resolved","targets":["enum.Enum"]}],["enum.Enum"],["Enum"],false,true,"enum",["READY","STOPPED"],"$m",false,[],false,[],["READY","STOPPED"],"$m",[],false,null,[{"definition_ids":["ATTR-381d023db97dc2ec","ATTR-bd925ad97fe2179a"],"kind":"attribute","reason":"$17","schema_version":"1.0.0","status":"partial"},{"definition_ids":[],"kind":"method","reason":"$18","schema_version":"1.0.0","status":"partial"}],"$m","demo.core","State",true,"$m","demo.core","$m",null,"demo.core.State","$m","$m","$m","$m","$m","$m",true,"$m",false,"class","public_name",{"basis":"convention","kind":"public","spelling":"State"}]],["$15","FACT","$22","function","work",["demo.app","demo.app.work"],["EVD-bcd6ad0737a9aef7"],[],[],[],["$m",false,"$m","$m","$m","$m","$m","$m","$m","$m","$m",false,[],"$m",[],"$m","$m","$m","$m",null,"$m","$m","demo.app","work",true,false,"demo.app",[{"annotation":"int","default":null,"default_known":true,"kind":"positional","name":"value"}],null,"demo.app.work","value","$m","str","1d205cab944dd1f8",6,"$m","$m","$m","$m","function","public_name",{"basis":"convention","kind":"public","spelling":"work"}]],["SYM-f35c2e92882824d9","FACT","$22","type_alias","Text",["demo.core","demo.core.Text"],["EVD-0f4520302a94de78"],[],[],[],["str","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","$m","demo.core","Text","$m","$m","$m","$m",null,"demo.core.Text","$m","type_alias","$m","$m","$m","$m",true,"$m",false,"$m","public_name",{"basis":"convention","kind":"public","spelling":"Text"}]]],"transitive_paths":[],"typing_signals":[],"unknowns":[["UNKNOWN-CONTEXT-DATAFLOW","UNKNOWN","contexts_state","context_alias_limit","Context read/write topology excludes unproven dynamic aliases",[],[],[],[],[],["The scanner follows direct annotations, constructor bindings, and self-field access only","$m"]],["UNKNOWN-PYTHON-DYNAMIC-CALLS","UNKNOWN","call_hierarchy","dynamic_call_limit","Python dynamic behavior prevents a complete call graph",["demo"],[],[],[],[],["$m",0]]],"violations":[["UML-FINDING-6d4d098cdcf467bf","VIOLATION","uml","uml_conformance","Return annotation differs.",[],["EVD-6a0c396f00a895c3"],["UML-TARGET-a2e40c5592b1b06a"],["$11"],["architecture-contract.json"],["signature","changed",["EVD-6a0c396f00a895c3"],["$11"],"UML-ASSESSMENT-f425044842531156",["$11"],"Return annotation differs.","FAIL","run"]]]}
