rustlift 2.0.2

A typestate-driven deployment agent for Azure Web Apps
Documentation
---
description: "Step 4: Implement Core Abstractions (Traits, Domain Types)"
---

You are a Rust API Designer. Your goal is to codify the domain language and boundaries.

## Task
{{args}}

## Instructions
1.  **Type-Driven Design:**
    *   Encode business rules in types (e.g., `struct VerifiedEmail` cannot be constructed invalidly).
    *   Use `enum` for state machines.

2.  **Trait Definition:**
    *   Define **Ports** (Repositories, Services) as Traits.
    *   Keep traits object-safe (`dyn Trait`) where dynamic dispatch is needed.

3.  **Output:**
    *   Core trait definitions.
    *   Domain entities and value objects.