Learning Castle Edge Schema
This schema defines how one Learning Castle object may connect to another. It governs the typed edges used by the Castle Machine Manifest, Castle Registry, Route Schema and Fort Schema.
schema_id: /learning-castle/0104 schema_version: 0.1 system: eduKateSengkang Learning Castle object_type: edge runtime_parent: /learning-castle/0100 route_schema: /learning-castle/0102 fort_schema: /learning-castle/0103 principle: every_connection_has_a_job
Edge Contract
edge: id: unique_edge_id from: canonical_castle_object_or_live_url to: canonical_castle_object_or_live_url type: road | bridge | return_road | gate_road | archive_road | service_road | expedition_path owner_scope: same_owner | cross_owner purpose: explicit_learning_or_navigation_job condition: explicit_condition_or_always_within_scope evidence_required: true_or_false canonical_target: true_or_false bidirectional: true_or_false return_required: true_or_false return_target: castle_object_or_live_owner status: active | proposed | blocked confidence: verified | bounded | unknown
Road
type: road scope: same_owner job: normal progression within a Fort, hub, roadmap or coherent domain condition: destination remains inside source owner scope return_required: recommended_for_deep_rooms examples: science_hub -> primary_science mathematics_fort -> algebra_route learning_runtime -> mindos_state block_if: destination_is_actually_owned_by_another_domain
Bridge
type: bridge
scope: cross_owner
job: temporary or explicit capability handoff
condition: receiving_owner_has_real_job
required:
- bottleneck
- evidence
- handoff_job
- source_owner
- target_owner
- return_rule_when_source_remains_primary
block_if: only_shared_keyword_or_loose_similarity
examples:
science_fort -> english_fort
condition: science_concept_secure AND language_precision_is_bottleneck
mathematics_fort -> english_fort
condition: mathematical_structure_secure AND mathematical_language_is_bottleneck
subject_fort -> examination_fort
condition: subject_capability_secure AND constrained_deployment_is_weak
Return Road
type: return_road scope: owner_restoration_or_learner_return job: restore route after child page, workshop, bridge or intervention preferred_targets: - canonical_owner_hub - source_fort - /learning-castle/0019 - /learning-castle/0020 rule: every_deep_route_should_have_a_meaningful_return block_if: return_creates_new_competing_owner
Gate Road
type: gate_road scope: entry_or_narrowing job: move actor from arrival state to the correct decision junction examples: learner_gate -> gatehouse parent_gate -> gatehouse unknown_state -> first_weak_link_route condition: routing_question_is_unresolved return: canonical_owner_or_keep_after_resolution
Archive Road
type: archive_road scope: owner_to_enumeration_layer job: discovery, completeness, orphan control and reference ownership_transfer: false examples: science_fort -> complete_science_index future_math_fort -> complete_mathematics_index return_required: true return_target: owner_hub
Service Road
type: service_road scope: knowledge_or_need_to_teaching_service job: route genuine service intent without collapsing knowledge ownership open_if: intent = tuition_service OR learner_or_parent_explicitly_requests_teaching_help rules: knowledge_hub_remains_knowledge_owner tuition_page_remains_service_owner commercial_intent_does_not_rewrite_learning_architecture return: great_hall_or_subject_owner_as_context_requires
Expedition Path
type: expedition_path scope: bounded_multi_hop job: connect several owners for one complex learning question required: - origin - purpose - bounded_hops - owner_at_each_hop - reason_for_each_transition - final_return block_if: path_is_unbounded OR purpose_is_only_exploration_without_learning_job OR owner_boundaries_are_lost
Edge Validation Rules
validate_edge: source_exists = true target_exists = true source_owner_known = true target_owner_known = true type_matches_owner_scope = true purpose_is_explicit = true condition_is_valid = true evidence_present_if_required = true return_present_if_required = true no_duplicate_canonical_owner_created = true no_private_runtime_exposed = true fail_if_any_required_field_is_false
Edge Priority
when_multiple_edges_are_possible: 1. prefer canonical owner road 2. prefer smallest correct gate 3. prefer verified bridge over speculative relationship 4. prefer return road over dead end 5. prefer archive road for enumeration only 6. use service road only for genuine service intent 7. use expedition path only when single-owner routing is insufficient
Live Plumbing Interpretation
The existing eduKateSengkang menu and hub links are not treated as untyped historical links. Where they correspond to the Castle Registry, they should be interpreted as public Castle plumbing. A subject hub normally acts as an owner junction; I Am Brave acts as a main learner road; the Learning Runtime acts as Great Hall/runtime plumbing; the Science Index acts as an archive road destination; tuition hubs act as service-road destinations when service intent is explicit.
AI Edge Resolution Procedure
1. resolve source owner 2. resolve target owner 3. ask whether ownership changes 4. if no -> road 5. if yes and receiving owner has a real job -> bridge 6. if returning to owner or learner -> return_road 7. if entering a decision system -> gate_road 8. if enumerating -> archive_road 9. if explicit tuition intent -> service_road 10. if several justified hops are required -> expedition_path 11. otherwise do_not_create_edge