# roadmap_entry_destroy

Delete Roadmap Entry

## Beschreibung

Permanently deletes a roadmap entry. All of its project links
go with it. An `entry_destroyed` activity row is written to
the parent roadmap's feed so the deletion remains auditable
via `roadmap_activities`.

Two-step confirmation (deletion is not silent): the first call
— with `confirm` omitted or false — deletes NOTHING and
returns a preview (`confirm_required: true`) naming the entry.
Repeat with `confirm: true` to actually delete it. Surface the
preview to the user and get their go-ahead before confirming.

Destructive and NOT idempotent — once confirmed, calling it
again with the same id returns `not found or not accessible`.
Prefer setting `status: cancelled` via `roadmap_entry_save`
when you only want to mark work as discarded but keep the
historical record.

## Zugriff

Zugriffsprofil: `gated`. Module: `projects_tasks`.
Die Freigabe im Profil ersetzt keine Account-, Workspace- oder Rollenberechtigung.

## Parameter

| Name | Typ | Pflicht | Beschreibung |
| --- | --- | --- | --- |
| `account_id` | string | Ja |  |
| `id` | string | Ja | Entry prefix ID (rent_…). |
| `confirm` | boolean | Nein | Must be true to delete. Omit/false returns a dry-run preview and deletes nothing. |

## Eingabeschema

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "account_id": {
      "type": "string"
    },
    "id": {
      "type": "string",
      "description": "Entry prefix ID (rent_…)."
    },
    "confirm": {
      "type": "boolean",
      "description": "Must be true to delete. Omit/false returns a dry-run preview and deletes nothing."
    }
  },
  "required": [
    "account_id",
    "id"
  ],
  "type": "object"
}
```

## Ausgabeschema

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "deleted": {
      "type": "boolean",
      "description": "True once deleted; false on a preview."
    },
    "confirm_required": {
      "type": "boolean",
      "description": "True on a preview — call again with confirm: true to delete."
    },
    "id": {
      "type": "string",
      "description": "The entry's prefix ID, echoed back."
    },
    "title": {
      "type": "string",
      "description": "The entry's title (so the preview is human-readable)."
    }
  },
  "required": [
    "deleted",
    "id"
  ],
  "type": "object"
}
```
