{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:agla:candidate:runtime-neutral-graph:0.1.0",
  "title": "AGLA Runtime-Neutral Graph Carrier Candidate",
  "type": "object",
  "additionalProperties": false,
  "required": ["contract_version", "authority_status", "definition", "instance", "run"],
  "properties": {
    "contract_version": {"const": "0.1.0"},
    "authority_status": {"const": "CANDIDATE_NON_RUNTIME_NO_AUTHORITY_EFFECT"},
    "definition": {
      "type": "object", "additionalProperties": false,
      "required": ["graph_id", "topology_authority", "edge_set_ref", "edge_set_authority_status", "nodes", "connections"],
      "properties": {
        "graph_id": {"type": "string", "minLength": 1},
        "topology_authority": {"enum": ["GRAPHUS", "LOCAL_NON_GRAPHUS_CONTRACT"]},
        "edge_set_ref": {"type": "string", "minLength": 1},
        "edge_set_authority_status": {"type": "string", "minLength": 1},
        "nodes": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/node"}},
        "connections": {"type": "array", "items": {"$ref": "#/$defs/connection"}}
      }
    },
    "instance": {
      "type": "object", "additionalProperties": false,
      "required": ["instance_id", "graph_ref", "instance_path", "semantic_bindings", "parent_instance_ref", "invocation_ref"],
      "properties": {
        "instance_id": {"type": "string", "minLength": 1},
        "graph_ref": {"type": "string", "minLength": 1},
        "instance_path": {"type": "string", "pattern": "^/"},
        "semantic_bindings": {"type": "object"},
        "parent_instance_ref": {"type": ["string", "null"]},
        "invocation_ref": {"type": ["string", "null"]}
      }
    },
    "run": {
      "type": "object", "additionalProperties": false,
      "required": ["run_id", "instance_ref", "tenet_evidence_ref", "rotas_evidence_ref", "arepo_decision_ref", "bounds", "branches", "events", "result_status"],
      "properties": {
        "run_id": {"type": "string", "minLength": 1},
        "instance_ref": {"type": "string", "minLength": 1},
        "tenet_evidence_ref": {"type": "string", "minLength": 1},
        "rotas_evidence_ref": {"type": "string", "minLength": 1},
        "arepo_decision_ref": {"type": "string", "minLength": 1},
        "bounds": {"$ref": "#/$defs/bounds"},
        "branches": {"type": "array", "items": {"$ref": "#/$defs/branch"}},
        "events": {"type": "array", "items": {"$ref": "#/$defs/event"}},
        "result_status": {"enum": ["ACTIVE", "COMPLETED", "SUSPENDED", "REJECTED", "REROUTED"]}
      }
    }
  },
  "$defs": {
    "node": {"type": "object", "additionalProperties": false, "required": ["node_id", "ports"], "properties": {"node_id": {"type": "string", "minLength": 1}, "ports": {"type": "array", "items": {"type": "string"}}}},
    "connection": {"type": "object", "additionalProperties": false, "required": ["connection_id", "source", "target", "kind"], "properties": {"connection_id": {"type": "string"}, "source": {"type": "string"}, "target": {"type": "string"}, "kind": {"enum": ["STRUCTURAL_CONNECTION", "DIRECTED_TRANSITION"]}}},
    "bounds": {"type": "object", "additionalProperties": false, "required": ["max_depth", "max_nodes", "max_opera_calls", "max_parallel_branches", "max_revisits", "max_time_ms", "max_trace_events", "max_context_units"], "properties": {"max_depth": {"type": "integer", "minimum": 0}, "max_nodes": {"type": "integer", "minimum": 1}, "max_opera_calls": {"type": "integer", "minimum": 0}, "max_parallel_branches": {"type": "integer", "minimum": 1}, "max_revisits": {"type": "integer", "minimum": 0}, "max_time_ms": {"type": "integer", "minimum": 1}, "max_trace_events": {"type": "integer", "minimum": 1}, "max_context_units": {"type": "integer", "minimum": 1}}},
    "branch": {"type": "object", "additionalProperties": false, "required": ["branch_id", "parent_branch_id", "fork_locus", "parent_state_version", "input_trace", "active_graph_ref", "resolution_profile", "assigned_agent_refs", "executed_opera_refs", "result_status", "unresolved_items", "return_target_ref", "resume_target_ref", "returned_payload_ref", "post_return_state_ref", "admission_or_merge_status"], "properties": {"branch_id": {"type": "string"}, "parent_branch_id": {"type": ["string", "null"]}, "fork_locus": {"type": ["string", "null"]}, "parent_state_version": {"type": "string"}, "input_trace": {"type": "array"}, "active_graph_ref": {"type": "string"}, "resolution_profile": {"type": "string"}, "assigned_agent_refs": {"type": "array"}, "executed_opera_refs": {"type": "array"}, "result_status": {"type": "string"}, "unresolved_items": {"type": "array"}, "return_target_ref": {"type": ["string", "null"]}, "resume_target_ref": {"type": ["string", "null"]}, "returned_payload_ref": {"type": ["string", "null"]}, "post_return_state_ref": {"type": ["string", "null"]}, "admission_or_merge_status": {"enum": ["PENDING", "ADMITTED", "REJECTED", "MANUAL_REVIEW"]}}},
    "event": {"type": "object", "additionalProperties": false, "required": ["sequence", "event_type", "locus_ref", "connection_ref", "state_delta"], "properties": {"sequence": {"type": "integer", "minimum": 0}, "event_type": {"enum": ["VISIT", "REVISIT", "TRAVERSE", "FORK", "RETURN", "SUSPEND", "RESUME", "COMPLETE"]}, "locus_ref": {"type": ["string", "null"]}, "connection_ref": {"type": ["string", "null"]}, "state_delta": {"type": "object"}}}
  }
}

