> ## Documentation Index
> Fetch the complete documentation index at: https://docs.law4devs.eu/llms.txt
> Use this file to discover all available pages before exploring further.

# Requirements

> Query compliance requirements with the Flutter SDK.

## Overview

Requirements are structured compliance obligations extracted from regulatory articles. Filter by framework to scope results.

***

## Methods

### `list()`

```dart theme={null}
Future<Page<Requirement>> list({String? frameworkSlug, int? page, int? perPage})
```

### `iter()`

```dart theme={null}
Stream<Requirement> iter({String? frameworkSlug, int perPage = 20})
```

***

## Model

### `Requirement`

| Field             | Type      | Description        |
| ----------------- | --------- | ------------------ |
| `id`              | `int`     | Internal ID        |
| `frameworkSlug`   | `String`  | Source framework   |
| `articleNumber`   | `String`  | Article reference  |
| `title`           | `String?` | Optional title     |
| `description`     | `String`  | Requirement text   |
| `requirementType` | `String`  | Obligation type    |
| `stakeholder`     | `String?` | Target stakeholder |

***

## Examples

### All requirements across all frameworks

```dart theme={null}
await for (final r in client.requirements.iter()) {
  print('[${r.frameworkSlug.toUpperCase()}] Art. ${r.articleNumber}: ${r.description}');
}
```

### Requirements for a specific framework

```dart theme={null}
await for (final r in client.requirements.iter(frameworkSlug: 'cra')) {
  print('[${r.requirementType}] ${r.description}');
}
```

### Paginated request

```dart theme={null}
final page = await client.requirements.list(frameworkSlug: 'nis2', perPage: 50);
print('${page.meta.total} NIS2 requirements');
```
