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

# Ejemplos

> Usa un preset oficial o escribe el tuyo.

## Usa un preset

La mayoría de las políticas de cumplimiento comunes ya están
publicadas como **presets oficiales** — rulesets curados y versionados
que mantenemos nosotros. Lístalos con:

```bash theme={null}
GET /v1/rulesets?tag=preset
```

Luego invoca cualquier preset por su `ruleset_id`. No necesitas
escribir un ruleset desde cero para estos casos.

Algunos de los presets más usados:

| `ruleset_id`                           | Qué verifica                                                                              |
| -------------------------------------- | ----------------------------------------------------------------------------------------- |
| `br-bacen-cmn-5193-credito-rural@1`    | Elegibilidad de crédito rural en Brasil según la Resolución CMN 5193 (geo + documental).  |
| `br-funai-tis-intersects@1`            | Superposición con tierras indígenas FUNAI (Brasil).                                       |
| `br-icmbio-ucs-federais-intersects@1`  | Superposición con unidades de conservación federales del ICMBio (Brasil).                 |
| `br-ibama-embargos-intersects@1`       | Superposición con el registro de embargos del IBAMA.                                      |
| `br-mte-lista-suja-subject@1`          | Coincidencia con la lista sucia del MTE de trabajo esclavo (CNPJ/CPF).                    |
| `global-ofac-sdn-subject@1`            | Coincidencia con la lista OFAC SDN.                                                       |
| `eu-eudr-br-due-diligence-composite@1` | Composite EUDR de debida diligencia para Brasil (deforestación + áreas protegidas + TIs). |
| `eu-natura2000-combined-intersects@1`  | Superposición con Natura 2000 de la UE (SAC + SPA).                                       |
| `global-wdpa-intersects@1`             | Superposición con la World Database on Protected Areas.                                   |

Llamada:

```bash theme={null}
curl -X POST https://api-attestly.code4source.com/v1/evaluate \
  -H "Authorization: Bearer atk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "geometry": {
        "type": "Polygon",
        "coordinates": [[[-60,-3],[-60,-2],[-59,-2],[-59,-3],[-60,-3]]]
      }
    },
    "ruleset_id": "br-funai-tis-intersects@1"
  }'
```

Los presets de subject toman un identificador en lugar de (o junto a)
una geometría:

```json theme={null}
{
  "input": {
    "scheme": { "type": "br:cnpj", "value": "00.000.000/0001-91" }
  },
  "ruleset_id": "br-mte-lista-suja-subject@1"
}
```

## Cuándo escribir el tuyo

Escribe un ruleset propio solo si ningún preset encaja:

* Tu jurisdicción no está cubierta por un preset oficial.
* Necesitas umbrales, distancias de buffer o severidades no estándar.
* Necesitas evaluar contra una fuente interna que ingestaste de forma privada.
* Combinas verificaciones entre fuentes con una política de veredicto a medida.

Para todo lo demás, prefiere un preset — están mantenidos, versionados
y sincronizados con los registros de origen.

## Ejemplo personalizado

Una política de "buffer alrededor de un área protegida" con una
proyección de distancia, un check de threshold y una política de
veredicto explícita. Ningún preset existente cubre el patrón
"advertir entre 500 m y 2 km, bloquear bajo 500 m".

```json theme={null}
{
  "name": "uc-proximity-policy",
  "version": 1,

  "sets": {
    "nearby_uc": {
      "source": "icmbio_ucs_federais",
      "joins": [{ "dwithin": { "target": "$input", "max_m": 2000 } }]
    }
  },

  "projections": [
    {
      "id": "distance_to_uc_m",
      "terminal": { "type": "min_distance_m", "set": "$nearby_uc" }
    }
  ],

  "checks": [
    {
      "id": "uc_too_close",
      "severity": "critical",
      "predicate": {
        "type": "threshold",
        "projection": "distance_to_uc_m",
        "op": "<=",
        "value": 500
      }
    },
    {
      "id": "uc_buffer_zone",
      "severity": "medium",
      "predicate": {
        "type": "threshold",
        "projection": "distance_to_uc_m",
        "op": "<=",
        "value": 2000
      }
    }
  ],

  "verdict_policy": {
    "kind": "severity_mapping",
    "rules": {
      "critical": "non_compliant",
      "high":     "non_compliant",
      "medium":   "warning",
      "low":      "warning",
      "info":     "compliant"
    }
  }
}
```

Todos los demás ejemplos históricos de esta página fueron reemplazados
por presets oficiales — ver la tabla anterior.
