# Variable: proposal

```ts
const proposal: object & Typed<{
  body?: string;
  closesAt?: string;
  options: readonly string[];
  quorum?: number;
  status?: "open" | "passed" | "rejected" | "withdrawn";
  title: string;
}>;
```

Defined in: [packages/core/src/schemas/library/community.ts:68](https://github.com/leifriksheim/minca/blob/main/core/src/schemas/library/community.ts#L68)

Something put to the group to decide, by a `std.ballot` on one of its options each.

## Type Declaration

### description

```ts
readonly description: "Something put to the group to decide: people cast a std.ballot on its options, and a std.decision proves the outcome. For a quick question, use std.poll." = 'Something put to the group to decide: people cast a std.ballot on its options, and a std.decision proves the outcome. For a quick question, use std.poll.';
```

### name

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

### rules

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

#### rules.fixed

```ts
readonly fixed: readonly ["options"];
```

### schema

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

#### schema.properties

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

#### schema.properties.body

```ts
readonly body: object;
```

#### schema.properties.body.maxLength

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

#### schema.properties.body.minLength?

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

#### schema.properties.body.type

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

#### schema.properties.closesAt

```ts
readonly closesAt: object & object;
```

##### Type Declaration

###### maxLength

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

###### minLength?

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

###### type

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

###### x-kind

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

#### schema.properties.options

```ts
readonly options: object;
```

#### schema.properties.options.items

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

#### schema.properties.options.items.maxLength

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

#### schema.properties.options.items.minLength?

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

#### schema.properties.options.items.type

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

#### schema.properties.options.maxItems

```ts
readonly maxItems: 20 = 20;
```

#### schema.properties.options.minItems

```ts
readonly minItems: 1 = 1;
```

#### schema.properties.options.type

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

#### schema.properties.quorum

```ts
readonly quorum: object;
```

#### schema.properties.quorum.maximum?

```ts
maximum?: number = max;
```

#### schema.properties.quorum.minimum

```ts
minimum: number = min;
```

#### schema.properties.quorum.type

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

#### schema.properties.status

```ts
readonly status: object;
```

#### schema.properties.status.enum

```ts
enum: ("open" | "passed" | "rejected" | "withdrawn")[];
```

#### schema.properties.title

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

#### schema.properties.title.maxLength

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

#### schema.properties.title.minLength?

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

#### schema.properties.title.type

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

#### schema.required

```ts
readonly required: readonly ["title", "options"];
```

#### schema.type

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

### title

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