# Variable: listing

```ts
const listing: object & Typed<{
  category?: string;
  condition?: "new" | "like-new" | "good" | "fair" | "for-parts";
  description?: string;
  images?: readonly object[];
  place?: {
     address?: {
        country?: string;
        locality?: string;
        postcode?: string;
        region?: string;
        street?: string;
     };
     cells?: readonly string[];
     lat?: number;
     lon?: number;
     name?: string;
  };
  price?: {
     amount: string;
     currency: string;
  };
  status?: "available" | "reserved" | "sold";
  title: string;
}>;
```

Defined in: [packages/core/src/schemas/library/money.ts:122](https://github.com/leifriksheim/minca/blob/main/core/src/schemas/library/money.ts#L122)

Something for sale, to give away or to lend.

## Type Declaration

### description

```ts
readonly description: "Something for sale, to give away or to lend." = 'Something for sale, to give away or to lend.';
```

### name

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

### schema

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

#### schema.properties

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

#### schema.properties.category

```ts
readonly category: object;
```

#### schema.properties.category.maxLength

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

#### schema.properties.category.minLength?

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

#### schema.properties.category.type

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

#### schema.properties.condition

```ts
readonly condition: object;
```

#### schema.properties.condition.enum

```ts
enum: ("new" | "like-new" | "good" | "fair" | "for-parts")[];
```

#### schema.properties.description

```ts
readonly description: object;
```

#### schema.properties.description.maxLength

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

#### schema.properties.description.minLength?

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

#### schema.properties.description.type

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

#### schema.properties.images

```ts
readonly images: object;
```

#### schema.properties.images.items

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

##### Type Declaration

###### properties

```ts
properties: object;
```

###### properties.alt

```ts
alt: object;
```

###### properties.alt.maxLength

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

###### properties.alt.minLength?

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

###### properties.alt.type

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

###### properties.blob

```ts
blob: object & object;
```

###### Type Declaration

###### properties

```ts
properties: object;
```

###### properties.hash

```ts
hash: ...;
```

###### properties.key

```ts
key: ...;
```

###### properties.mime

```ts
mime: ...;
```

###### properties.name

```ts
name: ...;
```

###### properties.salt

```ts
salt: ...;
```

###### properties.size

```ts
size: ...;
```

###### required

```ts
required: readonly [..., ..., ...];
```

###### type

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

###### x-kind

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

###### required

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

###### type

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

###### x-kind

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

#### schema.properties.images.maxItems

```ts
readonly maxItems: 12 = 12;
```

#### schema.properties.images.type

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

#### schema.properties.place

```ts
readonly place: object;
```

#### schema.properties.place.properties

```ts
properties: object;
```

#### schema.properties.place.properties.address

```ts
address: object;
```

#### schema.properties.place.properties.address.properties

```ts
properties: object;
```

#### schema.properties.place.properties.address.properties.country

```ts
country: object;
```

#### schema.properties.place.properties.address.properties.country.maxLength

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

#### schema.properties.place.properties.address.properties.country.minLength?

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

#### schema.properties.place.properties.address.properties.country.type

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

#### schema.properties.place.properties.address.properties.locality

```ts
locality: object;
```

#### schema.properties.place.properties.address.properties.locality.maxLength

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

#### schema.properties.place.properties.address.properties.locality.minLength?

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

#### schema.properties.place.properties.address.properties.locality.type

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

#### schema.properties.place.properties.address.properties.postcode

```ts
postcode: object;
```

#### schema.properties.place.properties.address.properties.postcode.maxLength

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

#### schema.properties.place.properties.address.properties.postcode.minLength?

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

#### schema.properties.place.properties.address.properties.postcode.type

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

#### schema.properties.place.properties.address.properties.region

```ts
region: object;
```

#### schema.properties.place.properties.address.properties.region.maxLength

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

#### schema.properties.place.properties.address.properties.region.minLength?

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

#### schema.properties.place.properties.address.properties.region.type

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

#### schema.properties.place.properties.address.properties.street

```ts
street: object;
```

#### schema.properties.place.properties.address.properties.street.maxLength

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

#### schema.properties.place.properties.address.properties.street.minLength?

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

#### schema.properties.place.properties.address.properties.street.type

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

#### schema.properties.place.properties.address.type

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

#### schema.properties.place.properties.cells

```ts
cells: object;
```

#### schema.properties.place.properties.cells.description

```ts
description: string = 'The geohash cells lat and lon are in, coarsest first: precisions 3, 4, 5 and 6';
```

#### schema.properties.place.properties.cells.items

```ts
items: object;
```

#### schema.properties.place.properties.cells.items.maxLength

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

#### schema.properties.place.properties.cells.items.minLength?

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

#### schema.properties.place.properties.cells.items.type

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

#### schema.properties.place.properties.cells.maxItems

```ts
maxItems: number = 8;
```

#### schema.properties.place.properties.cells.type

```ts
type: "array";
```

#### schema.properties.place.properties.lat

```ts
lat: object;
```

#### schema.properties.place.properties.lat.maximum

```ts
maximum: number = 90;
```

#### schema.properties.place.properties.lat.minimum

```ts
minimum: number = -90;
```

#### schema.properties.place.properties.lat.type

```ts
type: "number";
```

#### schema.properties.place.properties.lon

```ts
lon: object;
```

#### schema.properties.place.properties.lon.maximum

```ts
maximum: number = 180;
```

#### schema.properties.place.properties.lon.minimum

```ts
minimum: number = -180;
```

#### schema.properties.place.properties.lon.type

```ts
type: "number";
```

#### schema.properties.place.properties.name

```ts
name: object;
```

#### schema.properties.place.properties.name.maxLength

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

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

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

#### schema.properties.place.properties.name.type

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

#### schema.properties.place.type

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

#### schema.properties.price

```ts
readonly price: object & object;
```

##### Type Declaration

###### properties

```ts
properties: object;
```

###### properties.amount

```ts
amount: object;
```

###### properties.amount.maxLength

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

###### properties.amount.minLength?

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

###### properties.amount.type

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

###### properties.currency

```ts
currency: object;
```

###### properties.currency.maxLength

```ts
maxLength: number = 3;
```

###### properties.currency.minLength

```ts
minLength: number = 3;
```

###### properties.currency.type

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

###### required

```ts
required: readonly ["amount", "currency"];
```

###### type

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

###### x-kind

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

#### schema.properties.status

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

#### schema.properties.status.enum

```ts
enum: ("available" | "reserved" | "sold")[];
```

#### 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"];
```

#### schema.type

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

### title

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

### topics

```ts
readonly topics: readonly ["place.cells"];
```
