@startuml
skinparam shadowing false
skinparam packageStyle rectangle

title thalos-domain module map

package "thalos-domain" {
  package "Policies" {
    class IdentityPolicyEvaluator
    class PolicyContextDecision
  }
  package "TokenRules" {
    class TokenIssuancePolicy
    class TokenFallbackPolicy
  }
  package "Abstractions" {
    interface IIdentityDomainDecision
  }
}

package "building-block-identity" {
  class EvaluateIdentityPolicyRequest
  class IssueIdentityTokenRequest
}

EvaluateIdentityPolicyRequest ..> IdentityPolicyEvaluator
IssueIdentityTokenRequest ..> TokenIssuancePolicy

note bottom
Domain logic only.
No transport or persistence implementation.
end note
@enduml
