# net.alternativeproto.submission

> Published by [alternativeproto.net](https://lexicon.garden/identity/did:plc:zj3ek5g7p4gxvg6mcnxazar5)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:zj3ek5g7p4gxvg6mcnxazar5/net.alternativeproto.submission)
- [Documentation](https://lexicon.garden/lexicon/did:plc:zj3ek5g7p4gxvg6mcnxazar5/net.alternativeproto.submission/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:zj3ek5g7p4gxvg6mcnxazar5/net.alternativeproto.submission/examples)

## Definitions

### `net.alternativeproto.submission`

**Type**: `record`

A user submission of a project to AlternativeProto

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `url` | `string` (uri) | Yes | The project URL |
| `icon` | `blob` | No | Project icon image blob |
| `name` | `string` | Yes | The project name |
| `tags` | `array` | No | Tags for categorization |
| `authType` | `string` | Yes | Authentication method used by the project |
| `createdAt` | `string` (datetime) | Yes | Timestamp when the submission was created |
| `description` | `string` | Yes | Description of the project |
| `isOpenSource` | `boolean` | No | Whether the project is open source |
| `alternativeTo` | `array` | No | Services this project is an alternative to |
| `repositoryUrl` | `string` (uri) | No | Source code repository URL |

## Raw Schema

```json
{
  "id": "net.alternativeproto.submission",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "name",
          "description",
          "url",
          "authType",
          "createdAt"
        ],
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "description": "The project URL"
          },
          "icon": {
            "type": "blob",
            "accept": [
              "image/png",
              "image/jpeg",
              "image/webp",
              "image/svg+xml",
              "image/x-icon",
              "image/vnd.microsoft.icon"
            ],
            "maxSize": 1000000,
            "description": "Project icon image blob"
          },
          "name": {
            "type": "string",
            "maxLength": 200,
            "description": "The project name"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 50
            },
            "description": "Tags for categorization"
          },
          "authType": {
            "type": "string",
            "description": "Authentication method used by the project",
            "knownValues": [
              "oauth",
              "app-password",
              "none"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp when the submission was created"
          },
          "description": {
            "type": "string",
            "maxLength": 5000,
            "description": "Description of the project"
          },
          "isOpenSource": {
            "type": "boolean",
            "description": "Whether the project is open source"
          },
          "alternativeTo": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 100
            },
            "description": "Services this project is an alternative to"
          },
          "repositoryUrl": {
            "type": "string",
            "format": "uri",
            "description": "Source code repository URL"
          }
        }
      },
      "description": "A user submission of a project to AlternativeProto"
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
