@startuml
hide empty members

struct Codebase
struct Module
struct Component
struct Core
struct DrivenAdapter as "Driven Adapter"
struct DrivingAdapter as "Driving Adapter"
struct Deliverable
struct Executable
struct Library
struct Client
struct API
struct Common
struct Integration

Codebase *--> "*" Module
Module *--> "*" Component

Component <|-- Core
Component <|-- DrivenAdapter
Component <|-- DrivingAdapter
Component <|-- Deliverable
Component <|-- API
Component <|-- Common
Component <|-- Integration

Deliverable <|-- Executable
Deliverable <|-- Library

DrivingAdapter <|-- Client
@enduml
