@startuml
skinparam backgroundColor white
skinparam defaultTextAlignment left
skinparam ArrowColor #111111
skinparam PackageBorderColor #111111
skinparam PackageBackgroundColor #F8F8F8
skinparam RectangleBorderColor #111111
skinparam RectangleFontColor #111111
skinparam RectangleBackgroundColor #FFF7E6
skinparam NoteBackgroundColor #FFFDEB
skinparam NoteBorderColor #111111

package "Runtime (server stack)" {
  rectangle "UserManagementPlugin\nGET /email/list\nGET /change-email/verify" as runtime_user #E8F5FF
  rectangle "AdminPlugin\n/admin/email*\n/admin/email-failure*\n/admin/email-template*" as runtime_admin #E8F5FF
}

package "Contracts" {
  rectangle "athena-auth.yaml\nMissing /email/list\nMissing /change-email/verify" as spec_athena #FFEAEA
  rectangle "openapi.yaml\nLegacy /auth/* focus\nNo admin email routes" as spec_openapi #FFEAEA
}

package "Tests" {
  rectangle "compat_coverage_tests\ncreate_test_auth()" as test_cov #FFF5CC
  rectangle "compat_endpoint_tests\nNo /email/list assertion" as test_endpoint #FFF5CC
  rectangle "compatibility_tests\nNo explicit email-route gate" as test_contract #FFF5CC
}

runtime_user --> spec_athena : route drift
runtime_admin --> spec_openapi : route drift
spec_athena --> test_cov : spec parsed
spec_athena --> test_endpoint : schema lookup
runtime_user --> test_endpoint : 404 on /email/list
runtime_admin --> test_contract : not asserted

note right of runtime_user
Server had email routes that were not fully
represented in spec + compat tests.
end note

@enduml
