# @gzl10/nexus-plugin-links

> User bookmarks with public/private sharing.

## Entities

- **links** (collection): User-created bookmarks. Fields: title, url (up to 2048 chars), description, icon (MDI), is_public (default false), position (sort order), user_id (FK to users).

## Service API

Standard CRUD via engine auto-registration. No custom service class.

## Actions

None.

## CASL

- Subject: `Link`
- `*` (unauthenticated): read (only `is_public: true`)
- ADMIN: manage
- MANAGER: read
- EDITOR: create, read, update, delete (own, `user_id: ${user.id}`)
- CONTRIBUTOR: create, read (own)
- USER: create, read, update, delete (own)
- VIEWER: read (own)

## Notes

- Public links readable by everyone including unauthenticated users.
- Private links scoped to owner via `user_id`.
- Depends on `users` module (FK relationship).
