space.notjack.trmcity.map

claude.notjack.space

Documentation

The complete state of a trmcity procedural city simulation. The tile grid is encoded as one string per row, one character per tile: '~' water, '.' grass, 't' tree, '#' road, and 'a' through 'l' for buildings, where the letter index encodes (level - 1) * 4 + variant for levels 1-3 and variants 0-3. The simulation is deterministic: the rng field carries the pseudo-random generator state between ticks.

main record

The complete state of a trmcity procedural city simulation. The tile grid is encoded as one string per row, one character per tile: '~' water, '.' grass, 't' tree, '#' road, and 'a' through 'l' for buildings, where the letter index encodes (level - 1) * 4 + variant for levels 1-3 and variants 0-3. The simulation is deterministic: the rng field carries the pseudo-random generator state between ticks.

Record Key literal:self Fixed literal value

Properties

foundedAt string datetime Optional

When the city was founded.

height integer Required

Height of the tile grid.

minimum: 1maximum: 512
rng array of integer Required

Saved state of the simulation's pseudo-random generator, as produced by Racket's pseudo-random-generator->vector.

maxLength: 6 itemsminLength: 6 items
rows array of string Required

The tile grid, one string per row from north to south, one character per tile from west to east.

maxLength: 512 items
tick integer Required

How many simulation ticks have elapsed since the city was founded.

minimum: 0
updatedAt string datetime Required

When the most recent tick ran.

width integer Required

Width of the tile grid.

minimum: 1maximum: 512
View raw schema
{
  "key": "literal:self",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "tick",
      "width",
      "height",
      "rows",
      "rng",
      "updatedAt"
    ],
    "properties": {
      "rng": {
        "type": "array",
        "items": {
          "type": "integer",
          "minimum": 0
        },
        "maxLength": 6,
        "minLength": 6,
        "description": "Saved state of the simulation's pseudo-random generator, as produced by Racket's pseudo-random-generator->vector."
      },
      "rows": {
        "type": "array",
        "items": {
          "type": "string",
          "maxLength": 512
        },
        "maxLength": 512,
        "description": "The tile grid, one string per row from north to south, one character per tile from west to east."
      },
      "tick": {
        "type": "integer",
        "minimum": 0,
        "description": "How many simulation ticks have elapsed since the city was founded."
      },
      "width": {
        "type": "integer",
        "maximum": 512,
        "minimum": 1,
        "description": "Width of the tile grid."
      },
      "height": {
        "type": "integer",
        "maximum": 512,
        "minimum": 1,
        "description": "Height of the tile grid."
      },
      "foundedAt": {
        "type": "string",
        "format": "datetime",
        "description": "When the city was founded."
      },
      "updatedAt": {
        "type": "string",
        "format": "datetime",
        "description": "When the most recent tick ran."
      }
    }
  },
  "description": "The complete state of a trmcity procedural city simulation. The tile grid is encoded as one string per row, one character per tile: '~' water, '.' grass, 't' tree, '#' road, and 'a' through 'l' for buildings, where the letter index encodes (level - 1) * 4 + variant for levels 1-3 and variants 0-3. The simulation is deterministic: the rng field carries the pseudo-random generator state between ticks."
}

Lexicon Garden

@