SOURCE / PINNED RELEASE
Made of little things.
Outbreak: Soycoon City
- Release
- db7750b1d009…
- Author-recorded commit
- 3ee3f5fd27a6…
- License
- LICENSE
- Author’s source reference
- nostr://npub182jczunncwe0jn6frpqwq3e0qjws7yqqnc3auccqv9nte2dnd63scjm4rf/wss%3A%2F%2Fgit.napplet.soy%2F/n-b87c04571a9
Archive hash verified: dbebdc772b142a1c…. The source-to-build association is the author’s claim; it has not been independently rebuilt.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Soyindent Evil level v1",
"type": "object",
"properties": {
"$schema": {
"type": "string"
},
"version": {
"const": 1
},
"id": {
"type": "string",
"pattern": "^[a-zA-Z0-9_-]{1,64}$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"style": {
"type": "string",
"maxLength": 8000
},
"rules": {
"$ref": "#/$defs/rules"
},
"assets": {
"type": "array",
"items": {
"$ref": "#/$defs/asset"
},
"minItems": 0,
"maxItems": 96
},
"rooms": {
"type": "array",
"items": {
"$ref": "#/$defs/room"
},
"minItems": 1,
"maxItems": 16
}
},
"required": [
"version",
"name",
"style",
"rooms"
],
"additionalProperties": false,
"$defs": {
"point": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"z": {
"type": "number",
"minimum": -100,
"maximum": 100
}
},
"required": [
"x",
"z"
],
"additionalProperties": false
},
"rect": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"z": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"w": {
"type": "number",
"minimum": 0.1,
"maximum": 40
},
"d": {
"type": "number",
"minimum": 0.1,
"maximum": 40
}
},
"required": [
"x",
"z",
"w",
"d"
],
"additionalProperties": false
},
"prop": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"z": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"w": {
"type": "number",
"minimum": 0.1,
"maximum": 40
},
"d": {
"type": "number",
"minimum": 0.1,
"maximum": 40
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"kind": {
"enum": [
"shelf",
"desk",
"crate",
"wall",
"bench"
]
},
"h": {
"type": "number",
"minimum": 0.1,
"maximum": 3.2
}
},
"required": [
"x",
"z",
"w",
"d",
"id",
"kind",
"h"
],
"additionalProperties": false
},
"dressing": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"z": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"kind": {
"enum": [
"pinboard",
"photo",
"poster",
"papers",
"cleaning",
"pipes"
]
},
"side": {
"enum": [
"north",
"south",
"east",
"west"
]
}
},
"required": [
"x",
"z",
"id",
"kind"
],
"additionalProperties": false
},
"asset": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"url": {
"type": "string",
"minLength": 1,
"maxLength": 2048
},
"sha256": {
"type": "string",
"pattern": "^[a-f0-9]{64}$"
},
"mime": {
"enum": [
"image/png",
"image/jpeg",
"image/webp"
]
},
"size": {
"type": "integer",
"minimum": 1,
"maximum": 2000000
}
},
"required": [
"id",
"sha256",
"mime",
"size"
],
"additionalProperties": false
},
"camera": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"position": {
"type": "array",
"items": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"minItems": 3,
"maxItems": 3
},
"target": {
"type": "array",
"items": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"minItems": 3,
"maxItems": 3
},
"fov": {
"type": "number",
"minimum": 25,
"maximum": 90
},
"zone": {
"$ref": "#/$defs/zone"
},
"background": {
"type": "object",
"properties": {
"asset": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"signature": {
"type": "string",
"minLength": 1,
"maxLength": 100000
}
},
"required": [
"asset",
"signature"
],
"additionalProperties": false
},
"backdrop": {
"type": "string",
"minLength": 1,
"maxLength": 2800000
},
"artSignature": {
"type": "string"
},
"priority": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"door": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"fallback": {
"type": "boolean"
}
},
"required": [
"id",
"name",
"position",
"target",
"fov",
"zone"
],
"additionalProperties": false
},
"door": {
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"z": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"side": {
"enum": [
"north",
"south",
"east",
"west"
]
},
"to": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"targetDoor": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"x",
"z",
"id",
"side",
"to",
"targetDoor"
],
"additionalProperties": false
},
"room": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"description": {
"type": "string",
"maxLength": 4000
},
"w": {
"type": "number",
"minimum": 3,
"maximum": 30
},
"d": {
"type": "number",
"minimum": 3,
"maximum": 30
},
"origin": {
"$ref": "#/$defs/point"
},
"spawn": {
"$ref": "#/$defs/point"
},
"props": {
"type": "array",
"items": {
"$ref": "#/$defs/prop"
},
"minItems": 0,
"maxItems": 80
},
"dressing": {
"type": "array",
"items": {
"$ref": "#/$defs/dressing"
},
"minItems": 0,
"maxItems": 80
},
"cameras": {
"type": "array",
"items": {
"$ref": "#/$defs/camera"
},
"minItems": 1,
"maxItems": 12
},
"zombies": {
"type": "array",
"items": {
"$ref": "#/$defs/point"
},
"minItems": 0,
"maxItems": 20
},
"doors": {
"type": "array",
"items": {
"$ref": "#/$defs/door"
},
"minItems": 0,
"maxItems": 16
},
"herbs": {
"type": "array",
"items": {
"$ref": "#/$defs/herb"
},
"maxItems": 20
}
},
"required": [
"id",
"name",
"description",
"w",
"d",
"origin",
"spawn",
"props",
"cameras",
"zombies",
"doors"
],
"additionalProperties": false
},
"rules": {
"type": "object",
"properties": {
"playerHealth": {
"type": "number",
"minimum": 25,
"maximum": 100
},
"reserve": {
"type": "integer",
"minimum": 0,
"maximum": 96
},
"zombieHealth": {
"type": "integer",
"minimum": 1,
"maximum": 8
},
"zombieSpeed": {
"type": "number",
"minimum": 0.1,
"maximum": 2
},
"biteDamage": {
"type": "number",
"minimum": 1,
"maximum": 50
}
},
"required": [
"playerHealth",
"reserve",
"zombieHealth",
"zombieSpeed",
"biteDamage"
],
"additionalProperties": false
},
"polygon": {
"type": "object",
"properties": {
"points": {
"type": "array",
"items": {
"$ref": "#/$defs/point"
},
"minItems": 3,
"maxItems": 24
}
},
"required": [
"points"
],
"additionalProperties": false
},
"zone": {
"oneOf": [
{
"$ref": "#/$defs/rect"
},
{
"$ref": "#/$defs/polygon"
}
]
},
"herb": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"kind": {
"const": "green"
},
"x": {
"type": "number",
"minimum": -100,
"maximum": 100
},
"z": {
"type": "number",
"minimum": -100,
"maximum": 100
}
},
"required": [
"id",
"kind",
"x",
"z"
],
"additionalProperties": false
}
}
}
