package object // ObjectInterface defines the core interface for interactive objects type ObjectInterface interface { // Object identification IsObject() bool GetObjectType() string // Interaction capabilities IsClickable() bool SetClickable(bool) CanInteract() bool GetInteractionType() int // Device functionality GetDeviceID() int8 SetDeviceID(int8) // Merchant functionality IsMerchant() bool GetMerchantID() int32 SetMerchantID(int32) GetMerchantType() int8 SetMerchantType(int8) // Transport functionality IsTransporter() bool GetTransporterID() int32 SetTransporterID(int32) // Collector functionality IsCollector() bool SetCollector(bool) // Validation Validate() error } // ObjectManager interface for dependency injection type ObjectManagerInterface interface { AddObject(*Object) error RemoveObject(int32) error GetObject(int32) *Object GetObjectsByZone(string) []*Object GetObjectsByType(string) []*Object GetInteractiveObjects() []*Object GetMerchantObjects() []*Object GetTransportObjects() []*Object GetCollectorObjects() []*Object GetObjectCount() int Clear() GetObjectStatistics() ObjectStatistics }