{
"id": "pics.2bit.feed.photo",
"defs": {
"gear": {
"type": "object",
"properties": {
"notes": {
"type": "string",
"maxLength": 300
},
"device": {
"type": "string",
"maxLength": 100,
"description": "e.g. 'Game Boy Camera (1998)', 'Analogue Pocket + GB Camera', 'Game Boy Pocket'"
},
"software": {
"type": "string",
"maxLength": 100,
"description": "e.g. emulator name, dithering tool/algorithm name"
},
"transferTool": {
"type": "string",
"maxLength": 100,
"description": "e.g. 'GB Camera Capture Cable', 'BennVenn cart reader'"
},
"captureMethod": {
"enum": [
"cartridge",
"emulator",
"software",
"other"
],
"type": "string"
}
},
"description": "Self-reported capture equipment/method. Optional, but encouraged - this is the whole hobby."
},
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"image",
"colors",
"createdAt"
],
"properties": {
"image": {
"type": "bytes",
"maxLength": 3584,
"minLength": 3584,
"description": "128x112 2bpp Game Boy Camera tile data: 16x14 tiles in row-major order, 16 bytes per tile (8 rows of low+high bit-plane bytes, MSB-first)."
},
"colors": {
"type": "array",
"items": {
"type": "integer",
"maximum": 16777215,
"minimum": 0
},
"maxLength": 4,
"minLength": 4,
"description": "Four 24-bit RGB colors (0 to 0xFFFFFF) corresponding to 2bpp pixel values 0 through 3, where 0 is lightest and 3 is darkest."
},
"metadata": {
"ref": "#metadata",
"type": "ref"
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "When this photo record was published."
}
}
},
"description": "A single 4-shade, low-resolution photo. The core record of 2bit.pics."
},
"metadata": {
"type": "object",
"properties": {
"alt": {
"type": "string",
"maxLength": 3000,
"description": "Alt text for accessibility.",
"maxGraphemes": 300
},
"gear": {
"ref": "#gear",
"type": "ref"
},
"caption": {
"type": "string",
"maxLength": 5000,
"description": "Free-text caption.",
"maxGraphemes": 500
},
"capturedAt": {
"type": "string",
"format": "datetime",
"description": "When the photograph was captured, if known."
}
},
"description": "Optional descriptive and capture metadata for the photo."
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}