protocol Repository
  func findById(_ id) → User?
  func save(_ user)
class UserService
  func getUser(id) → User?
  async func createUser(data) → User
struct User
enum UserRole
func hashPassword(_ password) → String
