# app.thatsit.typing.defs

- Kind: defs
- Authority: typing.thatsit.app
- Lexicon: 1
- Published by [thatsit.dev](https://lexicon.garden/identity/did:plc:tr7zlhacx3fete5s7cx5tyjd), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:tr7zlhacx3fete5s7cx5tyjd/app.thatsit.typing.defs)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:tr7zlhacx3fete5s7cx5tyjd/app.thatsit.typing.defs/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:tr7zlhacx3fete5s7cx5tyjd/app.thatsit.typing.defs/analytics)

## #char (`app.thatsit.typing.defs#char`)

Type: object

### Properties

- `char` (string, required)
  - Constraints: maxGraphemes: 4
- `keyId` (string, required)
  - Constraints: maxGraphemes: 100

## #charMap (`app.thatsit.typing.defs#charMap`)

Type: object

### Properties

- `chars` (array, required)
  - Constraints: maxLength: 200
  - `items` (ref)
    - Reference: `#char`

## #key (`app.thatsit.typing.defs#key`)

Type: object

### Properties

- `col` (integer, required)
- `h` (integer, required)
- `hand` (string, required)
  - Constraints: knownValues: l | r
- `keyId` (string, required)
  - Constraints: maxGraphemes: 100
- `label` (string)
  - Constraints: maxGraphemes: 20
- `rot` (integer, required)
- `row` (integer, required)
- `w` (integer, required)
- `x` (integer, required)
- `y` (integer, required)

## #keyGeometry (`app.thatsit.typing.defs#keyGeometry`)

Type: object

### Properties

- `keys` (array, required)
  - Constraints: maxLength: 200
  - `items` (ref)
    - Reference: `#key`
- `rowRoles` (array)
  - Constraints: maxLength: 32
  - `items` (string)
    - Constraints: knownValues: number | upper | home | lower | thumb | extra
- `split` (boolean)

## #keyStat (`app.thatsit.typing.defs#keyStat`)

Type: object

### Properties

- `bestMs16` (integer)
- `errors` (integer, required)
- `keyId` (string, required)
  - Constraints: maxGraphemes: 100
- `samples` (integer, required)
- `ttMs16` (integer, required)

## #keyStats (`app.thatsit.typing.defs#keyStats`)

Type: array

Constraints: maxLength: 200

### Items

- `keyStats` (array)
  - `items` (ref)
    - Reference: `#keyStat`

## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "char": {
      "properties": {
        "char": {
          "maxGraphemes": 4,
          "type": "string"
        },
        "keyId": {
          "maxGraphemes": 100,
          "type": "string"
        }
      },
      "required": [
        "keyId",
        "char"
      ],
      "type": "object"
    },
    "charMap": {
      "properties": {
        "chars": {
          "items": {
            "ref": "#char",
            "type": "ref"
          },
          "maxLength": 200,
          "type": "array"
        }
      },
      "required": [
        "chars"
      ],
      "type": "object"
    },
    "key": {
      "properties": {
        "col": {
          "type": "integer"
        },
        "h": {
          "type": "integer"
        },
        "hand": {
          "knownValues": [
            "l",
            "r"
          ],
          "type": "string"
        },
        "keyId": {
          "maxGraphemes": 100,
          "type": "string"
        },
        "label": {
          "maxGraphemes": 20,
          "type": "string"
        },
        "rot": {
          "type": "integer"
        },
        "row": {
          "type": "integer"
        },
        "w": {
          "type": "integer"
        },
        "x": {
          "type": "integer"
        },
        "y": {
          "type": "integer"
        }
      },
      "required": [
        "keyId",
        "hand",
        "row",
        "col",
        "x",
        "y",
        "w",
        "h",
        "rot"
      ],
      "type": "object"
    },
    "keyGeometry": {
      "properties": {
        "keys": {
          "items": {
            "ref": "#key",
            "type": "ref"
          },
          "maxLength": 200,
          "type": "array"
        },
        "rowRoles": {
          "items": {
            "knownValues": [
              "number",
              "upper",
              "home",
              "lower",
              "thumb",
              "extra"
            ],
            "type": "string"
          },
          "maxLength": 32,
          "type": "array"
        },
        "split": {
          "type": "boolean"
        }
      },
      "required": [
        "keys"
      ],
      "type": "object"
    },
    "keyStat": {
      "properties": {
        "bestMs16": {
          "type": "integer"
        },
        "errors": {
          "type": "integer"
        },
        "keyId": {
          "maxGraphemes": 100,
          "type": "string"
        },
        "samples": {
          "type": "integer"
        },
        "ttMs16": {
          "type": "integer"
        }
      },
      "required": [
        "keyId",
        "ttMs16",
        "samples",
        "errors"
      ],
      "type": "object"
    },
    "keyStats": {
      "items": {
        "ref": "#keyStat",
        "type": "ref"
      },
      "maxLength": 200,
      "type": "array"
    }
  },
  "id": "app.thatsit.typing.defs",
  "lexicon": 1
}
```
