Ownership Boundaries¶
This document defines the current C++ ownership boundaries for Andromeda. Use it when deciding whether a dependency should be a direct method call, a narrow interface call, or a native event/delegate.
Source Boundaries¶
Current runtime source boundaries:
Source/Andromeda/
Capabilities/ object capability contracts, shared capability events, and scan/package payload types
Core/ shared game-mode and text helpers
Player/ player pawn, controller, carry, and placement mode
Salvage/ salvage item actors, data, and salvage value helpers
Station/ station shell, station access, scan memory, and spawn points
UI/ HUD and widget behavior
Workstation/ workstation actors and workstation interaction surfaces
Unreal module files remain at Source/Andromeda/.
Dependency Rules¶
Direct method calls are allowed inside the same ownership boundary. This includes owner-to-required-native-component commands such as AAndromedaCharacter calling UAndromedaPlacementModeComponent or UAndromedaCarryComponent.
Cross-boundary state notifications should use native events/delegates when the sender should not know who listens. Examples include character focus changes feeding HUD prompts, station access changes feeding HUD station state through the station event subsystem, and prompt-capability changes refreshing HUD prompts.
Cross-boundary commands should use a narrow interface or explicit reference when exactly one target must perform work and the caller needs an immediate result. Examples include the player checking IAndromedaCarryableInterface before asking its own carry component to pick up the target item, and workstation screen components forwarding use commands to their owning workstation.
Required native components are assumed present and can be called directly by their owner. Optional/editor-assigned references, external pawn/controller lookups, widget classes, world actors, and Blueprint-authored assets still require guards.
Blueprints own assets, layout, class defaults, and tuning. C++ owns required gameplay component structure and rules. Do not add Blueprint Event Graph gameplay for maintained core flow.