# dev.mccue.jvm.module

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

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:dt7fth2hmap6wya7uyyl2g3v/dev.mccue.jvm.module)
- [Documentation](https://lexicon.garden/lexicon/did:plc:dt7fth2hmap6wya7uyyl2g3v/dev.mccue.jvm.module/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:dt7fth2hmap6wya7uyyl2g3v/dev.mccue.jvm.module/examples)

## Definitions

### `dev.mccue.jvm.module#url`

**Type**: `object`

Url where a module was sourced from. May be a package url such as pkg:maven/org.slf4j/slf4j-api@2.0.18 or a "normal" url like https://download.oracle.com/java/25/latest/jdk-25_windows-x64_bin.zip.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `url` | `string` | Yes |  |

### `dev.mccue.jvm.module`

**Type**: `record`

A JVM Module published for wider consumption.

**Key**: `any`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `indexMe` | `boolean` | No |  |
| `variants` | `array` | Yes | Variants of the same module at the same 'version' |
| `createdAt` | `string` (datetime) | Yes |  |

### `dev.mccue.jvm.module#variant`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `license` | `string` | No | SPDX License String |
| `artifact` | `blob` | Yes |  |
| `attributes` | `array` | No |  |
| `sourcedFrom` | `union` | No | A reference to where this module was copied from. |

### `dev.mccue.jvm.module#attribute`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `name` | `string` | Yes |  |
| `value` | `string` | Yes |  |

## Raw Schema

```json
{
  "id": "dev.mccue.jvm.module",
  "defs": {
    "url": {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string"
        }
      },
      "description": "Url where a module was sourced from. May be a package url such as pkg:maven/org.slf4j/slf4j-api@2.0.18 or a \"normal\" url like https://download.oracle.com/java/25/latest/jdk-25_windows-x64_bin.zip."
    },
    "main": {
      "key": "any",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "variants",
          "createdAt"
        ],
        "properties": {
          "indexMe": {
            "type": "boolean",
            "default": false
          },
          "variants": {
            "type": "array",
            "items": {
              "ref": "dev.mccue.jvm.module#variant",
              "type": "ref"
            },
            "minLength": 1,
            "description": "Variants of the same module at the same 'version'"
          },
          "createdAt": {
            "type": "string",
            "format": "datetime"
          }
        }
      },
      "description": "A JVM Module published for wider consumption."
    },
    "variant": {
      "type": "object",
      "required": [
        "artifact"
      ],
      "properties": {
        "license": {
          "type": "string",
          "description": "SPDX License String"
        },
        "artifact": {
          "type": "blob",
          "accept": [
            "application/zip",
            "application/java-archive"
          ],
          "maxSize": 10000000
        },
        "attributes": {
          "type": "array",
          "items": {
            "ref": "dev.mccue.module#attribute",
            "type": "ref"
          }
        },
        "sourcedFrom": {
          "refs": [
            "com.atproto.repo.strongRef",
            "dev.mccue.jvm.module#url"
          ],
          "type": "union",
          "description": "A reference to where this module was copied from."
        }
      }
    },
    "attribute": {
      "type": "object",
      "required": [
        "name",
        "value"
      ],
      "properties": {
        "name": {
          "type": "string"
        },
        "value": {
          "type": "string"
        }
      }
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
