@startuml skinparam packageStyle rectangle package "thalos-service" { package "Thalos.Service.Identity.Abstractions" { class IssueIdentityTokenRequest class IssueIdentityTokenResponse class EvaluateIdentityPolicyRequest class EvaluateIdentityPolicyResponse class IdentityPolicyContextRequest class IdentityPolicyContextResponse class ThalosIdentityPackageContract interface IdentityAbstractionBoundary } package "Thalos.Service.Application" { interface IIssueIdentityTokenUseCase class IssueIdentityTokenUseCase interface IEvaluateIdentityPolicyUseCase class EvaluateIdentityPolicyUseCase interface IIdentityTokenReadPort interface IIdentityPolicyContextReadPort interface IIdentityCapabilityContractAdapter interface IIdentityPolicyGrpcContractAdapter } package "Thalos.Service.Grpc" { class Program } } package "thalos-dal" as ThalosDal IIdentityPolicyContextReadPort ..> ThalosDal IIdentityTokenReadPort ..> ThalosDal @enduml