@startuml abstract class User <> abstract class Individual abstract class Agent Event "*" --> "1" User : Author > Event "*" -- "0..1" Agent : agent > Trade "*" -- "0..1" Agent : to > User "0..1" - "0..1" Agent : user < Agent <|-- Individual Individual <|-- Person Individual <|-- System Agent <|-- Organization Individual "*" -o "0..1" Organization (Individual, Organization) .. Membership class Membership { member_id } Individual "*" -o "0..1" Organization : activeOrg > @enduml