Learning Castle Node Schema
This schema defines the uniform machine declaration for every important eduKateSengkang object inside the Learning Castle. A hub, page, room, workshop, tower, archive, gate, service node or Fort can use the same core fields so an AI can identify what the node is, who owns it, what it is allowed to do, where it may route, what evidence it requires, and where it returns.
schema_id: /learning-castle/0109 schema_version: 0.1 system: eduKateSengkang Learning Castle object_type: node runtime_parent: /learning-castle/0100 registry: /learning-castle/0101 edge_schema: /learning-castle/0104 return_schema: /learning-castle/0105 validation_schema: /learning-castle/0107 boot_protocol: /learning-castle/0108 principle: every_important_node_declares_identity_owner_job_and_return
Node Contract
node: castle_id: /learning-castle/#### live_url: canonical_or_current_url title: human_readable_name node_type: castle | fort | gate | gatehouse | hall | tower | quarter | workshop | training_yard | proving_ground | archive | room | service_owner | road_junction | runtime | schema canonical_owner: castle_id_or_live_owner parent: castle_id_or_live_owner primary_job: one_bounded_job domain: declared_domain_or_cross_domain actor_scope: learner | parent | teacher | public | ai | mixed learner_levels: declared_or_not_applicable learning_states: declared_or_not_applicable inbound_edge_types: allowed_types outbound_edge_types: allowed_types evidence_required: true_or_false bridge_permissions: declared_targets_or_none service_boundary: knowledge | service | mixed_but_separated | not_applicable public_private_boundary: public | private | public_safe_projection return_target: castle_id_or_live_owner status: active | developing | proposed | bounded | blocked confidence: verified | bounded | unknown
Required Fields
required_for_registered_node: castle_id live_url_or_explicit_non_url_object node_type canonical_owner primary_job return_target status required_when_cross_owner: bridge_permissions evidence_required required_when_learning_job: learning_states_or_capability_job return_target_toward_keep
Node-Type Permissions
fort: may_own_major_domain = true may_receive_many_routes = true may_cross_owner_without_bridge = false gate: may_decide_route = true may_own_major_domain = false gatehouse: may_narrow_and_route = true may_prescribe_without_evidence = false tower: may_observe = true may_claim_full_intervention_ownership = false workshop: may_build_or_repair_specific_capability = true may_replace_parent_owner = false archive: may_enumerate = true may_replace_owner = false service_owner: may_own_tuition_service = true may_replace_knowledge_owner = false room: may_serve_one_bounded_job = true may_claim_broader_hub_ownership = false
Canonical Owner Rule
owner_resolution: prefer explicit registry mapping then major live hub then specialist sub_hub then room_or_article node_must_not: create_duplicate_primary_owner claim_owner_status_from_keyword_overlap override_stronger_existing_hub
Edge Declaration
node_edges:
inbound:
- edge_id
- edge_type
- source
- condition
outbound:
- edge_id
- edge_type
- target
- condition
- return_target_if_required
rule:
every_cross_owner_outbound_edge_must_validate_against_/learning-castle/0104
Learning-State Declaration
learning_state_examples: missing_knowledge fragile_retrieval weak_representation weak_route_selection execution_error verification_weakness transfer_weakness examination_deployment_weakness unknown rule: node_should_declare_only_states_it_can_legitimately_receive_or_help
Live Node Examples
node: castle_id: /learning-castle/0009 live_url: https://edukatesengkang.com/science-hub/ title: Science Hub node_type: fort canonical_owner: /learning-castle/0009 primary_job: science_knowledge_and_capability_owner domain: science inbound_edge_types: road | gate_road | bridge outbound_edge_types: road | bridge | archive_road | return_road | service_road return_target: /learning-castle/0019 status: active confidence: verified node: castle_id: /learning-castle/0021 live_url: https://edukatesengkang.com/i-am-brave/ title: I Am Brave node_type: road_junction canonical_owner: /learning-castle/0001 primary_job: learner_facing_castle_movement domain: cross_domain inbound_edge_types: gate_road | return_road outbound_edge_types: gate_road | road | service_road return_target: /learning-castle/0019 status: active confidence: verified node: castle_id: /learning-castle/0018 live_url: https://edukatesengkang.com/science-hub/complete-science-index/ title: Complete Science Index node_type: archive canonical_owner: /learning-castle/0009 primary_job: science_enumeration_and_orphan_control domain: science inbound_edge_types: archive_road outbound_edge_types: return_road | road return_target: /learning-castle/0009 status: active confidence: verified
Node Registration Procedure
1. identify live object 2. check whether existing Castle ID already applies 3. resolve canonical owner 4. classify node type 5. declare one primary job 6. declare inbound and outbound edge permissions 7. declare evidence requirements if relevant 8. declare service and public/private boundaries 9. declare return target 10. validate against /learning-castle/0107 11. register only after validation
Node Validation
PASS if: identity_clear node_type_clear owner_clear primary_job_bounded edge_permissions_valid return_present WARNING if: owner_likely_but_not_yet_verified OR edge_permissions_incomplete FAIL if: duplicate_owner OR no_primary_job OR invalid_cross_owner_permission OR missing_required_return
AI Node Interpretation Rule
When an AI encounters an eduKateSengkang page that has not yet been explicitly registered, it should infer the smallest defensible node type, attach it provisionally to the nearest verified canonical owner, mark confidence as bounded, and avoid inventing a new Fort, hub or canonical owner unless the architecture demonstrates a genuine ownership gap.