# dev.roe.project

> Published by [danielroe.dev](https://lexicon.garden/identity/did:plc:jbeaa5kdaladzwq3r7f5xgwe)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:jbeaa5kdaladzwq3r7f5xgwe/dev.roe.project)
- [Documentation](https://lexicon.garden/lexicon/did:plc:jbeaa5kdaladzwq3r7f5xgwe/dev.roe.project/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:jbeaa5kdaladzwq3r7f5xgwe/dev.roe.project/examples)

## Definitions

### `dev.roe.project`

**Type**: `record`

A project on the /projects page, belonging to a dev.roe.projectCategory.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `icon` | `string` | No | UnoCSS icon class, e.g. `i-ri:rocket-line`. Used when there is no image. |
| `name` | `string` | Yes |  |
| `links` | `array` | No | Relevant destinations for the project. The site links the card at the first `linkRoleWebsite`, falling back to the first link of any role. |
| `order` | `integer` | No | Lower values render first within the category. Defaults to 100 in the editor. |
| `images` | `array` | No | Visual assets for the project. The site renders the first `purposeScreenshot`, falling back to the first image of any purpose. |
| `status` | `ref` → `community.lexicon.app.defs#status` | No | Release or maintenance status. `unmaintained` and `discontinued` render the card as archived. |
| `category` | `ref` → `com.atproto.repo.strongRef` | Yes | Strong-ref to the parent dev.roe.projectCategory record. |
| `createdAt` | `string` (datetime) | Yes |  |
| `description` | `string` | No |  |

## Raw Schema

```json
{
  "id": "dev.roe.project",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "category",
          "name",
          "createdAt"
        ],
        "properties": {
          "icon": {
            "type": "string",
            "maxLength": 640,
            "description": "UnoCSS icon class, e.g. `i-ri:rocket-line`. Used when there is no image.",
            "maxGraphemes": 64
          },
          "name": {
            "type": "string",
            "maxLength": 2560,
            "maxGraphemes": 256
          },
          "links": {
            "type": "array",
            "items": {
              "ref": "community.lexicon.app.defs#link",
              "type": "ref"
            },
            "maxLength": 12,
            "description": "Relevant destinations for the project. The site links the card at the first `linkRoleWebsite`, falling back to the first link of any role."
          },
          "order": {
            "type": "integer",
            "default": 100,
            "description": "Lower values render first within the category. Defaults to 100 in the editor."
          },
          "images": {
            "type": "array",
            "items": {
              "ref": "community.lexicon.app.defs#image",
              "type": "ref"
            },
            "maxLength": 8,
            "description": "Visual assets for the project. The site renders the first `purposeScreenshot`, falling back to the first image of any purpose."
          },
          "status": {
            "ref": "community.lexicon.app.defs#status",
            "type": "ref",
            "description": "Release or maintenance status. `unmaintained` and `discontinued` render the card as archived."
          },
          "category": {
            "ref": "com.atproto.repo.strongRef",
            "type": "ref",
            "description": "Strong-ref to the parent dev.roe.projectCategory record."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          },
          "description": {
            "type": "string",
            "maxLength": 25000,
            "maxGraphemes": 2500
          }
        }
      },
      "description": "A project on the /projects page, belonging to a dev.roe.projectCategory."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
