# Deserialize
The `Deserialize` macro generates JSON deserialization methods with **cycle and
forward-reference support**, plus comprehensive runtime validation. This enables
safe parsing of complex JSON structures including circular references.
## Generated Output
| Type | Generated Code | Description |
|------|----------------|-------------|
| Class | `classNameDeserialize(input)` + `static deserialize(input)` | Standalone function + static factory method |
| Enum | `enumNameDeserialize(input)`, `enumNameDeserializeWithContext(data)`, `enumNameIs(value)` | Standalone functions |
| Interface | `interfaceNameDeserialize(input)`, etc. | Standalone functions |
| Type Alias | `typeNameDeserialize(input)`, etc. | Standalone functions |
## Return Type
All public deserialization methods return `Result<T, Array<{ field: string; message: string }>>`:
- `Result.ok(value)` - Successfully deserialized value
- `Result.err(errors)` - Array of validation errors with field names and messages