# Variable: profile

```ts
const profile: object & Typed<{
  avatar?: {
     hash: string;
     key?: string;
     mime: string;
     name?: string;
     salt?: string;
     size: number;
  };
  banner?: {
     hash: string;
     key?: string;
     mime: string;
     name?: string;
     salt?: string;
     size: number;
  };
  bio?: string;
  bot?: boolean;
  links?: readonly object[];
  name?: string;
  pronouns?: string;
}>;
```

Defined in: [packages/core/src/schemas/library/social.ts:17](https://github.com/leifriksheim/minca/blob/main/core/src/schemas/library/social.ts#L17)

How someone presents themselves: more than the name every space keeps for
them (`sys.profile`). One per person, and only theirs to write.

`bot` is the account saying it is software someone runs, not a person, so
apps can show it. It is the account's own word, like the rest: an honest
operator discloses with it, and it proves nothing about anyone who doesn't.

## Type Declaration

### description

```ts
readonly description: "How someone presents themselves: one per person." = 'How someone presents themselves: one per person.';
```

### name

```ts
readonly name: "std.profile" = 'std.profile';
```

### rules

```ts
readonly rules: object;
```

#### rules.onePer

```ts
readonly onePer: readonly ["@author"];
```

### schema

```ts
readonly schema: object;
```

#### schema.properties

```ts
readonly properties: object;
```

#### schema.properties.avatar

```ts
readonly avatar: object & object;
```

##### Type Declaration

###### properties

```ts
properties: object;
```

###### properties.hash

```ts
hash: object;
```

###### properties.hash.maxLength

```ts
maxLength: number = 64;
```

###### properties.hash.minLength

```ts
minLength: number = 64;
```

###### properties.hash.type

```ts
type: "string";
```

###### properties.key

```ts
key: object;
```

###### properties.key.maxLength

```ts
maxLength: number = 22;
```

###### properties.key.minLength

```ts
minLength: number = 22;
```

###### properties.key.type

```ts
type: "string";
```

###### properties.mime

```ts
mime: object;
```

###### properties.mime.maxLength

```ts
maxLength: number = max;
```

###### properties.mime.minLength?

```ts
minLength?: number = min;
```

###### properties.mime.type

```ts
type: "string";
```

###### properties.name

```ts
name: object;
```

###### properties.name.maxLength

```ts
maxLength: number = max;
```

###### properties.name.minLength?

```ts
minLength?: number = min;
```

###### properties.name.type

```ts
type: "string";
```

###### properties.salt

```ts
salt: object;
```

###### properties.salt.maxLength

```ts
maxLength: number = 22;
```

###### properties.salt.minLength

```ts
minLength: number = 22;
```

###### properties.salt.type

```ts
type: "string";
```

###### properties.size

```ts
size: object;
```

###### properties.size.minimum

```ts
minimum: number = 0;
```

###### properties.size.type

```ts
type: "integer";
```

###### required

```ts
required: readonly ["hash", "size", "mime"];
```

###### type

```ts
type: "object";
```

###### x-kind

```ts
readonly "x-kind": "file";
```

#### schema.properties.banner

```ts
readonly banner: object & object;
```

##### Type Declaration

###### properties

```ts
properties: object;
```

###### properties.hash

```ts
hash: object;
```

###### properties.hash.maxLength

```ts
maxLength: number = 64;
```

###### properties.hash.minLength

```ts
minLength: number = 64;
```

###### properties.hash.type

```ts
type: "string";
```

###### properties.key

```ts
key: object;
```

###### properties.key.maxLength

```ts
maxLength: number = 22;
```

###### properties.key.minLength

```ts
minLength: number = 22;
```

###### properties.key.type

```ts
type: "string";
```

###### properties.mime

```ts
mime: object;
```

###### properties.mime.maxLength

```ts
maxLength: number = max;
```

###### properties.mime.minLength?

```ts
minLength?: number = min;
```

###### properties.mime.type

```ts
type: "string";
```

###### properties.name

```ts
name: object;
```

###### properties.name.maxLength

```ts
maxLength: number = max;
```

###### properties.name.minLength?

```ts
minLength?: number = min;
```

###### properties.name.type

```ts
type: "string";
```

###### properties.salt

```ts
salt: object;
```

###### properties.salt.maxLength

```ts
maxLength: number = 22;
```

###### properties.salt.minLength

```ts
minLength: number = 22;
```

###### properties.salt.type

```ts
type: "string";
```

###### properties.size

```ts
size: object;
```

###### properties.size.minimum

```ts
minimum: number = 0;
```

###### properties.size.type

```ts
type: "integer";
```

###### required

```ts
required: readonly ["hash", "size", "mime"];
```

###### type

```ts
type: "object";
```

###### x-kind

```ts
readonly "x-kind": "file";
```

#### schema.properties.bio

```ts
readonly bio: object;
```

#### schema.properties.bio.maxLength

```ts
maxLength: number = max;
```

#### schema.properties.bio.minLength?

```ts
minLength?: number = min;
```

#### schema.properties.bio.type

```ts
type: "string";
```

#### schema.properties.bot

```ts
readonly bot: object;
```

#### schema.properties.bot.description

```ts
readonly description: "The account is software someone runs, not a person" = 'The account is software someone runs, not a person';
```

#### schema.properties.bot.type

```ts
readonly type: "boolean" = 'boolean';
```

#### schema.properties.links

```ts
readonly links: object;
```

#### schema.properties.links.items

```ts
readonly items: object;
```

#### schema.properties.links.items.properties

```ts
readonly properties: object;
```

#### schema.properties.links.items.properties.title

```ts
readonly title: object;
```

#### schema.properties.links.items.properties.title.maxLength

```ts
maxLength: number = max;
```

#### schema.properties.links.items.properties.title.minLength?

```ts
minLength?: number = min;
```

#### schema.properties.links.items.properties.title.type

```ts
type: "string";
```

#### schema.properties.links.items.properties.url

```ts
readonly url: object & object;
```

##### Type Declaration

###### maxLength

```ts
maxLength: number = max;
```

###### minLength?

```ts
minLength?: number = min;
```

###### type

```ts
type: "string";
```

###### x-kind

```ts
readonly "x-kind": "url";
```

#### schema.properties.links.items.required

```ts
readonly required: readonly ["url"];
```

#### schema.properties.links.items.type

```ts
readonly type: "object" = 'object';
```

#### schema.properties.links.maxItems

```ts
readonly maxItems: 16 = 16;
```

#### schema.properties.links.type

```ts
readonly type: "array" = 'array';
```

#### schema.properties.name

```ts
readonly name: object;
```

#### schema.properties.name.maxLength

```ts
maxLength: number = max;
```

#### schema.properties.name.minLength?

```ts
minLength?: number = min;
```

#### schema.properties.name.type

```ts
type: "string";
```

#### schema.properties.pronouns

```ts
readonly pronouns: object;
```

#### schema.properties.pronouns.maxLength

```ts
maxLength: number = max;
```

#### schema.properties.pronouns.minLength?

```ts
minLength?: number = min;
```

#### schema.properties.pronouns.type

```ts
type: "string";
```

#### schema.type

```ts
readonly type: "object" = 'object';
```

### title

```ts
readonly title: "Profile" = 'Profile';
```
