@adatechnology/game-items-goods 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +53 -2
- package/dist/index.d.ts +120 -0
- package/dist/index.global.js +15568 -0
- package/dist/index.global.js.map +1 -0
- package/dist/index.js +15160 -0
- package/dist/index.js.map +1 -0
- package/package.json +52 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../../game-contracts/src/impact.ts","../../game-contracts/src/body.ts","../../game-contracts/src/spec.ts","../../game-contracts/src/weapons.ts","../../game-contracts/src/animation.ts","../../game-contracts/src/tool-animation.ts","../../game-contracts/src/registry.ts","../../game-contracts/src/bench.ts","../../game-items/src/create-items.ts","../../game-items/src/categories.ts","../../game-items/src/types.ts","../../game-items/src/check-items.ts","../../game-items/src/rules.ts","../../game-items/src/decay.ts","../../game-items/src/protection.ts","../../game-items/src/carry.ts","../../game-items/src/use-effect.ts","../../game-items/src/recipes.ts","../../game-items/src/finds/depletion.ts","../../game-items/src/finds/rarity-pool.ts","../../game-items/src/finds/category-roll.ts","../../game-items/src/finds/explicit-pool.ts","../../game-items/src/finds/provider.ts","../../game-items/src/finds/spawn-state.ts","../../game-items/src/finds/place-finds.ts","../../game-items/src/finds/loot-tables.ts","../../game-items/src/arsenal-items.ts","../src/floorplan.ts","../src/data/ammo-boxes.json","../src/data/categories.json","../src/data/containers.json","../src/data/depletion.json","../src/data/house-pools.json","../src/data/items.json","../src/data/melee.json","../src/data/places.json","../src/data/provenance.json","../src/data/rarities.json","../src/data/recipes.json","../src/data/spawn.json","../src/data/storage.json","../src/data/use-effects.json","../src/data.ts","../src/pack.ts","../src/data/locales/en.json","../src/data/locales/pt-BR.json","../src/locale.ts"],"sourcesContent":["export { createGoodsItems, goodsPack } from './pack'\nexport {\n GOODS_ARSENAL_RECORDS,\n GOODS_CATEGORIES,\n GOODS_CONTAINERS,\n GOODS_HOUSE_POOLS,\n GOODS_ITEMS,\n GOODS_PLACES,\n GOODS_PROVENANCE,\n GOODS_RECIPES,\n GOODS_TABLES,\n GOODS_USE_EFFECTS,\n} from './data'\nexport type { DepletionRow, HousePools, ItemProvenance, MeleeRow, RarityRow, StorageRow } from './data'\nexport { GOODS_STRINGS, goodsText, pickGoodsLocale } from './locale'\nexport type { GoodsLocale, GoodsStrings } from './locale'\nexport { createGoodsFindsProvider, FLOORPLAN_PLACES, FLOORPLAN_POOL_ALIASES, FLOORPLAN_POOL_KEYS, POOL_PLACES } from './floorplan'\n","import type { DamageType, DestructibleSpec, DestructionEvent, Hit, JointSpec, ObjectState, ToolKind, Vec3 } from './destruction'\n\n/**\n * What a game module implements for an object whose behaviour it owns (a vehicle with its own panel deformation, a creature, a machine). The\n * world (`DestructionWorld.register`) hosts it next to its own objects: raycast, shoot, explode, hit, disassemble, extinguish, update, state,\n * reset and `on` all route to it.\n *\n * Space: the impl receives hits in WORLD space and returns events in WORLD space (it owns its transform; the transform given to `register` or\n * `setTransform` is only used by the world for raycasts and blast range). Every event must carry `object === id` and name parts listed by\n * `describe()`.\n */\nexport interface DestructibleImpl {\n readonly id: string\n readonly name?: string\n /** Parts, joints and structure in the impl's local space, for raycast, inspector and log. Called often: keep it cheap. */\n describe(): DestructibleSpec\n /** Apply one hit (see `IMPACT_CONTRACT` for the fields per type) and return the events it caused. */\n hit(hit: Hit): DestructionEvent[]\n /** Advance fire, melting, collapse and other timed behaviour. */\n update?(dt: number): DestructionEvent[]\n state(): ObjectState\n reset?(): void\n /** Same contract as `DestructionWorld.disassemble`: progress 0..1, or -1 when the tool cannot undo the joint. */\n disassemble?(jointId: string, tool: ToolKind, dt: number): number\n extinguish?(partId?: string): void\n /** Optional: an animation moved a part; `position` / `rotation` (Euler XYZ, radians) are object-local. Keep raycast and hit shapes in sync. */\n setPartPose?(partId: string, position: Vec3, rotation?: Vec3): void\n /** Plain JSON of the impl's own state, stored in `DestructionSnapshot.impls`. */\n serialize?(): unknown\n load?(data: unknown): void\n}\n\n/** The fields a weapon or hazard must put in a `Hit`, per damage type. THE impact contract. */\nexport interface ImpactContract {\n required: string[]\n optional: string[]\n note: string\n}\n\nexport const IMPACT_CONTRACT: Record<DamageType, ImpactContract> = {\n ballistic: { required: ['type', 'point', 'direction', 'energy', 'caliber'], optional: ['space', 'source'], note: 'bullets and pellets: joules and diameter in millimetres' },\n blunt: { required: ['type', 'point', 'energy'], optional: ['direction', 'radius', 'space', 'source'], note: 'contact radius in metres (default 3 cm)' },\n slash: { required: ['type', 'point', 'energy'], optional: ['direction', 'radius', 'space', 'source'], note: 'axes, knives, machetes' },\n explosive: { required: ['type', 'point', 'energy', 'radius'], optional: ['space', 'source'], note: 'point is the centre of the blast, radius the range in metres' },\n fire: { required: ['type', 'point', 'temperature', 'radius'], optional: ['duration', 'space', 'source'], note: 'flame temperature in °C; duration in seconds (call every frame with `dt`)' },\n heat: { required: ['type', 'point', 'temperature', 'radius'], optional: ['duration', 'space', 'source'], note: 'heat without flame (cutting torch, hot plate)' },\n}\n\n/** Problems with a hit according to the impact contract (empty when it is valid). */\nexport const checkHit = (hit: Hit): string[] => {\n const c = IMPACT_CONTRACT[hit.type]\n if (!c) return [`unknown damage type \"${String(hit.type)}\"`]\n const out: string[] = []\n for (const f of c.required) {\n const v = (hit as unknown as Record<string, unknown>)[f]\n if (v === undefined || (Array.isArray(v) ? v.some((n) => !Number.isFinite(n)) : typeof v === 'number' && !Number.isFinite(v))) out.push(`${hit.type} hit needs \"${f}\"`)\n }\n return out\n}\n\nexport interface CheckOptions {\n /**\n * Ids of every material the impl may use (the contracts package does not know the materials of your world: pass the ids of\n * `world.materials`, or the built-in plus your own). When omitted, the material check is skipped.\n */\n materials?: Iterable<string>\n}\n\nconst finiteJson = (v: unknown, path: string, out: string[]) => {\n if (typeof v === 'number') {\n if (!Number.isFinite(v)) out.push(`${path} is not a finite number`)\n } else if (Array.isArray(v)) v.forEach((x, i) => finiteJson(x, `${path}[${i}]`, out))\n else if (v && typeof v === 'object') for (const [k, x] of Object.entries(v)) finiteJson(x, `${path}.${k}`, out)\n else if (typeof v === 'function' || typeof v === 'symbol' || typeof v === 'bigint') out.push(`${path} is not JSON`)\n}\n\n/**\n * Contract checker for the test room (it needs no world): `describe()` is valid, a 500 J ballistic hit at a part centre returns well-formed events of this impl, `state()`\n * matches `describe()`, hit points never go negative, `update(0.016)` returns an array and every event is JSON-serializable. It hits the impl\n * (and calls `reset()` afterwards when there is one).\n */\nexport const checkDestructible = (impl: DestructibleImpl, options: CheckOptions = {}): { ok: boolean; problems: string[] } => {\n const problems: string[] = []\n const known = options.materials ? new Set(options.materials) : null\n let spec: DestructibleSpec | undefined\n try {\n spec = impl.describe()\n } catch (e) {\n return { ok: false, problems: [`describe() threw: ${String(e)}`] }\n }\n if (!spec || !Array.isArray(spec.parts) || spec.parts.length === 0) return { ok: false, problems: ['describe() must return at least one part'] }\n const ids = new Set<string>()\n for (const p of spec.parts) {\n if (ids.has(p.id)) problems.push(`duplicate part id \"${p.id}\"`)\n ids.add(p.id)\n if (known && !known.has(p.material)) problems.push(`part \"${p.id}\" has unknown material \"${p.material}\"`)\n if (!p.shape || !['box', 'cylinder', 'sphere'].includes(p.shape.kind)) problems.push(`part \"${p.id}\" has no valid shape`)\n if (!Array.isArray(p.position) || p.position.length !== 3) problems.push(`part \"${p.id}\" has no position`)\n }\n const jointIds = new Set<string>()\n for (const j of (spec.joints ?? []) as JointSpec[]) {\n if (!ids.has(j.a) || !ids.has(j.b)) problems.push(`joint \"${j.id ?? `${j.a}~${j.b}`}\" references an unknown part`)\n const jid = j.id ?? `${j.a}~${j.b}`\n if (jointIds.has(jid)) problems.push(`duplicate joint id \"${jid}\"`)\n jointIds.add(jid)\n }\n const checkState = (label: string) => {\n let st: ObjectState\n try {\n st = impl.state()\n } catch (e) {\n problems.push(`state() threw ${label}: ${String(e)}`)\n return\n }\n const sids = st.parts.map((p) => p.id).sort().join(',')\n if (sids !== [...ids].sort().join(',')) problems.push(`state() part ids do not match describe() ${label}`)\n for (const p of st.parts) if (!(p.hp >= 0)) problems.push(`part \"${p.id}\" has negative or invalid hp ${label}`)\n }\n const checkEvents = (events: unknown, label: string) => {\n if (!Array.isArray(events)) {\n problems.push(`${label} must return an array`)\n return\n }\n const evs = events as DestructionEvent[]\n evs.forEach((e, i) => {\n if (e.object !== impl.id) problems.push(`${label} event ${i} (${e.type}) has object \"${String(e.object)}\", expected \"${impl.id}\"`)\n const part = (e as { part?: string }).part\n if (part !== undefined && !ids.has(part)) problems.push(`${label} event ${i} (${e.type}) names unknown part \"${part}\"`)\n })\n const bad: string[] = []\n finiteJson(evs, 'events', bad)\n problems.push(...bad.map((b) => `${label}: ${b}`))\n try {\n const s = JSON.stringify(evs)\n if (JSON.stringify(JSON.parse(s)) !== s) problems.push(`${label} events do not survive a JSON round trip`)\n } catch (e) {\n problems.push(`${label} events are not JSON-serializable: ${String(e)}`)\n }\n }\n checkState('before the hit')\n const target = spec.parts[0]\n try {\n const hit: Hit = { type: 'ballistic', point: [target.position[0], target.position[1], target.position[2]], direction: [0, 0, -1], energy: 500, caliber: 9 }\n checkEvents(impl.hit(hit), 'hit()')\n } catch (e) {\n problems.push(`hit() threw: ${String(e)}`)\n }\n checkState('after the hit')\n if (impl.update) {\n try {\n checkEvents(impl.update(0.016), 'update()')\n } catch (e) {\n problems.push(`update() threw: ${String(e)}`)\n }\n checkState('after update')\n }\n try {\n impl.reset?.()\n } catch (e) {\n problems.push(`reset() threw: ${String(e)}`)\n }\n return { ok: problems.length === 0, problems }\n}\n","/** The slots of a body an item can cover (the item slot vocabulary: game-items imports it from here). */\nexport type BodySlot = 'head' | 'eyes' | 'torso' | 'arms' | 'hands' | 'legs' | 'feet' | 'over'\n\n/** The 11 segments of the detailed body model (the Arsenal ids). */\nexport type SegmentKind = 'head' | 'jaw' | 'neck' | 'torso' | 'pelvis' | 'upperArm' | 'forearm' | 'hand' | 'thigh' | 'shin' | 'foot'\n\n/** The 6 regions of the crowd model (the game regions 0..5). */\nexport type BodyRegion = 'head' | 'torso' | 'armL' | 'armR' | 'legL' | 'legR'\n\n/** Bits of the `missing` mask of a body. The instanced body shader reads them, so the values are part of the contract. */\nexport const MISSING_BITS = {\n head: 1,\n armL: 2,\n armR: 4,\n legL: 8,\n legR: 16,\n armLBroken: 32,\n armRBroken: 64,\n legLBroken: 128,\n legRBroken: 256,\n jaw: 512,\n} as const\n","import type { DestructibleSpec, PartSpec } from './destruction'\n\nexport interface CheckSpecOptions {\n /** Known material ids. When given, every part's material must be one of them. */\n materials?: Iterable<string>\n}\n\nexport interface SpecReport {\n /** False when there is at least one problem (warnings do not count). */\n ok: boolean\n problems: string[]\n /** Things that are legal but probably wrong, e.g. structural parts that cannot reach an anchored part. */\n warnings: string[]\n}\n\nconst STRUCTURE_ROLES = ['foundation', 'column', 'beam', 'slab', 'wall', 'partition', 'roof', 'stair', 'none']\nconst BEARS = [true, false, 'a_on_b', 'b_on_a']\n\nconst finite = (n: unknown): n is number => typeof n === 'number' && Number.isFinite(n)\nconst positive = (n: unknown): boolean => finite(n) && n > 0\nconst vec3 = (v: unknown): boolean => Array.isArray(v) && v.length === 3 && v.every(finite)\nconst nonNegative = (n: unknown): boolean => n === undefined || (finite(n) && n >= 0)\n\nconst FACES = ['both', '+', '-']\nconst BONDS = ['running', 'stack']\n\n/** Layers, reinforcement, units and breach: known materials, finite positive sizes. */\nconst checkStagedFields = (p: PartSpec | undefined, label: string, materials: Set<string> | null, problems: string[]): void => {\n const known = (m: unknown, what: string): void => {\n if (materials && !materials.has(m as string)) problems.push(`${label} ${what} has unknown material \"${String(m)}\"`)\n }\n ;(p?.layers ?? []).forEach((l, i) => {\n known(l?.material, `layer ${i}`)\n if (!positive(l?.thickness)) problems.push(`${label} layer ${i} thickness must be finite and positive`)\n if (!FACES.includes(l?.faces)) problems.push(`${label} layer ${i} has an invalid faces \"${String(l?.faces)}\"`)\n })\n const r = p?.reinforcement\n if (r) {\n known(r.material, 'reinforcement')\n if (!positive(r.spacing) || !positive(r.diameter)) problems.push(`${label} reinforcement spacing and diameter must be finite and positive`)\n if (r.residualCapacity !== undefined && !(finite(r.residualCapacity) && r.residualCapacity >= 0 && r.residualCapacity <= 1)) problems.push(`${label} reinforcement residualCapacity must be between 0 and 1`)\n }\n const u = p?.units\n if (u) {\n known(u.mortar, 'units mortar')\n if (!vec3(u.size) || !u.size.every(positive)) problems.push(`${label} units size must be three finite positive numbers`)\n if (!BONDS.includes(u.bond)) problems.push(`${label} units has an invalid bond \"${String(u.bond)}\"`)\n }\n if (p?.breach && p.breach.area !== undefined && !positive(p.breach.area)) problems.push(`${label} breach area must be finite and positive`)\n}\n\n/**\n * Static checks on a `DestructibleSpec` (no world needed), for items that give a `spec` instead of an `impl`: unique part ids, known materials\n * (when `options.materials` is given), joints that reference existing, different parts, finite positive sizes, non-negative mass / hp / capacity,\n * valid structure roles and `bears` directions. A structural part with no path of joints to an anchored part is a warning, not a problem: it\n * is allowed, it just falls.\n */\nexport const checkSpec = (spec: DestructibleSpec, options: CheckSpecOptions = {}): SpecReport => {\n const problems: string[] = []\n const warnings: string[] = []\n const materials = options.materials ? new Set(options.materials) : null\n const parts = Array.isArray(spec?.parts) ? spec.parts : []\n if (!Array.isArray(spec?.parts) || parts.length === 0) problems.push('the spec needs at least one part')\n const ids = new Set<string>()\n for (const p of parts) {\n const id = String(p?.id ?? '')\n const label = `part \"${id}\"`\n if (id === '') problems.push('a part has no id')\n else if (ids.has(id)) problems.push(`duplicate part id \"${id}\"`)\n ids.add(id)\n if (materials && !materials.has(p?.material)) problems.push(`${label} has unknown material \"${String(p?.material)}\"`)\n else if (typeof p?.material !== 'string' || p.material === '') problems.push(`${label} needs a material`)\n const s = p?.shape\n if (s?.kind === 'box') {\n if (!Array.isArray(s.size) || s.size.length !== 3 || !s.size.every(positive)) problems.push(`${label} box size must be three finite positive numbers`)\n } else if (s?.kind === 'cylinder') {\n if (!positive(s.radius) || !positive(s.height)) problems.push(`${label} cylinder radius and height must be finite and positive`)\n } else if (s?.kind === 'sphere') {\n if (!positive(s.radius)) problems.push(`${label} sphere radius must be finite and positive`)\n } else problems.push(`${label} has an unknown shape`)\n if (!vec3(p?.position)) problems.push(`${label} needs a finite position [x, y, z]`)\n if (p?.rotation !== undefined && !vec3(p.rotation)) problems.push(`${label} has an invalid rotation`)\n for (const f of ['mass', 'hp', 'thickness'] as const) if (!nonNegative(p?.[f])) problems.push(`${label} ${f} must be a finite number >= 0`)\n if (p?.fill !== undefined && !(finite(p.fill) && p.fill >= 0 && p.fill <= 1)) problems.push(`${label} fill must be between 0 and 1`)\n if (p?.structure) {\n if (!STRUCTURE_ROLES.includes(p.structure.role)) problems.push(`${label} has an invalid structure role \"${String(p.structure.role)}\"`)\n if (!nonNegative(p.structure.capacity)) problems.push(`${label} structure capacity must be a finite number >= 0`)\n }\n if (p?.contains && !nonNegative(p.contains.liters)) problems.push(`${label} contains.liters must be a finite number >= 0`)\n checkStagedFields(p, label, materials, problems)\n }\n\n const jointIds = new Set<string>()\n const edges: Array<[string, string]> = []\n for (const j of spec?.joints ?? []) {\n const id = j.id ?? `${j.a}~${j.b}`\n const label = `joint \"${id}\"`\n if (jointIds.has(id)) problems.push(`duplicate joint id \"${id}\"`)\n jointIds.add(id)\n if (!ids.has(j.a)) problems.push(`${label} references unknown part \"${String(j.a)}\"`)\n if (!ids.has(j.b)) problems.push(`${label} references unknown part \"${String(j.b)}\"`)\n if (j.a === j.b) problems.push(`${label} joins part \"${String(j.a)}\" to itself`)\n if (j.bears !== undefined && !BEARS.includes(j.bears)) problems.push(`${label} has an invalid bears \"${String(j.bears)}\"`)\n if (!nonNegative(j.strength)) problems.push(`${label} strength must be a finite number >= 0`)\n if (!nonNegative(j.seconds)) problems.push(`${label} seconds must be a finite number >= 0`)\n if (j.bears !== false && ids.has(j.a) && ids.has(j.b) && j.a !== j.b) edges.push([j.a, j.b])\n }\n\n // structural parts must reach an anchored part over the joints (only when the spec lists its joints: otherwise they are inferred later)\n const structural = parts.filter((p) => p?.structure && p.structure.role !== 'none')\n if (structural.length && spec.joints) {\n const anchored = parts.filter((p) => p.anchored || p.structure?.role === 'foundation').map((p) => p.id)\n const adj = new Map<string, string[]>()\n for (const [a, b] of edges) {\n adj.set(a, [...(adj.get(a) ?? []), b])\n adj.set(b, [...(adj.get(b) ?? []), a])\n }\n const seen = new Set(anchored)\n const queue = [...anchored]\n while (queue.length) {\n for (const n of adj.get(queue.pop()!) ?? []) {\n if (seen.has(n)) continue\n seen.add(n)\n queue.push(n)\n }\n }\n const lost = structural.filter((p) => !seen.has(p.id)).map((p) => p.id)\n if (lost.length) warnings.push(`structural part(s) ${lost.map((i) => `\"${i}\"`).join(', ')} cannot reach an anchored part, so they will fall`)\n }\n return { ok: problems.length === 0, problems, warnings }\n}\n","import type { Hit, Vec3 } from './destruction'\n\n/**\n * A ballistic shot (one per pellet) as a weapon module produces it. Plain data: any damage model can consume it (`shotToHit` makes the `Hit`).\n */\nexport interface Shot {\n origin: Vec3\n /** Unit vector. */\n direction: Vec3\n /** Muzzle energy in joules. */\n energy: number\n /** Bullet diameter in millimetres. */\n caliber: number\n /** snake_case calibre id, e.g. `9x19`. */\n caliberId: string\n /** Muzzle speed in m/s. */\n speed: number\n /** Projectile mass in grams (one pellet for a shotgun load). */\n mass?: number\n /** Energy at a distance in metres, with the calibre's drag. */\n energyAt(distance: number): number\n pellet: number\n /** snake_case weapon id. */\n weapon: string\n source?: string\n}\n\n/** One use of a non-firearm (melee swing, flame tick, heat tick, throw, tool tick, extinguisher tick). */\nexport type Use =\n | { kind: 'melee'; damage: 'blunt' | 'slash'; energy: number; radius: number; reach: number; origin: Vec3; direction: Vec3 }\n | { kind: 'flame'; temperature: number; radius: number; range: number; cone: boolean; duration: number; origin: Vec3; direction: Vec3 }\n | { kind: 'heat'; temperature: number; radius: number; range: number; duration: number; origin: Vec3; direction: Vec3 }\n | {\n kind: 'throw'\n energy: number\n radius: number\n fuse: number\n velocity: Vec3\n origin: Vec3\n fire?: { temperature: number; radius: number; seconds: number }\n /** Explosive id (`m67`, `molotov`, `pg7v`...): the host looks the numbers up in the arsenal. Absent on a plain thrown object. */\n explosive?: string\n /** What sets it off: `timer` after `fuse` seconds, `impact` on the first hit once armed. */\n trigger?: 'timer' | 'impact'\n /** Metres the projectile must fly before an impact sets it off; closer, it hits without exploding (rocket launchers). */\n armDistance?: number\n /** Radius in metres of the wounding area (`radius` is the lethal one). */\n injuryRadius?: number\n /** Seconds the blast stuns whoever is inside the injury radius (flashbang). */\n stunSeconds?: number\n /** Seconds the thrower held it after pulling the pin: `fuse` is what was left of the full fuse when it left the hand. */\n cooked?: number\n /** Went off in the thrower's hand (held past the fuse): no velocity, `fuse` is 0 and the blast is at `origin`. */\n inHand?: boolean\n }\n /** An explosive set down where the trigger is pulled (mine, C4, charge): it waits for its trigger instead of flying. */\n | {\n kind: 'place'\n explosive: string\n /** `wire`: something trips it; `remote`: the player fires it; `timer`: after `fuse` seconds. */\n triggers: readonly ('timer' | 'wire' | 'remote')[]\n energy: number\n /** Lethal radius in metres. */\n radius: number\n injuryRadius: number\n /** Cone the blast goes through, in front of `direction` (mine); absent for a blast in every direction. */\n cone?: { halfAngleDeg: number; length: number }\n /** The wire a `wire` charge stretches from where it is set down: metres out, degrees from its facing (counter-clockwise from above) and metres above it. */\n tripwire?: { length: number; angleDeg: number; height: number }\n fuse?: number\n origin: Vec3\n direction: Vec3\n }\n /** The blast behind a rocket launcher: dangerous inside `radius` metres, in the cone around `direction` (pointing away from the target). */\n | { kind: 'backblast'; radius: number; halfAngleDeg: number; origin: Vec3; direction: Vec3 }\n | { kind: 'tool'; tool: string; reach: number; duration: number; origin: Vec3; direction: Vec3 }\n | { kind: 'extinguish'; range: number; coolC: number; duration: number; origin: Vec3; direction: Vec3 }\n | { kind: 'hand'; reach: number; origin: Vec3; direction: Vec3 }\n\n/**\n * The `Hit` a ballistic shot makes at `point` (world space): the energy is what is left of the shot at that distance from its origin\n * (`shot.energyAt`), the direction and calibre come from the shot. `normal` (the surface normal at the point, when the caller knows it) does not\n * change the hit; it is accepted so that callers can pass what their raycast returned and so that a stricter implementation could use it.\n */\nexport const shotToHit = (shot: Shot, point: Vec3, normal?: Vec3): Hit => {\n void normal\n const dx = point[0] - shot.origin[0]\n const dy = point[1] - shot.origin[1]\n const dz = point[2] - shot.origin[2]\n const distance = Math.hypot(dx, dy, dz)\n return {\n type: 'ballistic',\n point: [point[0], point[1], point[2]],\n direction: [shot.direction[0], shot.direction[1], shot.direction[2]],\n energy: shot.energyAt(distance),\n caliber: shot.caliber,\n ...(shot.mass === undefined ? {} : { mass: shot.mass }),\n source: shot.source ?? shot.weapon,\n }\n}\n","import type { Vec3 } from './destruction'\n\n/** Pose of one part (or of the whole item) at a key: position offset in metres and Euler XYZ rotation in radians, both relative to the rest pose. */\nexport interface AnimationPose {\n position?: Vec3\n rotation?: Vec3\n}\n\nexport interface AnimationKey {\n /** Seconds from the start of the clip. */\n t: number\n /** Pose of the item's root. */\n position?: Vec3\n rotation?: Vec3\n /** Poses of named parts: the key is a destruction part id (a pistol `reload` moves `mag`; a car door `open` rotates `door_l`). */\n parts?: Record<string, AnimationPose>\n}\n\nexport interface AnimationEventSpec {\n /** Seconds from the start of the clip. */\n t: number\n /** snake_case type the host maps (`sound`, `eject_casing`, `door_latch`...). */\n type: string\n data?: Record<string, unknown>\n}\n\n/** A use animation a module brings with its item. Poses between keys are interpolated by the player (the test room does it linearly). */\nexport interface AnimationClipSpec {\n /** snake_case: `reload`, `open`, `drink`... Unique within the item. */\n id: string\n /** Seconds. */\n duration: number\n keys: AnimationKey[]\n events?: AnimationEventSpec[]\n}\n\n/** What an item exposes when it brings its own animations. */\nexport interface ItemAnimationContract {\n animations: AnimationClipSpec[]\n}\n\nconst finite3 = (v: unknown): boolean => Array.isArray(v) && v.length === 3 && v.every((n) => typeof n === 'number' && Number.isFinite(n))\n\n/**\n * Problems with a clip (empty when it is valid): a snake_case id, a positive finite duration, at least one key, key and event times inside\n * `[0, duration]` and not going backwards, finite vectors, every named part one of `partIds`, event types that are non-empty strings and\n * JSON-serializable event data.\n */\nexport const checkAnimation = (clip: AnimationClipSpec, partIds: Iterable<string>): { ok: boolean; problems: string[] } => {\n const problems: string[] = []\n const parts = new Set(partIds)\n const id = String(clip?.id ?? '')\n if (!/^[a-z][a-z0-9_]*$/.test(id)) problems.push(`clip id \"${id}\" must be snake_case`)\n const label = `clip \"${id}\"`\n if (!(typeof clip?.duration === 'number' && Number.isFinite(clip.duration) && clip.duration > 0)) problems.push(`${label} needs a positive finite duration`)\n const dur = typeof clip?.duration === 'number' && clip.duration > 0 ? clip.duration : Infinity\n if (!Array.isArray(clip?.keys) || clip.keys.length === 0) {\n problems.push(`${label} needs at least one key`)\n return { ok: false, problems }\n }\n let prev = -Infinity\n clip.keys.forEach((k, i) => {\n if (!(typeof k.t === 'number' && Number.isFinite(k.t)) || k.t < 0 || k.t > dur + 1e-9) problems.push(`${label} key ${i} has t=${String(k.t)} outside 0..${dur}`)\n else if (k.t < prev) problems.push(`${label} key ${i} goes back in time (${k.t} < ${prev})`)\n else prev = k.t\n for (const f of ['position', 'rotation'] as const) if (k[f] !== undefined && !finite3(k[f])) problems.push(`${label} key ${i} has an invalid ${f}`)\n for (const [pid, pose] of Object.entries(k.parts ?? {})) {\n if (!parts.has(pid)) problems.push(`${label} key ${i} moves unknown part \"${pid}\"`)\n for (const f of ['position', 'rotation'] as const) if (pose?.[f] !== undefined && !finite3(pose[f])) problems.push(`${label} key ${i} part \"${pid}\" has an invalid ${f}`)\n }\n })\n let prevEv = -Infinity\n ;(clip.events ?? []).forEach((e, i) => {\n if (!(typeof e.t === 'number' && Number.isFinite(e.t)) || e.t < 0 || e.t > dur + 1e-9) problems.push(`${label} event ${i} has t=${String(e.t)} outside 0..${dur}`)\n else if (e.t < prevEv) problems.push(`${label} event ${i} goes back in time`)\n else prevEv = e.t\n if (typeof e.type !== 'string' || e.type === '') problems.push(`${label} event ${i} needs a type`)\n try {\n JSON.stringify(e.data ?? {})\n } catch {\n problems.push(`${label} event ${i} data is not JSON`)\n }\n })\n return { ok: problems.length === 0, problems }\n}\n","import type { AnimationClipSpec, AnimationEventSpec, AnimationPose } from './animation'\nimport { checkAnimation } from './animation'\nimport type { HostEvent } from './module'\n\n/** Clips a tool can bring, one per move of its cycle. A tool brings the ones it has; a missing clip is simply not played. */\nexport const TOOL_CLIP = {\n DRAW: 'draw',\n SHOT: 'shot',\n MISFIRE: 'misfire',\n EMPTY: 'empty',\n CYCLE: 'cycle',\n RELOAD: 'reload',\n FEED: 'feed',\n FAULT: 'fault',\n CLEAR: 'clear',\n SAFETY_ON: 'safety_on',\n SAFETY_OFF: 'safety_off',\n MODE: 'mode',\n /** A throwable with the pin out, held until it is thrown. */\n COOK: 'cook',\n /** The stock folds, unfolds, slides in or out (variants `fold`, `unfold`, `collapse`, `extend`). */\n STOCK: 'stock',\n /** A light or a laser is switched (variants `on`, `off`). */\n TOGGLE: 'toggle',\n} as const\nexport type ToolClipId = (typeof TOOL_CLIP)[keyof typeof TOOL_CLIP]\n\n/** What a renderer does when a rule event arrives. `variant` picks `<clip>_<variant>` when the tool has it, else `<clip>`. */\nexport type ToolAnimationStep =\n | { readonly type: 'play'; readonly clip: ToolClipId; readonly variant?: string; readonly duration?: number; readonly repeat?: number }\n /** Move the clip that is playing to the marker (a clip event `stage` with `data.stage`) the rule just reached. */\n | { readonly type: 'sync'; readonly stage: string }\n /** The rule says the phase is over: the clip jumps to its end if it is still running. */\n | { readonly type: 'finish'; readonly clip: ToolClipId }\n\nconst stockVariant = (event: Extract<HostEvent, { type: 'stock' }>): string => {\n const isFolding = event.kind === undefined ? false : event.kind.includes('fold')\n if (event.state === 'collapsed') return isFolding ? 'fold' : 'collapse'\n return isFolding ? 'unfold' : 'extend'\n}\n\n/** The move a host event asks of the tool in hand, or null when it has no motion. */\nexport const toolAnimationStep = (event: HostEvent): ToolAnimationStep | null => {\n switch (event.type) {\n case 'tool':\n return { type: 'play', clip: TOOL_CLIP.DRAW, ...(event.duration === undefined ? {} : { duration: event.duration }) }\n case 'shot':\n return { type: 'play', clip: TOOL_CLIP.SHOT, repeat: Math.max(1, event.rounds ?? 1) }\n case 'misfire':\n return { type: 'play', clip: TOOL_CLIP.MISFIRE }\n case 'empty':\n return { type: 'play', clip: TOOL_CLIP.EMPTY }\n case 'mode':\n return { type: 'play', clip: TOOL_CLIP.MODE, variant: event.mode }\n case 'fault':\n return { type: 'play', clip: TOOL_CLIP.FAULT, variant: event.fault }\n case 'clear':\n if (event.phase === 'end') return { type: 'finish', clip: TOOL_CLIP.CLEAR }\n return { type: 'play', clip: TOOL_CLIP.CLEAR, variant: event.fault, ...(event.duration === undefined ? {} : { duration: event.duration }) }\n case 'safety':\n return { type: 'play', clip: event.on ? TOOL_CLIP.SAFETY_ON : TOOL_CLIP.SAFETY_OFF }\n case 'cycle':\n if (event.phase === 'end') return { type: 'finish', clip: TOOL_CLIP.CYCLE }\n return { type: 'play', clip: TOOL_CLIP.CYCLE, ...(event.duration === undefined ? {} : { duration: event.duration }) }\n case 'reload':\n if (event.phase === 'end') return { type: 'finish', clip: TOOL_CLIP.RELOAD }\n return { type: 'play', clip: TOOL_CLIP.RELOAD, ...(event.kind === undefined ? {} : { variant: event.kind }), ...(event.duration === undefined ? {} : { duration: event.duration }) }\n case 'stage':\n return { type: 'sync', stage: event.stage }\n case 'feed':\n return { type: 'play', clip: TOOL_CLIP.FEED }\n case 'cook':\n if (event.phase === 'start') return { type: 'play', clip: TOOL_CLIP.COOK, duration: event.fuse }\n return { type: 'finish', clip: TOOL_CLIP.COOK }\n case 'stock':\n return { type: 'play', clip: TOOL_CLIP.STOCK, variant: stockVariant(event), ...(event.duration === undefined ? {} : { duration: event.duration }) }\n case 'toggle':\n return { type: 'play', clip: TOOL_CLIP.TOGGLE, variant: event.on ? 'on' : 'off' }\n default:\n return null\n }\n}\n\n/** Where a renderer puts the poses: every part of the tool by id (the ids the clips move), and the whole tool. Poses are offsets from rest. */\nexport interface ToolRig {\n setPartPose(partId: string, pose: AnimationPose): void\n setRootPose?(pose: AnimationPose): void\n}\n\n/** Clips by id, with the variants as `<clip>_<variant>`. */\nexport type ToolClipSet = Readonly<Record<string, AnimationClipSpec>>\n\n/** A renderer's tool animator: feed it the host events and the frame time. */\nexport interface ToolAnimator {\n handle(event: HostEvent): void\n update(dt: number): void\n /** Ids of the clips playing now. */\n readonly playing: readonly string[]\n dispose(): void\n}\n\nexport const STAGE_EVENT = 'stage'\n\n/** The clip with its times (keys and events) scaled so that it lasts `duration` seconds. */\nexport const scaleClip = (clip: AnimationClipSpec, duration: number): AnimationClipSpec => {\n const factor = clip.duration > 0 ? duration / clip.duration : 1\n return {\n ...clip,\n duration,\n keys: clip.keys.map((key) => ({ ...key, t: key.t * factor })),\n ...(clip.events ? { events: clip.events.map((event) => ({ ...event, t: event.t * factor })) } : {}),\n }\n}\n\nconst ZERO: [number, number, number] = [0, 0, 0]\nconst mix = (from: readonly number[], to: readonly number[], fraction: number): [number, number, number] => [\n (from[0] ?? 0) + ((to[0] ?? 0) - (from[0] ?? 0)) * fraction,\n (from[1] ?? 0) + ((to[1] ?? 0) - (from[1] ?? 0)) * fraction,\n (from[2] ?? 0) + ((to[2] ?? 0) - (from[2] ?? 0)) * fraction,\n]\n\n/** Pose of the whole tool (`partId` undefined) or of one part at `time`, linear between keys; a key that does not name it means rest. */\nexport const sampleClip = (clip: AnimationClipSpec, partId: string | undefined, time: number): { position: [number, number, number]; rotation: [number, number, number] } => {\n const points = clip.keys.map((key) => {\n const pose = partId === undefined ? key : key.parts?.[partId]\n return { t: key.t, position: pose?.position ?? ZERO, rotation: pose?.rotation ?? ZERO }\n })\n const first = points[0]\n if (!first || first.t > 0) points.unshift({ t: 0, position: ZERO, rotation: ZERO })\n const last = points[points.length - 1]\n if (!last) return { position: ZERO, rotation: ZERO }\n if (time >= last.t) return { position: mix(last.position, last.position, 0), rotation: mix(last.rotation, last.rotation, 0) }\n const index = Math.max(0, points.findIndex((point, i) => time >= point.t && time < (points[i + 1]?.t ?? Infinity)))\n const from = points[index]\n const to = points[index + 1]\n if (!from || !to) return { position: ZERO, rotation: ZERO }\n const fraction = to.t > from.t ? (time - from.t) / (to.t - from.t) : 0\n return { position: mix(from.position, to.position, fraction), rotation: mix(from.rotation, to.rotation, fraction) }\n}\n\n/** Problems with a clip set (empty when valid): each key is the clip id (or `<clip>_<variant>`), every clip passes `checkAnimation`, and a `stage` event names its stage. */\nexport const checkToolClips = (clips: ToolClipSet, partIds: Iterable<string>): { ok: boolean; problems: string[] } => {\n const parts = [...partIds]\n const problems: string[] = []\n for (const [key, clip] of Object.entries(clips)) {\n if (clip.id !== key) problems.push(`clip \"${key}\" has the id \"${clip.id}\"`)\n if (!(clip.duration > 0)) problems.push(`clip \"${key}\" has no duration`)\n problems.push(...checkAnimation(clip, parts).problems)\n for (const event of clip.events ?? []) if (event.type === STAGE_EVENT && typeof event.data?.stage !== 'string') problems.push(`clip \"${key}\" has a stage event without data.stage`)\n }\n return { ok: problems.length === 0, problems }\n}\n\ninterface Instance {\n readonly name: string\n readonly clip: AnimationClipSpec\n time: number\n delay: number\n fired: number\n}\n\nexport interface ToolClipPlayerOptions {\n clips: ToolClipSet\n rig: ToolRig\n /** Called for each clip event as its time passes (`eject_casing`, `drop_magazine`, `stage`...). */\n onEvent?(event: AnimationEventSpec, clip: string): void\n /** Seconds between the rounds of a `repeat` (a burst): default 0.1. */\n repeatInterval?(): number\n}\n\n/** The default player of a tool's clips: runs the steps of `toolAnimationStep` against a rig, scaled to the duration the rule gives. */\nexport interface ToolClipPlayer {\n apply(step: ToolAnimationStep): void\n update(dt: number): void\n readonly playing: readonly string[]\n}\n\nexport const createToolClipPlayer = (options: ToolClipPlayerOptions): ToolClipPlayer => {\n const { clips, rig, onEvent } = options\n let instances: Instance[] = []\n\n const find = (clip: string, variant?: string): { name: string; clip: AnimationClipSpec } | undefined => {\n const name = variant !== undefined && clips[`${clip}_${variant}`] ? `${clip}_${variant}` : clip\n const found = clips[name]\n return found ? { name, clip: found } : undefined\n }\n\n const render = (instance: Instance): void => {\n const time = Math.min(instance.time, instance.clip.duration)\n const root = sampleClip(instance.clip, undefined, time)\n if (instance.clip.keys.some((key) => key.position || key.rotation)) rig.setRootPose?.(root)\n const touched = new Set(instance.clip.keys.flatMap((key) => Object.keys(key.parts ?? {})))\n for (const id of touched) rig.setPartPose(id, sampleClip(instance.clip, id, time))\n }\n\n const fireEvents = (instance: Instance, upTo: number): void => {\n const events = instance.clip.events ?? []\n while (instance.fired < events.length && (events[instance.fired]?.t ?? Infinity) <= upTo + 1e-9) {\n const event = events[instance.fired]\n instance.fired += 1\n if (event) onEvent?.(event, instance.name)\n }\n }\n\n return {\n apply(step) {\n if (step.type === 'sync') {\n for (const instance of instances) {\n const marker = (instance.clip.events ?? []).find((event) => event.type === STAGE_EVENT && event.data?.stage === step.stage)\n if (marker && instance.time < marker.t) instance.time = marker.t\n }\n return\n }\n if (step.type === 'finish') {\n for (const instance of instances) {\n if (instance.name !== step.clip && !instance.name.startsWith(`${step.clip}_`)) continue\n fireEvents(instance, instance.clip.duration)\n instance.time = instance.clip.duration\n }\n return\n }\n const found = find(step.clip, step.variant)\n if (!found) return\n const clip = step.duration && step.duration > 0 ? scaleClip(found.clip, step.duration) : found.clip\n const interval = options.repeatInterval?.() ?? 0.1\n instances = instances.filter((existing) => existing.name !== found.name || existing.delay > 0)\n for (let round = 0; round < (step.repeat ?? 1); round++) {\n instances.push({ name: found.name, clip, time: 0, delay: round * interval, fired: 0 })\n }\n },\n update(dt) {\n for (const instance of instances) {\n const carried = instance.delay > 0 ? dt - instance.delay : dt\n if (instance.delay > 0) {\n instance.delay = Math.max(0, instance.delay - dt)\n if (instance.delay > 0) continue\n }\n instance.time += carried\n fireEvents(instance, instance.time)\n render(instance)\n }\n instances = instances.filter((instance) => instance.delay > 0 || instance.time < instance.clip.duration)\n },\n get playing() {\n return instances.map((instance) => instance.name)\n },\n }\n}\n","type PlainObject = Record<string, unknown>\ntype Entry = { readonly id: string }\n\n/** Keys that would reach the prototype of the result when a patch comes from parsed JSON. */\nconst UNSAFE_KEYS: ReadonlySet<string> = new Set(['__proto__', 'constructor', 'prototype'])\n\nconst isPlainObject = (value: unknown): value is PlainObject =>\n typeof value === 'object' && value !== null && !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype\n\n/** Recursively optional; arrays and functions are replaced as a whole, objects are merged. */\nexport type DeepPartial<TValue> = TValue extends (...args: never[]) => unknown\n ? TValue\n : TValue extends readonly unknown[]\n ? TValue\n : TValue extends object\n ? { [TKey in keyof TValue]?: DeepPartial<TValue[TKey]> }\n : TValue\n\n/** Merges `patch` over `base`: plain objects merge field by field, arrays, functions and primitives replace. `undefined` in the patch is ignored. */\nexport const deepMerge = <TBase extends object>(base: TBase, patch: object | undefined): TBase => {\n if (!patch) return base\n const result: PlainObject = { ...(base as PlainObject) }\n for (const [key, value] of Object.entries(patch)) {\n if (value === undefined || UNSAFE_KEYS.has(key)) continue\n const current = result[key]\n result[key] = isPlainObject(current) && isPlainObject(value) ? deepMerge(current, value) : value\n }\n return result as TBase\n}\n\n/** The shipped entries with the ones from `extra` added or, when the id exists, replaced. */\nexport const mergeById = <TEntry extends Entry>(shipped: readonly TEntry[], extra: readonly TEntry[] | undefined): Map<string, TEntry> => {\n const entries = new Map<string, TEntry>()\n for (const entry of [...shipped, ...(extra ?? [])]) entries.set(entry.id, entry)\n return entries\n}\n\n/** Applies `patch` by id; a patch for an id that does not exist is ignored. */\nexport const applyPatches = <TEntry extends Entry>(entries: Map<string, TEntry>, patches: Readonly<Record<string, DeepPartial<TEntry> | Partial<TEntry>>> | undefined): void => {\n for (const [id, patch] of Object.entries(patches ?? {})) {\n const entry = entries.get(id)\n if (entry) entries.set(id, deepMerge(entry, patch))\n }\n}\n\nexport const removeIds = (entries: Map<string, unknown>, ids: readonly string[] | undefined): void => {\n for (const id of ids ?? []) entries.delete(id)\n}\n","import type { Vec3 } from './destruction'\n\n/**\n * The bench of a module: controls, layers and counters it declares as data. The host keeps the values, draws them in a generic way and hands\n * every change back through `ModuleHost.bench`. Nothing here is specific to a kind of module.\n */\nexport type ControlValue = number | boolean | string\n\nexport interface ChoiceOption {\n readonly id: string\n readonly name: string\n /** Heading the host lists the option under (`optgroup`, a grouped row of buttons). Options of a group must sit next to each other. */\n readonly group?: string\n}\n\ninterface ControlBase {\n /** snake_case, unique across the module's controls, layers and metrics. */\n readonly id: string\n /** Display name, already translated for the locale the host asked for. */\n readonly name: string\n readonly hint?: string\n readonly hidden?: boolean\n}\n\nexport interface NumberControl extends ControlBase {\n readonly kind: 'number'\n readonly min: number\n readonly max: number\n readonly step?: number\n readonly unit?: string\n readonly default: number\n}\n\nexport interface BooleanControl extends ControlBase {\n readonly kind: 'boolean'\n readonly default: boolean\n}\n\nexport interface ChoiceControl extends ControlBase {\n readonly kind: 'choice'\n readonly options: readonly ChoiceOption[]\n readonly default: string\n}\n\n/** A button: no value, only the press. */\nexport interface ActionControl extends ControlBase {\n readonly kind: 'action'\n}\n\nexport type ModuleControl = NumberControl | BooleanControl | ChoiceControl | ActionControl\n\n/** Something of the module the viewer turns on or off (smoke, flash, casings). */\nexport interface ModuleLayer {\n readonly id: string\n readonly name: string\n /** On unless `false`. */\n readonly default?: boolean\n}\n\n/** Pulled: the room calls read only when it samples (~4 Hz, or on TestRoom.metrics()). */\nexport interface ModuleMetric {\n readonly id: string\n readonly name: string\n readonly unit?: string\n /** Budget: the host shows a bar and warns past it. */\n readonly max?: number\n readonly digits?: number\n read(): number | string\n}\n\nexport type BenchChange =\n | { readonly kind: 'control'; readonly id: string; readonly value: ControlValue }\n | { readonly kind: 'layer'; readonly id: string; readonly on: boolean }\n | { readonly kind: 'action'; readonly id: string }\n\nexport interface ControlPatch {\n readonly hidden?: boolean\n readonly disabled?: boolean\n readonly options?: readonly ChoiceOption[]\n readonly value?: ControlValue\n}\n\n/** What the host lends a module that declares a bench: the current values and the changes. */\nexport interface ModuleBench {\n value(id: string): ControlValue | undefined\n layer(id: string): boolean\n /** Right after attach returns, the host sends one change per control (not actions) and per layer, in declaration order. */\n onChange(listener: (change: BenchChange) => void): () => void\n /** `value` sets without emitting (no echo loops); `options` falls back to the first option if the value is no longer offered. */\n patch(id: string, patch: ControlPatch): void\n /** Move the host camera (a near / middle / far choice). */\n look(eye: Vec3, target: Vec3): void\n /** Shows a sheet on the host's panel, or takes it down with `null`. A host without a sheet area ignores it. */\n sheet?(sheet: BenchSheet | null): void\n}\n\n/**\n * A card of text the module puts on the host's panel (the sheet of an effect, of a weapon): what it is, its numbers, its steps, its colours and,\n * optionally, a strip of segments over time. Names and texts are already translated for the host's locale.\n */\nexport interface BenchSheet {\n readonly kicker?: string\n readonly title: string\n readonly body?: string\n readonly facts?: readonly { readonly label: string; readonly value: string }[]\n readonly steps?: readonly { readonly at: string; readonly text: string }[]\n readonly swatches?: readonly { readonly color: string; readonly name: string }[]\n readonly note?: string\n /** A strip of named segments (seconds), with tick marks and a playhead that follows the module metric `metric`. */\n readonly timeline?: {\n readonly segments: readonly { readonly name: string; readonly start: number; readonly end: number; readonly color: string }[]\n readonly ticks: readonly number[]\n readonly metric: string\n }\n}\n\nexport interface BenchReport {\n readonly ok: boolean\n readonly problems: readonly string[]\n}\n\nexport interface BenchDeclaration {\n readonly controls?: readonly ModuleControl[]\n readonly layers?: readonly ModuleLayer[]\n readonly metrics?: readonly ModuleMetric[]\n}\n\nconst SNAKE_CASE = /^[a-z][a-z0-9_]*$/\nconst finite = (n: unknown): n is number => typeof n === 'number' && Number.isFinite(n)\n\nfunction checkControl(control: ModuleControl, problems: string[]): void {\n const label = `control \"${control.id}\"`\n if (control.kind === 'number') {\n if (!finite(control.min) || !finite(control.max) || control.min >= control.max) problems.push(`${label} needs min < max`)\n if (control.step !== undefined && !(finite(control.step) && control.step > 0)) problems.push(`${label} needs a step > 0`)\n if (!finite(control.default) || control.default < control.min || control.default > control.max) problems.push(`${label} default ${String(control.default)} is outside ${control.min}..${control.max}`)\n return\n }\n if (control.kind !== 'choice') return\n if (control.options.length === 0) {\n problems.push(`${label} needs at least one option`)\n return\n }\n const seen = new Set<string>()\n const groups = new Set<string>()\n let previousGroup: string | undefined\n for (const option of control.options) {\n if (seen.has(option.id)) problems.push(`${label} repeats option \"${option.id}\"`)\n seen.add(option.id)\n if (option.group !== undefined && (typeof option.group !== 'string' || option.group === '')) problems.push(`${label} option \"${option.id}\" has an empty group`)\n else if (option.group !== undefined && option.group !== previousGroup && groups.has(option.group)) problems.push(`${label} group \"${option.group}\" is split: its options must be next to each other`)\n if (typeof option.group === 'string' && option.group !== '') groups.add(option.group)\n previousGroup = option.group\n }\n if (!seen.has(control.default)) problems.push(`${label} default \"${control.default}\" is not among its options`)\n}\n\n/** snake_case ids unique across controls, layers and metrics; min < max; step > 0; default in range; options non-empty, unique, default among them, each group in one run; metric max > 0. */\nexport function checkBench(declared: BenchDeclaration): BenchReport {\n const problems: string[] = []\n const ids = new Set<string>()\n const claim = (kind: string, id: string): void => {\n if (!SNAKE_CASE.test(id)) problems.push(`${kind} id \"${id}\" must be snake_case`)\n if (ids.has(id)) problems.push(`duplicate id \"${id}\" across controls, layers and metrics`)\n ids.add(id)\n }\n for (const control of declared.controls ?? []) {\n claim('control', control.id)\n checkControl(control, problems)\n }\n for (const layer of declared.layers ?? []) claim('layer', layer.id)\n for (const metric of declared.metrics ?? []) {\n claim('metric', metric.id)\n if (metric.max !== undefined && !(finite(metric.max) && metric.max > 0)) problems.push(`metric \"${metric.id}\" needs a max > 0`)\n }\n return { ok: problems.length === 0, problems }\n}\n","import { applyPatches, deepMerge, mergeById, removeIds } from '@adatechnology/game-contracts'\n\nimport { ITEM_CATEGORIES } from './categories'\nimport type { ItemsCatalog, ItemsOptions } from './catalog-types'\nimport { checkItems, findDuplicateIds } from './check-items'\nimport { DEFAULT_RULES } from './rules'\nimport type { RecipeDef } from './recipe-types'\nimport type { ContainerDef, ItemDef, PlaceDef, PoolEntry } from './types'\nimport type { UseEffectDef } from './use-types'\n\nconst LITRES_PER_CUBIC_METRE = 1000\n\n/** Fills what a pack leaves out: the volume comes from the size. */\nconst withDerivedFields = (item: ItemDef): ItemDef => (item.volume === undefined ? { ...item, volume: item.size[0] * item.size[1] * item.size[2] * LITRES_PER_CUBIC_METRE } : item)\n\nconst buildPools = (options: ItemsOptions, packs: NonNullable<ItemsOptions['packs']>): Map<string, readonly PoolEntry[]> => {\n const pools = new Map<string, readonly PoolEntry[]>()\n for (const source of [...packs, options]) for (const [key, entries] of Object.entries(source.pools ?? {})) pools.set(key, entries)\n const problems: string[] = []\n for (const source of [...packs, options]) {\n for (const [alias, key] of Object.entries(source.poolAliases ?? {})) {\n const entries = pools.get(key)\n if (entries) pools.set(alias, entries)\n else problems.push(`pool alias \"${alias}\" points to unknown pool \"${key}\"`)\n }\n }\n if (problems.length > 0) throw new Error(`game-items: the catalog is not consistent:\\n${problems.map((problem) => ` - ${problem}`).join('\\n')}`)\n return pools\n}\n\nconst groupBy = (items: Iterable<ItemDef>, keysOf: (item: ItemDef) => readonly string[]): Map<string, ItemDef[]> => {\n const groups = new Map<string, ItemDef[]>()\n for (const item of items) for (const key of keysOf(item)) groups.set(key, [...(groups.get(key) ?? []), item])\n return groups\n}\n\n/**\n * Create the catalog. Order: the packs in order (added or replaced by id), then `patch`, then `remove`, then `include`; categories, places and\n * containers are those of the packs plus the options, by id. Every inconsistency found is reported in one error.\n */\nexport const createItems = (options: ItemsOptions = {}): ItemsCatalog => {\n const packs = options.packs ?? []\n const items = mergeById([] as ItemDef[], packs.flatMap((pack) => pack.items))\n applyPatches<ItemDef>(items, options.patch)\n removeIds(items, options.remove)\n if (options.include) for (const [id, item] of items) if (!options.include(item)) items.delete(id)\n for (const [id, item] of items) items.set(id, withDerivedFields(item))\n\n const categories = mergeById(ITEM_CATEGORIES, [...packs.flatMap((pack) => pack.categories ?? []), ...(options.categories ?? [])])\n const places = mergeById<PlaceDef>([], [...packs.flatMap((pack) => pack.places ?? []), ...(options.places ?? [])])\n const containers = mergeById<ContainerDef>([], [...packs.flatMap((pack) => pack.containers ?? []), ...(options.containers ?? [])])\n const useEffects = [...mergeById<UseEffectDef>([], [...packs.flatMap((pack) => pack.useEffects ?? []), ...(options.useEffects ?? [])]).values()]\n const recipes = mergeById<RecipeDef>([], [...packs.flatMap((pack) => pack.recipes ?? []), ...(options.recipes ?? [])])\n const pools = buildPools(options, packs)\n const rules = deepMerge(DEFAULT_RULES, options.rules)\n\n const problems = [\n ...packs.flatMap((pack) => findDuplicateIds(`item in pack \"${pack.id}\"`, pack.items)),\n ...findDuplicateIds('category', options.categories),\n ...findDuplicateIds('place', options.places),\n ...findDuplicateIds('container', options.containers),\n ...findDuplicateIds('use effect', options.useEffects),\n ...findDuplicateIds('recipe', options.recipes),\n ...checkItems({ items, categories, places, containers, rules }),\n ]\n if (problems.length > 0) throw new Error(`game-items: the catalog is not consistent:\\n${problems.map((problem) => ` - ${problem}`).join('\\n')}`)\n\n const byCategory = groupBy(items.values(), (item) => [item.category])\n const byPlace = groupBy(items.values(), (item) => item.finds?.places ?? [])\n const byTag = groupBy(items.values(), (item) => item.tags ?? [])\n\n return {\n items,\n categories,\n places,\n containers,\n pools,\n useEffects,\n recipes,\n rules,\n has: (id) => items.has(id),\n get(id) {\n const item = items.get(id)\n if (!item) throw new Error(`game-items: unknown item \"${id}\"`)\n return item\n },\n list: () => [...items.values()],\n byCategory: (category) => [...(byCategory.get(category) ?? [])],\n byPlace: (place) => [...(byPlace.get(place) ?? [])],\n byTag: (tag) => [...(byTag.get(tag) ?? [])],\n }\n}\n","import type { CategoryDef } from './types'\n\n/** The 14 categories of the team's catalog; always registered. */\nexport const ITEM_CATEGORIES: readonly CategoryDef[] = [\n { id: 'food', name: 'Food' },\n { id: 'drink', name: 'Drink' },\n { id: 'medical', name: 'Medical' },\n { id: 'tools', name: 'Tools' },\n { id: 'melee', name: 'Melee' },\n { id: 'materials', name: 'Materials' },\n { id: 'clothing', name: 'Clothing' },\n { id: 'bags', name: 'Bags' },\n { id: 'electronics', name: 'Electronics' },\n { id: 'fuel', name: 'Fuel' },\n { id: 'outdoors', name: 'Outdoors' },\n { id: 'books', name: 'Books' },\n { id: 'collectibles', name: 'Collectibles' },\n { id: 'keys', name: 'Keys' },\n]\n","/**\n * Public types of @adatechnology/game-items.\n *\n * An `ItemDef` is a real-world thing (a can of beans, a hammer, a jacket) with its true size and weight; the rest of the fields are optional groups that\n * only the categories that need them fill (nutrition for food, protection for clothing, carry for bags). Units: metres, kilograms, litres, days.\n */\nimport type { BodySlot } from '@adatechnology/game-contracts'\nimport type { ItemDef as BaseItemDef } from '@adatechnology/game-interactables'\n\nimport type { RecipeDef } from './recipe-types'\nimport type { UseEffectDef } from './use-types'\n\nexport type { BaseItemDef }\n\nexport const RARITIES = ['common', 'uncommon', 'rare', 'very_rare', 'legendary', 'unique'] as const\nexport type Rarity = (typeof RARITIES)[number]\n\n/** The body slots an item covers: the vocabulary is `BodySlot` of game-contracts (`over` is a layer worn over the others, such as a coat or a vest). */\nexport type { BodySlot } from '@adatechnology/game-contracts'\nexport const BODY_SLOTS: readonly BodySlot[] = ['head', 'eyes', 'torso', 'arms', 'hands', 'legs', 'feet', 'over']\n\nexport const DURABILITY_KINDS = ['uses', 'portions', 'doses', 'hits', 'cuts', 'shots', 'condition', 'charges', 'seconds', 'days', 'infinite', 'container'] as const\nexport type DurabilityKind = (typeof DURABILITY_KINDS)[number]\n\n/** How long an item lasts, read from the source text (\"10 uses\", \"4 portions\", \"300 hits\", \"infinite\"). */\nexport interface Durability {\n kind: DurabilityKind\n amount?: number\n /** Source qualifier when the amount alone is not enough (for example the voltage of a battery). */\n per?: string\n}\n\n/** Id of a place where items turn up (house, hospital, farm...). Places are a registry: a pack or the game declares the ones it uses. */\nexport type PlaceTag = string\n\n/** Id of an item category. The 14 of `ITEM_CATEGORIES` are always present; a game adds its own through `createItems({ categories })`. */\nexport type ItemCategory = string\n\nexport interface CategoryDef {\n id: ItemCategory\n /** Display name in English; games translate by id. */\n name?: string\n}\n\nexport interface PlaceDef {\n id: PlaceTag\n name?: string\n}\n\n/**\n * Where items are found inside a place (a fridge, a drawer, a locker): which categories it draws from and how many stacks. The finds roll reads `count`,\n * `categories` (or `categoriesByPlace`, with `*` for any other place) and `places`; other fields of a pack's container are kept and ignored.\n */\nexport interface ContainerDef {\n id: string\n name?: string\n /** Places the container turns up in (`toLootTables` only); empty or missing means any. */\n places?: readonly PlaceTag[]\n /** Weight of each category when a stack is drawn for this container. */\n categories?: Readonly<Record<ItemCategory, number>>\n /** When `categories` is missing: the weights by place (a shop shelf stocks what the shop sells). */\n categoriesByPlace?: Readonly<Record<PlaceTag, Readonly<Record<ItemCategory, number>>>>\n /** Range of stacks a container holds when it is filled. */\n count?: readonly [number, number]\n}\n\n/** One thing an explicit pool can hold (a fridge: water bottle, milk, eggs...): `item` is the catalog id, `weight` the odds, `qty` the range. */\nexport interface PoolEntry {\n item: string\n weight: number\n qty: readonly [number, number]\n /** Supplies (food, water, medicine, tools) are what a fortified house stocks up on. */\n isSupply?: boolean\n}\n\nexport interface ItemDef extends BaseItemDef {\n category: ItemCategory\n /** The old household category (`kitchen`, `hygiene`, `office`...), `perishable` or `craft_only`. */\n tags?: readonly string[]\n rarity: Rarity\n /** Litres. Derived from `size` when the pack does not give it. */\n volume?: number\n durability?: Durability\n /** Days to spoil at room temperature. */\n shelfLife?: number\n portions?: number\n cookable?: boolean\n nutrition?: { satiety?: number; hydration?: number }\n /** Fractions 0..1 per attack, per body slot covered. */\n protection?: {\n slots: readonly BodySlot[]\n bite?: number\n scratch?: number\n warmth?: number\n /** Against projectiles (read by game-characters): `resistance` in penetration units; a stopped projectile does `blunt` of its damage, one that goes through `pass`. */\n ballistic?: { resistance: number; blunt?: number; pass?: number; consumable?: boolean }\n }\n carry?: { capacityKg: number; weightReduction: number; quickSlots: number; wheels?: boolean }\n /** Id of the weapon in the arsenal when the item is also one. */\n weapon?: string\n /** Id of the liquid (`game-fluids`) when the item holds one. */\n fluid?: { liquid: string; liters: number }\n uses?: readonly string[]\n finds?: { places: readonly PlaceTag[] }\n /** Battery-like items: share of the charge lost per month. */\n charge?: { lossPerMonth: number }\n /** Fuel-like items: after `afterDays` each use fails with probability `chance`. */\n agingFault?: { afterDays: number; chance: number }\n /** Key of the 3D model in `game-items-three`; without it a simple shape from `shape` is drawn. */\n model?: string\n}\n\n/** A bundle of content: items plus the categories, places and containers they rely on. */\nexport interface ItemPack {\n id: string\n items: readonly ItemDef[]\n categories?: readonly CategoryDef[]\n places?: readonly PlaceDef[]\n containers?: readonly ContainerDef[]\n /** What using an item does, in priority order (`resolveUse`). */\n useEffects?: readonly UseEffectDef[]\n recipes?: readonly RecipeDef[]\n /** Explicit pools of what a kind of furniture holds, by key (`fridge`, `sink`...); they win over the category roll of a container. */\n pools?: Readonly<Record<string, readonly PoolEntry[]>>\n /** Keys that share another key's pool (`garage_wardrobe` -> `wardrobe`). */\n poolAliases?: Readonly<Record<string, string>>\n}\n","import type { ItemRules } from './rules-types'\nimport type { CategoryDef, ContainerDef, ItemDef, PlaceDef } from './types'\nimport { BODY_SLOTS, DURABILITY_KINDS, RARITIES } from './types'\n\nexport interface ItemsParts {\n readonly items: ReadonlyMap<string, ItemDef>\n readonly categories: ReadonlyMap<string, CategoryDef>\n readonly places: ReadonlyMap<string, PlaceDef>\n readonly containers: ReadonlyMap<string, ContainerDef>\n readonly rules: ItemRules\n}\n\n/** Ids that appear more than once in a list a game passed in. */\nexport const findDuplicateIds = (kind: string, entries: readonly { readonly id: string }[] | undefined): string[] => {\n const seen = new Set<string>()\n const problems: string[] = []\n for (const { id } of entries ?? []) {\n if (seen.has(id)) problems.push(`${kind} \"${id}\" is listed more than once`)\n seen.add(id)\n }\n return problems\n}\n\nconst isFraction = (value: number | undefined): boolean => value === undefined || (value >= 0 && value <= 1)\nconst isPositive = (value: number): boolean => Number.isFinite(value) && value > 0\n\nconst checkItem = (item: ItemDef, { categories, places }: ItemsParts): string[] => {\n const problems: string[] = []\n const issue = (text: string): number => problems.push(`item \"${item.id}\" ${text}`)\n if (!categories.has(item.category)) issue(`has unknown category \"${item.category}\"`)\n if (!RARITIES.includes(item.rarity)) issue(`has unknown rarity \"${item.rarity}\"`)\n if (item.size.length !== 3 || !item.size.every(isPositive)) issue(`has an invalid size [${item.size.join(', ')}]`)\n if (!(item.weight >= 0) || !Number.isFinite(item.weight)) issue(`has a weight of ${item.weight} kg`)\n if (item.volume !== undefined && !isPositive(item.volume)) issue(`has a volume of ${item.volume} L`)\n if (item.shelfLife !== undefined && !isPositive(item.shelfLife)) issue(`has a shelf life of ${item.shelfLife} days`)\n if (item.portions !== undefined && !(Number.isInteger(item.portions) && item.portions > 0)) issue(`has ${item.portions} portions`)\n if (item.durability && !DURABILITY_KINDS.includes(item.durability.kind)) issue(`has unknown durability kind \"${item.durability.kind}\"`)\n const { protection } = item\n if (protection) {\n for (const slot of protection.slots) if (!BODY_SLOTS.includes(slot)) issue(`protects unknown body slot \"${slot}\"`)\n if (protection.slots.length === 0) issue('has protection but covers no body slot')\n if (![protection.bite, protection.scratch, protection.warmth].every(isFraction)) issue('has a protection value outside 0..1')\n }\n if (item.carry && !(item.carry.capacityKg > 0 && isFraction(item.carry.weightReduction))) issue('has an invalid carry (capacity above 0, reduction within 0..1)')\n if (places.size > 0) for (const place of item.finds?.places ?? []) if (!places.has(place)) issue(`is found in unknown place \"${place}\"`)\n return problems\n}\n\nconst checkContainer = (container: ContainerDef, { categories }: ItemsParts): string[] => {\n const problems: string[] = []\n for (const category of Object.keys(container.categories ?? {})) {\n if (!categories.has(category)) problems.push(`container \"${container.id}\" draws from unknown category \"${category}\"`)\n }\n const [low, high] = container.count ?? [0, 0]\n if (low < 0 || high < low) problems.push(`container \"${container.id}\" has an invalid count [${low}, ${high}]`)\n return problems\n}\n\nconst checkRules = ({ rarity, freshness, storage, carry, protection }: ItemRules): string[] => {\n const problems: string[] = []\n const hasNegativeWeight = RARITIES.some((id) => !(rarity.weights[id] >= 0))\n if (hasNegativeWeight || !RARITIES.some((id) => rarity.weights[id] > 0 && !rarity.fixedOnly.includes(id))) {\n problems.push('rules.rarity.weights must be non-negative with at least one rollable rarity above 0')\n }\n if (!(freshness.stale > 0 && freshness.stale < freshness.spoiled && freshness.spoiled < freshness.rotten)) problems.push('rules.freshness must rise: 0 < stale < spoiled < rotten')\n for (const [id, rule] of Object.entries(storage)) if (!isPositive(rule.multiplier) || (rule.limitDays !== undefined && !isPositive(rule.afterLimit ?? 0))) problems.push(`rules.storage \"${id}\" is invalid`)\n if (!(isPositive(carry.baseKg) && carry.perStrengthKg >= 0 && isPositive(carry.factor) && carry.encumbered > 0 && carry.overloaded > carry.encumbered)) problems.push('rules.carry is invalid')\n if (!(protection.cap > 0 && protection.cap <= 1 && isFraction(protection.tornShare))) problems.push('rules.protection is invalid')\n return problems\n}\n\n/** Every inconsistency of a catalog, one line each; empty when it is sound. */\nexport const checkItems = (parts: ItemsParts): string[] => [\n ...[...parts.items.values()].flatMap((item) => checkItem(item, parts)),\n ...[...parts.containers.values()].flatMap((container) => checkContainer(container, parts)),\n ...checkRules(parts.rules),\n]\n","import type { ItemRules } from './rules-types'\n\n/**\n * The numbers of the rules, from the team's Vale Cinzento delivery. `storage` was read by hand from its table (Validade e apodrecimento) so the\n * skeleton runs; the source test of the catalog tool proves it against the HTML (legendary and unique are never rolled: L276). Every field is an option of `createItems({ rules })`.\n */\nexport const DEFAULT_RULES: ItemRules = {\n rarity: {\n weights: { common: 60, uncommon: 28, rare: 9, very_rare: 2.5, legendary: 0.5, unique: 0 },\n fixedOnly: ['legendary', 'unique'],\n },\n freshness: { stale: 0.5, spoiled: 1, rotten: 1.5 },\n storage: {\n fridge: { multiplier: 0.33, needsPower: true },\n freezer: { multiplier: 0.1, needsPower: true },\n cooler: { multiplier: 0.5, limitDays: 2, afterLimit: 1 },\n delivery_bag: { multiplier: 0.8 },\n cellar: { multiplier: 0.66 },\n ambient: { multiplier: 1 },\n hot: { multiplier: 2 },\n },\n carry: { baseKg: 8, perStrengthKg: 2.5, factor: 1.2, encumbered: 1, overloaded: 1.5 },\n protection: { cap: 0.9, wear: { bite: 8, scratch: 3 }, tornShare: 0.25, repairMargin: 10 },\n aging: { thawShelfDays: { freezer: 2 } },\n inventory: { defaultSlots: 10, encumberedRunFactor: 0.75 },\n use: {\n freshness: {\n stale: { satietyFactor: 0.7, poisonChance: 0.1, morale: 0, isEdible: true },\n spoiled: { satietyFactor: 0.7, poisonChance: 0.5, morale: -20, isEdible: true },\n rotten: { satietyFactor: 0, poisonChance: 0, morale: 0, isEdible: false },\n },\n cookedPoisonFactor: 0.25,\n },\n spawn: {\n retailNew: true,\n retailPlaces: ['supermarket', 'pharmacy', 'mall', 'gas_station', 'gun_shop'],\n retailContainers: ['store_shelf', 'stockroom'],\n condition: { common: [30, 90], uncommon: [40, 90], rare: [50, 100], very_rare: [50, 100], legendary: [50, 100], unique: [50, 100] },\n ageShare: [0, 0.6],\n charge: [0.2, 1],\n fillable: ['fuel_jerrycan'],\n fill: [0, 0.6],\n },\n finds: {\n fallbackContainer: 'zombie_corpse',\n rollExcluded: ['ammo_7_62x39'],\n depletion: [\n { places: ['pharmacy', 'gun_shop', 'police_station'], perDay: 0.05, floor: 0.3 },\n { places: ['supermarket', 'gas_station'], perDay: 0.04, floor: 0.35 },\n { places: ['mall', 'hospital'], perDay: 0.025, floor: 0.5 },\n { places: ['house', 'apartment'], perDay: 0.01, floor: 0.7 },\n { places: ['farm', 'warehouse', 'mine', 'dam', 'lodge', 'church'], perDay: 0.005, floor: 0.85 },\n { places: ['military_base'], perDay: 0, floor: 1 },\n ],\n regionMultiplier: {},\n states: { normal: 'normal', fortified: 'fortified', abandoned: 'abandoned' },\n pool: {\n defaultFootprint: 0.5,\n offset: 1.5,\n perSquareMetre: 3,\n jitter: 1.5,\n min: 2,\n max: 5,\n fortifiedExtra: 2,\n supplyWeight: 2.5,\n supplyExtraQty: 1,\n abandonedEmptyChance: 0.4,\n abandonedKept: 1,\n junkChance: 0.5,\n junkItem: 'food_packaging',\n spoiledFoodItem: 'leftover_meal',\n coldContainers: ['geladeira', 'refrig_exp', 'freezer'],\n },\n },\n}\n","import { DEFAULT_RULES } from './rules'\nimport type { ItemRules, StorageId } from './rules-types'\nimport type { ItemDef } from './types'\n\nexport type Freshness = 'fresh' | 'stale' | 'spoiled' | 'rotten'\n\n/**\n * What an item remembers about its age. Nothing ticks: the account is closed lazily, when the item moves or someone looks at it.\n * Times are in days on the host's clock.\n */\nexport interface AgeState {\n /** Effective age: days at room temperature. */\n ageDays: number\n /** Time at which `ageDays` was last closed. */\n since: number\n storage: StorageId\n /** Time at which the item entered `storage` (a cooler only helps for its first days). */\n storedAt: number\n /** Replaces the item's shelf life (a thawed freezer leaves 2 days). */\n shelfLife?: number\n}\n\nexport interface AgeOptions {\n /** Whether the storage has power right now (fridge, freezer). Default true. */\n powered?: boolean\n rules?: ItemRules\n}\n\nconst storageRuleOf = (rules: ItemRules, storage: StorageId) => {\n const rule = rules.storage[storage]\n if (!rule) throw new Error(`game-items: unknown storage \"${storage}\"`)\n return rule\n}\n\n/** The multiplier of the age at one instant: `heldDays` is how long the item has been in `storage`. */\nexport const storageMultiplier = (storage: StorageId, options: AgeOptions & { heldDays?: number } = {}): number => {\n const { powered = true, rules = DEFAULT_RULES, heldDays = 0 } = options\n const rule = storageRuleOf(rules, storage)\n if (rule.needsPower && !powered) return 1\n if (rule.limitDays !== undefined && heldDays >= rule.limitDays) return rule.afterLimit ?? 1\n return rule.multiplier\n}\n\n/** Days of effective age accrued between `from` and `to` in a storage the item entered at `storedAt`. */\nconst accruedDays = (storage: StorageId, window: { storedAt: number; from: number; to: number }, options: AgeOptions): number => {\n const { powered = true, rules = DEFAULT_RULES } = options\n const rule = storageRuleOf(rules, storage)\n const elapsed = window.to - window.from\n if (elapsed <= 0) return 0\n if (rule.needsPower && !powered) return elapsed\n if (rule.limitDays === undefined) return elapsed * rule.multiplier\n const limitEnd = window.storedAt + rule.limitDays\n const early = Math.max(0, Math.min(window.to, limitEnd) - Math.max(window.from, window.storedAt))\n return early * rule.multiplier + (elapsed - early) * (rule.afterLimit ?? 1)\n}\n\n/** Closes the account up to `now`: `ageDays += (now - since) x multiplier`. Pure: returns the new state. */\nexport const advanceAge = (state: AgeState, now: number, options: AgeOptions = {}): AgeState => {\n const { powered = true, rules = DEFAULT_RULES } = options\n const rule = storageRuleOf(rules, state.storage)\n const thawDays = rules.aging.thawShelfDays[state.storage]\n const isThawing = rule.needsPower === true && !powered && thawDays !== undefined && state.shelfLife === undefined\n const base = isThawing ? { ...state, ageDays: 0, shelfLife: thawDays } : state\n const ageDays = base.ageDays + accruedDays(state.storage, { storedAt: state.storedAt, from: state.since, to: now }, options)\n return { ...base, ageDays, since: Math.max(now, state.since) }\n}\n\n/** Moves the item to another storage: closes the account in the old one, then the new multiplier applies from `now`. */\nexport const moveToStorage = (state: AgeState, now: number, storage: StorageId, options: AgeOptions = {}): AgeState => ({\n ...advanceAge(state, now, options),\n storage,\n storedAt: now,\n})\n\n/** Age as a share of the shelf life; 0 for an item that does not spoil. */\nexport const shelfRatio = (item: ItemDef, state: AgeState): number => {\n const shelfLife = state.shelfLife ?? item.shelfLife\n return shelfLife === undefined ? 0 : state.ageDays / shelfLife\n}\n\n/** `fresh`, `stale`, `spoiled` or `rotten` at 0.5, 1 and 1.5 of the shelf life (the rule's `freshness`). Closes the account up to `now` first. */\nexport const freshness = (item: ItemDef, state: AgeState, now: number, options: AgeOptions = {}): Freshness => {\n const { rules = DEFAULT_RULES } = options\n const ratio = shelfRatio(item, advanceAge(state, now, options))\n if (ratio >= rules.freshness.rotten) return 'rotten'\n if (ratio >= rules.freshness.spoiled) return 'spoiled'\n if (ratio >= rules.freshness.stale) return 'stale'\n return 'fresh'\n}\n\n/** Charge left (0..1) of a battery-like item: it loses `charge.lossPerMonth` of the full charge per 30 days of effective age. */\nexport const chargeLevel = (item: ItemDef, initialCharge: number, ageDays: number): number => {\n if (!item.charge) return initialCharge\n return Math.max(0, initialCharge - item.charge.lossPerMonth * (ageDays / 30))\n}\n\n/** True when one use of an old fuel-like item fails: past `agingFault.afterDays` each use fails with probability `chance`. Draws once, only when it can fail. */\nexport const failsToStart = (item: ItemDef, ageDays: number, random: () => number): boolean => {\n if (!item.agingFault || ageDays <= item.agingFault.afterDays) return false\n return random() < item.agingFault.chance\n}\n","import { DEFAULT_RULES } from './rules'\nimport type { ItemRules } from './rules-types'\nimport type { BodySlot, ItemDef } from './types'\n\nexport type AttackKind = 'bite' | 'scratch'\n\n/** A piece of clothing on a body: the item and its condition, 0 (torn) to 100 (new). */\nexport interface WornPiece {\n item: ItemDef\n condition: number\n}\n\nconst FULL_CONDITION = 100\n\nconst covers = (piece: WornPiece, slot: BodySlot): boolean => piece.item.protection?.slots.includes(slot) ?? false\n\n/** What one piece blocks of an attack: its value times its condition; a torn piece (condition 0) keeps `tornShare` of the value. */\nexport const pieceBlock = (piece: WornPiece, attack: AttackKind, rules: ItemRules = DEFAULT_RULES): number => {\n const value = piece.item.protection?.[attack] ?? 0\n const share = piece.condition <= 0 ? rules.protection.tornShare : piece.condition / FULL_CONDITION\n return value * share\n}\n\n/** Share of an attack on `slot` that clothing blocks: `1 - PROD(1 - value x condition)`, never above the cap (there is always some risk). */\nexport const blockChance = (pieces: readonly WornPiece[], slot: BodySlot, attack: AttackKind, rules: ItemRules = DEFAULT_RULES): number => {\n const unblocked = pieces.filter((piece) => covers(piece, slot)).reduce((product, piece) => product * (1 - pieceBlock(piece, attack, rules)), 1)\n return Math.min(rules.protection.cap, 1 - unblocked)\n}\n\n/** A blocked attack wears every piece that covers the slot and blocks something: bite -8, scratch -3 (never below 0). */\nexport const wearBlocked = (pieces: readonly WornPiece[], slot: BodySlot, attack: AttackKind, rules: ItemRules = DEFAULT_RULES): WornPiece[] =>\n pieces.map((piece) => {\n if (!covers(piece, slot) || pieceBlock(piece, attack, rules) <= 0) return piece\n return { ...piece, condition: Math.max(0, piece.condition - rules.protection.wear[attack]) }\n })\n\n/** A repair kit restores up to the maximum condition minus the margin (10); a piece already better is left alone. */\nexport const repairPiece = (piece: WornPiece, rules: ItemRules = DEFAULT_RULES, maxCondition: number = FULL_CONDITION): WornPiece => ({\n ...piece,\n condition: Math.max(piece.condition, maxCondition - rules.protection.repairMargin),\n})\n","import { DEFAULT_RULES } from './rules'\nimport type { ItemRules } from './rules-types'\nimport type { ItemDef } from './types'\n\nexport interface CarryEntry {\n item: ItemDef\n count: number\n}\n\nexport type LoadLevel = 'normal' | 'encumbered' | 'overloaded'\n\nexport interface LoadState {\n /** Load as a share of the maximum. */\n ratio: number\n level: LoadLevel\n /** Multiplier of running speed and breath. */\n runFactor: number\n canRun: boolean\n}\n\n/** What a character can carry, kg: `(8 + 2.5 x strength) x 1.2` with the default rules. */\nexport const maxLoadKg = (strength: number, rules: ItemRules = DEFAULT_RULES): number => (rules.carry.baseKg + rules.carry.perStrengthKg * strength) * rules.carry.factor\n\nconst sumKg = (entries: readonly CarryEntry[]): number => entries.reduce((total, entry) => total + entry.item.weight * entry.count, 0)\n\n/** Weight carried: what is outside the bag counts in full, what is inside counts times `(1 - weightReduction)`. */\nexport const carriedKg = (parts: { loose: readonly CarryEntry[]; packed?: readonly CarryEntry[]; weightReduction?: number }): number =>\n sumKg(parts.loose) + sumKg(parts.packed ?? []) * (1 - (parts.weightReduction ?? 0))\n\n/** Above 100% of the maximum, running and breath drop 25%; above 150% the character cannot run. */\nexport const loadState = (loadKg: number, maxKg: number, rules: ItemRules = DEFAULT_RULES): LoadState => {\n const ratio = maxKg > 0 ? loadKg / maxKg : Number.POSITIVE_INFINITY\n if (ratio > rules.carry.overloaded) return { ratio, level: 'overloaded', runFactor: 0, canRun: false }\n if (ratio > rules.carry.encumbered) return { ratio, level: 'encumbered', runFactor: rules.inventory.encumberedRunFactor, canRun: true }\n return { ratio, level: 'normal', runFactor: 1, canRun: true }\n}\n\n/** The bag of a character: how many item slots it has and how much it holds. */\nexport interface BagOption {\n slots: number\n capacityKg: number\n}\n\n/** The bag a bag item gives: its `carry.capacityKg` is the slot count the team's game reads from `cap`; the weight limit is the character's. */\nexport const bagOption = (bag: ItemDef | undefined, characterMaxKg: number, rules: ItemRules = DEFAULT_RULES): BagOption => ({\n slots: bag?.carry ? Math.round(bag.carry.capacityKg) : rules.inventory.defaultSlots,\n capacityKg: characterMaxKg,\n})\n\nexport type TakeResult = 'ok' | 'bag_full' | 'too_heavy'\n\n/** Whether `item` can go into the bag now: first the slots, then the weight. */\nexport const canTake = (item: ItemDef, bag: BagOption, used: { slots: number; loadKg: number }): TakeResult => {\n if (used.slots >= bag.slots) return 'bag_full'\n if (used.loadKg + item.weight > bag.capacityKg) return 'too_heavy'\n return 'ok'\n}\n","import type { Freshness } from './decay'\nimport { DEFAULT_RULES } from './rules'\nimport type { ItemRules } from './rules-types'\nimport type { ItemDef } from './types'\nimport type { UseEffectDef } from './use-types'\n\nexport interface UseContext {\n /** State of the food, from `freshness()`. Default `fresh`. */\n freshness?: Freshness\n /** The food was cooked: it keeps only `cookedPoisonFactor` of its poison chance. */\n isCooked?: boolean\n}\n\nexport interface NutritionResult {\n satiety: number\n hydration: number\n morale: number\n poisonChance: number\n isEdible: boolean\n}\n\nexport interface UseResult {\n useId: string\n effect: string\n params: Readonly<Record<string, unknown>>\n /** The item is spent (false for food too rotten to eat). */\n consumes: boolean\n /** Only for `consume_nutrition`. */\n nutrition?: NutritionResult\n}\n\nconst FRESH_NUTRITION = { satietyFactor: 1, poisonChance: 0, morale: 0, isEdible: true }\n\nconst nutritionOf = (item: ItemDef, context: UseContext, rules: ItemRules): NutritionResult => {\n const state = context.freshness ?? 'fresh'\n const effect = state === 'fresh' ? FRESH_NUTRITION : rules.use.freshness[state]\n const poisonShare = context.isCooked ? rules.use.cookedPoisonFactor : 1\n return {\n satiety: (item.nutrition?.satiety ?? 0) * effect.satietyFactor,\n hydration: item.nutrition?.hydration ?? 0,\n morale: effect.morale,\n poisonChance: effect.poisonChance * poisonShare,\n isEdible: effect.isEdible,\n }\n}\n\nconst findEffect = (item: ItemDef, effects: readonly UseEffectDef[]): UseEffectDef | undefined =>\n effects.find((entry) => entry.items?.includes(item.id)) ?? effects.find((entry) => entry.category?.includes(item.category))\n\n/**\n * What using `item` does, as data: the host applies it (the player, the needs, the world). Pure. The first effect that lists the item wins, then the first\n * that lists its category; `undefined` when nothing happens. Food past its best follows `rules.use.freshness`.\n */\nexport const resolveUse = (item: ItemDef, effects: readonly UseEffectDef[], context: UseContext = {}, rules: ItemRules = DEFAULT_RULES): UseResult | undefined => {\n const def = findEffect(item, effects)\n if (!def) return undefined\n const base = { useId: def.id, effect: def.effect, params: def.params ?? {}, consumes: def.consumes }\n if (def.effect !== 'consume_nutrition') return base\n const nutrition = nutritionOf(item, context, rules)\n return { ...base, consumes: def.consumes && nutrition.isEdible, nutrition }\n}\n","import type { ItemsCatalog } from './catalog-types'\nimport type { RecipeDef, RecipeInput, RecipeOutput } from './recipe-types'\n\nexport interface CraftContext {\n catalog: ItemsCatalog\n /** Count of each item the character has, by id. */\n inventory: ReadonlyMap<string, number>\n /** Litres of each fluid at hand, by fluid id. */\n fluids?: Readonly<Record<string, number>>\n /** Stations and things of the world that are near (`fire`, `table`, `soil`). */\n world?: ReadonlySet<string>\n /** Skill levels by id. Without it the skill requirement is ignored. */\n skills?: Readonly<Record<string, number>>\n /** Ids unlocked so far. Without it `unlockedBy` is ignored. */\n unlocked?: ReadonlySet<string>\n}\n\nexport interface CraftCheck {\n isPossible: boolean\n /** One entry per unmet requirement: `item:nails`, `any:salt|sugar`, `match:cookable`, `fluid:water`, `world:fire`, `tool:hammer|axe`, `skill:carpentry:2`, `unlock:magazine`. */\n missing: string[]\n}\n\nexport type Consumption = { item: string; count: number; meters?: number } | { fluid: string; liters: number }\n\nexport type CraftOutcome = { item: string; count: number } | { effect: string; params: Readonly<Record<string, unknown>>; text?: string }\n\nexport type CraftResult = { isCrafted: true; seconds: number; consumed: Consumption[]; output: CraftOutcome } | { isCrafted: false; missing: string[] }\n\nconst countOf = (context: CraftContext, id: string): number => context.inventory.get(id) ?? 0\n\n/** Ids that satisfy an item input, in the order they are used. */\nconst candidatesOf = (input: RecipeInput, context: CraftContext): string[] => {\n if (input.item !== undefined) return [input.item]\n if (input.any) return [...input.any]\n if (!input.match) return []\n const { category, cookable } = input.match\n return context.catalog.list().filter((item) => (category === undefined || item.category === category) && (cookable === undefined || item.cookable === cookable)).map((item) => item.id)\n}\n\nconst describeInput = (input: RecipeInput): string => {\n if (input.item !== undefined) return `item:${input.item}`\n if (input.any) return `any:${input.any.join('|')}`\n if (input.match) return `match:${input.match.category ?? 'cookable'}`\n if (input.fluid !== undefined) return `fluid:${input.fluid}`\n return `world:${(input.world ?? []).join('|')}`\n}\n\n/** Takes `needed` units from the candidates in order; returns what was taken, or undefined when there is not enough. */\nconst takeUnits = (candidates: readonly string[], needed: number, context: CraftContext): Consumption[] | undefined => {\n const taken: Consumption[] = []\n let remaining = needed\n for (const id of candidates) {\n if (remaining <= 0) break\n const count = Math.min(remaining, countOf(context, id))\n if (count > 0) taken.push({ item: id, count })\n remaining -= count\n }\n return remaining > 0 ? undefined : taken\n}\n\nconst consumptionFor = (input: RecipeInput, context: CraftContext): Consumption[] | undefined => {\n if (input.world) return input.world.some((thing) => context.world?.has(thing)) ? [] : undefined\n if (input.fluid !== undefined) {\n const liters = input.liters ?? 1\n return (context.fluids?.[input.fluid] ?? 0) >= liters ? [{ fluid: input.fluid, liters }] : undefined\n }\n const taken = takeUnits(candidatesOf(input, context), input.qty ?? 1, context)\n if (!taken || input.meters === undefined) return taken\n return taken.map((entry) => ('item' in entry ? { ...entry, meters: input.meters as number } : entry))\n}\n\nconst toolMissing = (recipe: RecipeDef, context: CraftContext): string[] =>\n recipe.tools.flatMap((tool) => {\n const missing: string[] = []\n if (tool.anyOf.length > 0 && !tool.anyOf.some((id) => countOf(context, id) > 0)) missing.push(`tool:${tool.anyOf.join('|')}`)\n if (tool.world && !tool.world.some((station) => context.world?.has(station))) missing.push(`world:${tool.world.join('|')}`)\n return missing\n })\n\nconst gateMissing = (recipe: RecipeDef, context: CraftContext): string[] => {\n const missing: string[] = []\n if (context.skills && recipe.skill && (context.skills[recipe.skill.id] ?? 0) < recipe.skill.level) missing.push(`skill:${recipe.skill.id}:${recipe.skill.level}`)\n if (context.unlocked && recipe.unlockedBy !== undefined && !context.unlocked.has(recipe.unlockedBy)) missing.push(`unlock:${recipe.unlockedBy}`)\n return missing\n}\n\n/** Whether the character can make the recipe now, and what is missing when not. Skill and `unlockedBy` are ignored when the host does not pass `skills` or `unlocked`. */\nexport const canCraft = (recipe: RecipeDef, context: CraftContext): CraftCheck => {\n const missing = [\n ...gateMissing(recipe, context),\n ...toolMissing(recipe, context),\n ...recipe.inputs.filter((input) => consumptionFor(input, context) === undefined).map(describeInput),\n ]\n return { isPossible: missing.length === 0, missing }\n}\n\nconst outcomeOf = (output: RecipeOutput, random: () => number): CraftOutcome => {\n if ('effect' in output) return { effect: output.effect, params: output.params, ...(output.text === undefined ? {} : { text: output.text }) }\n const [low, high] = output.qty\n return { item: output.item, count: low + Math.floor(random() * (high - low + 1)) }\n}\n\n/**\n * Makes the recipe: what is consumed and what comes out. Pure: the host takes the consumed things from its inventory and applies the output (an item is\n * added, an effect such as \"window with 200 life\" is the host's to handle). Draws one number only when the output quantity is a range.\n */\nexport const craft = (recipe: RecipeDef, context: CraftContext, random: () => number): CraftResult => {\n const check = canCraft(recipe, context)\n if (!check.isPossible) return { isCrafted: false, missing: check.missing }\n const consumed = recipe.inputs.flatMap((input) => consumptionFor(input, context) ?? [])\n return { isCrafted: true, seconds: recipe.seconds, consumed, output: outcomeOf(recipe.output, random) }\n}\n","import type { DepletionRule } from '../rules-types'\nimport type { ItemRules } from '../rules-types'\nimport type { PlaceTag } from '../types'\n\n/** Share of the normal stock a place still has `day` days into the outbreak: `max(floor, 1 - perDay x day)`; 1 on day 0 and where no rule names the place. */\nexport const depletionFactor = (place: PlaceTag, day: number, rules: ItemRules): number => {\n if (day <= 0) return 1\n const rule: DepletionRule | undefined = rules.finds.depletion.find((entry) => entry.places.includes(place))\n return rule ? Math.max(rule.floor, 1 - rule.perDay * day) : 1\n}\n\n/** The count of stacks after the days of the outbreak and the region: the roll is drawn first, so day 0 and an unknown region leave it as it was. */\nexport const scaleCount = (count: number, scale: { place: PlaceTag; day: number; region?: string }, rules: ItemRules): number => {\n const region = scale.region === undefined ? 1 : (rules.finds.regionMultiplier[scale.region] ?? 1)\n return Math.round(count * depletionFactor(scale.place, scale.day, rules) * region)\n}\n","import type { ItemsCatalog } from '../catalog-types'\nimport type { ItemCategory, ItemDef, PlaceTag } from '../types'\n\n/** The items of `category` a roll can draw in `place`: no fixed-spot rarity, nothing excluded; when none lists the place, every one of the category (the game's recuo). */\nexport const rollableItems = (catalog: ItemsCatalog, category: ItemCategory, place: PlaceTag): ItemDef[] => {\n const { rules } = catalog\n const rollable = catalog.byCategory(category).filter((item) => !rules.rarity.fixedOnly.includes(item.rarity) && !rules.finds.rollExcluded.includes(item.id))\n const here = rollable.filter((item) => item.finds?.places.includes(place))\n return here.length > 0 ? here : rollable\n}\n\nexport const rarityWeight = (catalog: ItemsCatalog, item: ItemDef): number => catalog.rules.rarity.weights[item.rarity]\n","import type { ItemsCatalog } from '../catalog-types'\nimport type { ItemCategory } from '../types'\n\nimport { scaleCount } from './depletion'\nimport { rarityWeight, rollableItems } from './rarity-pool'\nimport type { FindsQuery } from './types'\n\nconst pickCategory = (weights: Readonly<Record<ItemCategory, number>>, random: () => number): ItemCategory | undefined => {\n let remaining = random()\n const categories = Object.keys(weights)\n for (const category of categories) {\n remaining -= weights[category] as number\n if (remaining <= 0) return category\n }\n return categories[0]\n}\n\n/**\n * Port of the team game's `rollItems` (jogo.js L68796-68812) on the container table (`CONT_TAB`) and the rarity weights (`RAR_W`).\n *\n * Order of the random draws, the contract the golden test holds: one for the count; then for each stack one to pick the category, and (unless the category\n * has nothing to draw) one to pick the item among those of the place, by rarity weight. Nothing else draws. The count is scaled by the day and the region\n * after it is drawn, so day 0 gives exactly the game's rolls. Returns the item ids, one per stack.\n */\nexport const rollByCategory = (catalog: ItemsCatalog, query: FindsQuery): string[] => {\n const { rules } = catalog\n const table = catalog.containers.get(query.container) ?? catalog.containers.get(rules.finds.fallbackContainer)\n if (!table) return []\n const [low, high] = table.count ?? [0, 0]\n const drawn = low + Math.floor(query.rng() * (high - low + 1))\n const count = scaleCount(drawn, { place: query.place, day: query.day ?? 0, ...(query.region === undefined ? {} : { region: query.region }) }, rules)\n const weights = table.categories ?? table.categoriesByPlace?.[query.place] ?? table.categoriesByPlace?.['*']\n if (!weights) return []\n\n const picked: string[] = []\n for (let stack = 0; stack < count; stack++) {\n const category = pickCategory(weights, query.rng)\n const pool = category === undefined ? [] : rollableItems(catalog, category, query.place)\n if (pool.length === 0) continue\n const total = pool.reduce((sum, item) => sum + rarityWeight(catalog, item), 0)\n let remaining = query.rng() * total\n for (const item of pool) {\n remaining -= rarityWeight(catalog, item)\n if (remaining <= 0) {\n picked.push(item.id)\n break\n }\n }\n }\n return picked\n}\n","import type { ItemRules } from '../rules-types'\nimport type { FindState } from '../rules-types'\nimport type { PoolEntry } from '../types'\n\nimport type { FindsQuery } from './types'\n\nexport interface PoolPick {\n itemId: string\n count: number\n /** The pool entry it came from; none for the junk an abandoned container leaves. */\n entry?: PoolEntry\n}\n\ninterface Candidate {\n entry: PoolEntry\n weight: number\n}\n\n/** Draws without replacement by weight (the viewer's `ordemPonderada`): one draw per candidate, all of them, before anything is cut. */\nconst weightedOrder = (candidates: readonly Candidate[], random: () => number): Candidate[] => {\n const remaining = [...candidates]\n const ordered: Candidate[] = []\n while (remaining.length > 0) {\n const total = remaining.reduce((sum, candidate) => sum + candidate.weight, 0)\n let x = random() * total\n let index = 0\n for (; index < remaining.length - 1; index++) {\n x -= (remaining[index] as Candidate).weight\n if (x < 0) break\n }\n ordered.push(...remaining.splice(index, 1))\n }\n return ordered\n}\n\nconst countFor = (pool: readonly PoolEntry[], state: FindState, footprint: number, query: FindsQuery, rules: ItemRules): number => {\n const settings = rules.finds.pool\n const base = Math.max(settings.min, Math.min(settings.max, Math.round(settings.offset + footprint * settings.perSquareMetre + query.rng() * settings.jitter)))\n if (state === 'fortified') return Math.min(pool.length, base + settings.fortifiedExtra)\n if (state === 'abandoned') return query.rng() < settings.abandonedEmptyChance ? 0 : settings.abandonedKept\n return base\n}\n\n/**\n * Port of the 3D house viewer's `sorteiaConteudo` (visor-casas-3d.js L10837-10863) over a pool of what a kind of furniture holds.\n *\n * Order of the random draws, the contract the golden test holds: one for the count (`base`); for an abandoned container one more (empty or not); then a full\n * weighted order of the pool (one draw per entry, before the cut to the count); then one per kept entry for its quantity; and only for an abandoned and empty\n * container one last draw for the junk. Fortified: more entries, supplies weigh x2.5 and give +1. Abandoned: 40% empty, otherwise one entry, plus junk and,\n * in a fridge or freezer, spoiled food.\n */\nexport const rollExplicitPool = (pool: readonly PoolEntry[], state: FindState, query: FindsQuery, rules: ItemRules): PoolPick[] => {\n const settings = rules.finds.pool\n const n = countFor(pool, state, query.footprint ?? settings.defaultFootprint, query, rules)\n const isFortified = state === 'fortified'\n const candidates = pool.map((entry) => ({ entry, weight: isFortified && entry.isSupply ? entry.weight * settings.supplyWeight : entry.weight }))\n\n const picks: PoolPick[] = []\n for (const { entry } of weightedOrder(candidates, query.rng).slice(0, n)) {\n const [low, high] = entry.qty\n const bonus = isFortified && entry.isSupply ? settings.supplyExtraQty : 0\n picks.push({ itemId: entry.item, count: low + Math.floor(query.rng() * (high - low + 1)) + bonus, entry })\n }\n if (state === 'abandoned') {\n if (picks.length === 0 && query.rng() < settings.junkChance) picks.push({ itemId: settings.junkItem, count: 1 })\n if (settings.coldContainers.includes(query.container) || (query.key !== undefined && settings.coldContainers.includes(query.key))) picks.push({ itemId: settings.spoiledFoodItem, count: 1 })\n }\n return picks\n}\n","import { deepMerge } from '@adatechnology/game-contracts'\nimport type { DeepPartial } from '@adatechnology/game-contracts'\n\nimport type { ItemsCatalog } from '../catalog-types'\nimport type { ItemRules } from '../rules-types'\n\nimport { rollByCategory } from './category-roll'\nimport { rollExplicitPool } from './explicit-pool'\nimport { spawnData } from './spawn-state'\nimport type { FindStack, FindsProvider, FindsQuery } from './types'\n\nexport interface FindsProviderOptions {\n /** `team` (default): a container with an explicit pool in the catalog uses it; `none`: always the category roll. */\n pools?: 'team' | 'none'\n /** Changes to the `finds` and `spawn` rules for this provider. */\n rules?: DeepPartial<Pick<ItemRules, 'finds' | 'spawn'>>\n /** Names a host uses for a place, mapped to the place tags of the catalog (a floorplan `cabin` is a `lodge`). */\n placeAliases?: Readonly<Record<string, string>>\n /** Places where the explicit pools apply (the viewer's pools describe dwellings); the others use the category roll. Default: every place. */\n poolPlaces?: readonly string[]\n /** A container with neither a pool nor a table: `fallback` (default) uses the table of `rules.finds.fallbackContainer`, like the game; `pass` answers `null` so the host's own default applies. */\n unknownContainers?: 'fallback' | 'pass'\n}\n\n/**\n * What a container holds, as the floorplan's `FindsProvider` asks it. A container with an explicit pool (`query.key` or the container id) draws from it\n * (port of the viewer); otherwise the category roll of the game draws on the container table. Every stack is chosen first, in the order of the sources, and\n * only then each gets its state (age, condition, charge, fill) from the same generator. Items the catalog no longer has (removed by a game) are dropped\n * after the draws, so the others do not change.\n */\nexport function createFindsProvider(catalog: ItemsCatalog, options: FindsProviderOptions & { unknownContainers: 'pass' }): FindsProvider\nexport function createFindsProvider(catalog: ItemsCatalog, options?: FindsProviderOptions): { findsFor(query: FindsQuery): readonly FindStack[] }\nexport function createFindsProvider(catalog: ItemsCatalog, options: FindsProviderOptions = {}): FindsProvider {\n const rules = options.rules ? deepMerge(catalog.rules, options.rules) : catalog.rules\n const scoped: ItemsCatalog = rules === catalog.rules ? catalog : { ...catalog, rules }\n const usesPools = (options.pools ?? 'team') === 'team'\n\n const aliases = options.placeAliases ?? {}\n const poolPlaces = options.poolPlaces\n\n const passes = options.unknownContainers === 'pass'\n\n const choose = (query: FindsQuery): FindStack[] | null => {\n const pool = usesPools && (poolPlaces === undefined || poolPlaces.includes(query.place)) ? (scoped.pools.get(query.key ?? query.container) ?? scoped.pools.get(query.container)) : undefined\n if (!pool && passes && !scoped.containers.has(query.container)) return null\n if (!pool) return rollByCategory(scoped, query).map((itemId) => ({ itemId, count: 1 }))\n return rollExplicitPool(pool, rules.finds.states[query.state] ?? 'normal', query, rules).map(({ itemId, count }) => ({ itemId, count }))\n }\n\n return {\n findsFor(asked) {\n const query = aliases[asked.place] === undefined ? asked : { ...asked, place: aliases[asked.place] as string }\n const chosen = choose(query)\n if (chosen === null) return null\n return chosen\n .filter((stack) => scoped.has(stack.itemId))\n .map((stack) => {\n const data = spawnData(scoped.get(stack.itemId), query, scoped)\n return data ? { ...stack, data } : stack\n })\n },\n }\n}\n","import type { ItemsCatalog } from '../catalog-types'\nimport type { ItemDef } from '../types'\n\nimport type { FindData, FindsQuery } from './types'\n\nconst WEARING_DURABILITY = ['condition', 'hits', 'cuts']\n\nconst hasCondition = (item: ItemDef): boolean => item.protection !== undefined || item.weapon !== undefined || WEARING_DURABILITY.includes(item.durability?.kind ?? '')\n\nconst between = (range: readonly [number, number], random: () => number): number => range[0] + random() * (range[1] - range[0])\n\n/** Age of food when it turns up: the days since the outbreak plus 0 to 60% of the shelf life. On day 0 that is the normal turnover of the shelf. One draw. */\nexport const spawnAgeDays = (item: ItemDef, outbreakDays: number, random: () => number, catalog: ItemsCatalog): number | undefined =>\n item.shelfLife === undefined ? undefined : outbreakDays + between(catalog.rules.spawn.ageShare, random) * item.shelfLife\n\nconst isRetailStock = (query: FindsQuery, catalog: ItemsCatalog): boolean => {\n const { spawn } = catalog.rules\n const isRetail = spawn.retailNew && (query.day ?? 0) <= 0 && spawn.retailPlaces.includes(query.place)\n return isRetail && (spawn.retailContainers.length === 0 || spawn.retailContainers.includes(query.container))\n}\n\n/**\n * The state an item has when it turns up, drawn after all the stacks of a container were chosen (so the choice itself matches the sources): food age, condition\n * by rarity (100 for shop stock on day 0), battery charge and how full a jerrycan is. Draws in that order, only what applies.\n */\nexport const spawnData = (item: ItemDef, query: FindsQuery, catalog: ItemsCatalog): FindData | undefined => {\n const { spawn } = catalog.rules\n const data: { ageDays?: number; condition?: number; charge?: number; fill?: number } = {}\n const ageDays = spawnAgeDays(item, query.day ?? 0, query.rng, catalog)\n if (ageDays !== undefined) data.ageDays = ageDays\n if (hasCondition(item)) data.condition = isRetailStock(query, catalog) ? 100 : Math.round(between(spawn.condition[item.rarity], query.rng))\n if (item.charge) data.charge = between(spawn.charge, query.rng)\n if (spawn.fillable.includes(item.id)) data.fill = between(spawn.fill, query.rng)\n return Object.keys(data).length > 0 ? data : undefined\n}\n","import { fitsSize } from '@adatechnology/game-interactables'\nimport type { ItemStack, SlotSpec } from '@adatechnology/game-interactables'\n\nimport type { ItemsCatalog } from '../catalog-types'\n\nimport type { FindStack } from './types'\n\nexport interface PlacedFinds {\n /** One entry per slot, in the order of `slots`; null is empty. */\n contents: Array<ItemStack | null>\n /** Stacks that fit no free slot. */\n leftover: FindStack[]\n}\n\n/**\n * Puts the stacks in the slots of a container: each in the first free slot its item fits (`fitsSize`, width and depth may swap), a stack larger than the\n * item's `stack` splits over several slots. Pure and in order, so the same finds always land in the same slots. The result is the floorplan's `contents`.\n */\nexport const placeFinds = (stacks: readonly FindStack[], slots: readonly SlotSpec[], catalog: ItemsCatalog): PlacedFinds => {\n const contents: Array<ItemStack | null> = slots.map(() => null)\n const leftover: FindStack[] = []\n for (const stack of stacks) {\n const item = catalog.get(stack.itemId)\n const stackMax = item.stack ?? 1\n let remaining = stack.count\n while (remaining > 0) {\n const index = slots.findIndex((slot, position) => contents[position] === null && fitsSize(item.size, slot.max))\n if (index < 0) break\n const qty = Math.min(remaining, stackMax)\n contents[index] = { type: item.id, qty, ...(stack.data ? { data: { ...stack.data } } : {}) }\n remaining -= qty\n }\n if (remaining > 0) leftover.push({ ...stack, count: remaining })\n }\n return { contents, leftover }\n}\n","import type { LootTable, LootTables } from '@adatechnology/game-interactables'\n\nimport type { ItemsCatalog } from '../catalog-types'\nimport type { ContainerDef } from '../types'\n\nimport { depletionFactor } from './depletion'\nimport { rarityWeight, rollableItems } from './rarity-pool'\n\nexport interface LootTablesQuery {\n place: string\n /** Outbreak days; 0 is the normal world. */\n day?: number\n region?: string\n}\n\nconst weightsOf = (container: ContainerDef, place: string): Readonly<Record<string, number>> | undefined => container.categories ?? container.categoriesByPlace?.[place] ?? container.categoriesByPlace?.['*']\n\nconst tableFor = (catalog: ItemsCatalog, container: ContainerDef, query: LootTablesQuery): LootTable | undefined => {\n const weights = weightsOf(container, query.place)\n if (!weights) return undefined\n const entries = Object.entries(weights).flatMap(([category, categoryWeight]) => {\n const pool = rollableItems(catalog, category, query.place)\n const total = pool.reduce((sum, item) => sum + rarityWeight(catalog, item), 0)\n return total > 0 ? pool.map((item) => ({ type: item.id, weight: (categoryWeight * rarityWeight(catalog, item)) / total })) : []\n })\n const [low, high] = container.count ?? [0, 0]\n const region = query.region === undefined ? 1 : (catalog.rules.finds.regionMultiplier[query.region] ?? 1)\n const expected = ((low + high) / 2) * depletionFactor(query.place, query.day ?? 0, catalog.rules) * region\n return entries.length > 0 && high > 0 ? { fill: Math.min(1, expected / high), entries } : undefined\n}\n\n/**\n * The finds as the loot tables of `game-interactables`, for worlds that have no floorplan: one table per container of the place, named by the container id.\n * A table has one entry per rollable item, weighted by the container's category weight and the rarity (60/28/9/2.5). A slot is filled with probability\n * `fill` = expected count / most stacks, taking the container to have as many slots as its largest count; the day and the region scale the expected count.\n */\nexport const toLootTables = (catalog: ItemsCatalog, query: LootTablesQuery): LootTables => {\n const tables: LootTables = {}\n for (const container of catalog.containers.values()) {\n if (container.places && container.places.length > 0 && !container.places.includes(query.place)) continue\n const table = tableFor(catalog, container, query)\n if (table) tables[container.id] = table\n }\n return tables\n}\n","import type { CategoryDef, ItemDef, ItemPack, Rarity } from './types'\n\n/** The part of a weapon definition the bridge reads; `WeaponDef` of `@adatechnology/game-weapons` fits it without importing the package. */\nexport interface ArsenalWeaponLike {\n readonly id: string\n readonly mass: number\n readonly action: { readonly kind: string; readonly explosive?: string }\n readonly dimensions?: { readonly length: number }\n}\n\n/** The part of a calibre definition the bridge reads; `CaliberDef` fits it. */\nexport interface ArsenalCaliberLike {\n readonly id: string\n readonly bulletGrams: number\n readonly pellets?: number\n readonly caseType?: string\n readonly cartridge?: { readonly caseDiameter: number; readonly overallLength: number }\n}\n\n/** The part of an `Arsenal` the bridge reads. */\nexport interface ArsenalLike {\n readonly weapons: ReadonlyMap<string, ArsenalWeaponLike>\n readonly calibers: ReadonlyMap<string, ArsenalCaliberLike>\n}\n\n/** What the team's game says of a box or an arsenal item (`ammo-boxes.json`, from its `EXTRA` table); it wins over the estimates below. */\nexport interface ArsenalItemRecord {\n /** Id of the item; without it the bridge uses `ammo_<caliber>`, `firearm_<weapon>` or `throwable_<weapon>`. */\n id?: string\n kind: 'ammo_box' | 'firearm' | 'throwable'\n /** Calibre id of a box. */\n caliber?: string\n /** Weapon id of a firearm or throwable; for a throwable also the explosive it uses. */\n weapon?: string\n rounds?: number\n weight: number\n rarity: Rarity\n}\n\nexport interface ArsenalItemsOptions {\n records?: readonly ArsenalItemRecord[]\n}\n\nexport const ARSENAL_CATEGORIES: readonly CategoryDef[] = [\n { id: 'ammo', name: 'Ammo' },\n { id: 'firearms', name: 'Firearms' },\n { id: 'throwables', name: 'Throwables' },\n]\n\nconst MM = 0.001\nconst BOX_TARE_KG = 0.03\nconst BOX_WALL = 6 * MM\nconst ROUNDS_BY_CASE: Readonly<Record<string, number>> = { tiny: 50, pistol: 50, rifle: 20, shell: 25, big: 10 }\nconst DEFAULT_ROUNDS = 12\nconst CARTRIDGE_MASS_FACTOR = 2.3\nconst SHELL_MASS_FACTOR = 1.5\nconst BOX_DENSITY_KG_PER_M3 = 600\nconst THROWABLE_DENSITY_KG_PER_M3 = 1500\n\nconst cubeSide = (mass: number, density: number): number => Math.cbrt(mass / density)\n\n/** Estimates (REF) for a calibre the game has no box for: rounds by case type, mass of the rounds plus a tare, a box that packs them in a near-square tray. */\nconst estimateBox = (caliber: ArsenalCaliberLike): { rounds: number; weight: number; size: [number, number, number] } => {\n const rounds = ROUNDS_BY_CASE[caliber.caseType ?? ''] ?? DEFAULT_ROUNDS\n const factor = caliber.caseType === 'shell' ? SHELL_MASS_FACTOR : CARTRIDGE_MASS_FACTOR\n const weight = Number((rounds * caliber.bulletGrams * (caliber.pellets ?? 1) * factor * 0.001 + BOX_TARE_KG).toFixed(3))\n return { rounds, weight, size: boxSize(caliber, rounds, weight) }\n}\n\nconst boxSize = (caliber: ArsenalCaliberLike, rounds: number, weight: number): [number, number, number] => {\n if (!caliber.cartridge) {\n const side = cubeSide(weight, BOX_DENSITY_KG_PER_M3)\n return [side, side, side]\n }\n const rows = Math.ceil(Math.sqrt(rounds))\n const columns = Math.ceil(rounds / rows)\n const { caseDiameter, overallLength } = caliber.cartridge\n return [rows * caseDiameter * MM + BOX_WALL, overallLength * MM + BOX_WALL, columns * caseDiameter * MM + BOX_WALL]\n}\n\nconst ammoItem = (caliber: ArsenalCaliberLike, record: ArsenalItemRecord | undefined): ItemDef => {\n const estimate = estimateBox(caliber)\n const weight = record?.weight ?? estimate.weight\n return {\n id: record?.id ?? `ammo_${caliber.id}`,\n category: 'ammo',\n size: record?.weight === undefined ? estimate.size : boxSize(caliber, record.rounds ?? estimate.rounds, weight),\n weight,\n stack: 4,\n shape: 'box',\n rarity: record?.rarity ?? 'uncommon',\n }\n}\n\n/** A firearm's size from its length: height and thickness grow with it (a pistol 0.2 m is 0.10 x 0.03, a rifle 1 m is 0.20 x 0.05). Without a length, one from the mass. */\nconst firearmSize = (weapon: ArsenalWeaponLike): [number, number, number] => {\n const length = weapon.dimensions?.length ?? 0.15 + 0.2 * weapon.mass\n return [length, 0.08 + 0.12 * length, 0.02 + 0.03 * length]\n}\n\nconst weaponItem = (weapon: ArsenalWeaponLike, record: ArsenalItemRecord | undefined): ItemDef => {\n const isFirearm = weapon.action.kind === 'firearm'\n const side = cubeSide(weapon.mass, THROWABLE_DENSITY_KG_PER_M3)\n return {\n id: record?.id ?? `${isFirearm ? 'firearm' : 'throwable'}_${weapon.id}`,\n category: isFirearm ? 'firearms' : 'throwables',\n size: isFirearm ? firearmSize(weapon) : [side, side, side],\n weight: record?.weight ?? weapon.mass,\n stack: 1,\n shape: isFirearm ? 'long_tool' : 'jar',\n rarity: record?.rarity ?? 'unique',\n weapon: weapon.id,\n }\n}\n\nconst recordFor = (records: readonly ArsenalItemRecord[], match: (record: ArsenalItemRecord) => boolean): ArsenalItemRecord | undefined => records.find(match)\n\n/**\n * The arsenal as items, so a bag can carry it: a box `ammo_<caliber>` for every calibre, `firearm_<id>` for every firearm and `throwable_<id>` for every\n * throwable, with the mass and the real dimensions of the `WeaponDef` (`mass`, `dimensions.length`). A record from the team's game (`records`) gives the rounds\n * per box, the weight and the rarity of what it listed (9x19: 20 rounds, 0.24 kg); the rest are estimated from the calibre (REF): rounds by case type,\n * weight from the bullet. Returns a pack (with the `ammo`, `firearms` and `throwables` categories) for `createItems({ packs })`.\n */\nexport const itemsFromArsenal = (arsenal: ArsenalLike, options: ArsenalItemsOptions = {}): ItemPack => {\n const records = options.records ?? []\n const items: ItemDef[] = []\n for (const caliber of arsenal.calibers.values()) items.push(ammoItem(caliber, recordFor(records, (record) => record.kind === 'ammo_box' && record.caliber === caliber.id)))\n for (const weapon of arsenal.weapons.values()) {\n const kind = weapon.action.kind\n if (kind !== 'firearm' && kind !== 'throwable') continue\n items.push(weaponItem(weapon, recordFor(records, (record) => record.kind === kind && (record.weapon === weapon.id || record.weapon === weapon.action.explosive))))\n }\n return { id: 'arsenal', items, categories: ARSENAL_CATEGORIES }\n}\n","import { createFindsProvider } from '@adatechnology/game-items'\nimport type { FindsProvider, FindsProviderOptions, ItemsCatalog } from '@adatechnology/game-items'\n\n/**\n * Which pool of the visor's `CONTEUDO` each furniture category of the floorplan packs draws from (the team's name on the right is the key of\n * `GOODS_HOUSE_POOLS.pools`). The categories are the ones of the residential MIGRATION table (`geladeira` is `fridge`, `pia` is `kitchen_cabinet`, `aereo` is\n * `overhead_cabinet`, `pia_b` is `washbasin`...). `sapateira` (shoe rack) has no category in the floorplan packs yet.\n */\nexport const FLOORPLAN_POOL_KEYS: Readonly<Record<string, string>> = {\n fridge: 'geladeira',\n display_fridge: 'refrig_exp',\n freezer: 'freezer',\n kitchen_cabinet: 'pia',\n overhead_cabinet: 'aereo',\n washbasin: 'pia_b',\n wardrobe: 'guarda',\n wardrobe_large: 'guarda',\n dresser: 'comoda',\n console_table: 'comoda',\n nightstand: 'criado',\n filing_cabinet: 'gaveteiro',\n pantry: 'despensa',\n tv_unit: 'rack',\n laundry_cabinet: 'armario_lav',\n laundry_shelf: 'estante_lav',\n workbench: 'bancada',\n tool_shelf: 'estante_ferr',\n mailbox: 'correio',\n trash_bin: 'lixeira',\n outdoor_bin: 'lixeira',\n china_cabinet: 'cristaleira',\n}\n\n/** The place tags the floorplan templates use (`TemplateDef.place`) that the catalog names differently. */\nexport const FLOORPLAN_PLACES: Readonly<Record<string, string>> = {\n shack: 'house',\n cabin: 'lodge',\n camp: 'military_base',\n triage: 'hospital',\n emergency_room: 'hospital',\n market: 'supermarket',\n metalworks: 'workshop',\n}\n\n/** The explicit pools describe dwellings (the visor draws them for houses); every other place uses the category roll of the container. */\nexport const POOL_PLACES: readonly string[] = ['house', 'apartment', 'lodge']\n\n/** `poolAliases` for `createItems`: the furniture categories of the floorplan packs, as keys of the house pools. */\nexport const FLOORPLAN_POOL_ALIASES: Readonly<Record<string, string>> = FLOORPLAN_POOL_KEYS\n\n/**\n * The `FindsProvider` for `engine.registerFindsProvider` (`@adatechnology/game-floorplan`): the goods catalog (made with `createGoodsItems`) answers what a\n * piece of furniture holds. The catalog must come from `createGoodsItems` (it carries the aliases of the floorplan categories). Fridges and freezers keep the\n * spoiled food of the abandoned state under their floorplan ids too.\n */\nexport const createGoodsFindsProvider = (catalog: ItemsCatalog, options: Omit<FindsProviderOptions, 'unknownContainers'> = {}): FindsProvider =>\n createFindsProvider(catalog, {\n placeAliases: { ...FLOORPLAN_PLACES, ...options.placeAliases },\n poolPlaces: options.poolPlaces ?? POOL_PLACES,\n unknownContainers: 'pass',\n ...(options.pools ? { pools: options.pools } : {}),\n rules: {\n ...options.rules,\n finds: { ...options.rules?.finds, pool: { ...options.rules?.finds?.pool, coldContainers: options.rules?.finds?.pool?.coldContainers ?? [...catalog.rules.finds.pool.coldContainers, 'fridge', 'display_fridge'] } },\n },\n })\n","[\n {\n \"id\": \"ammo_9x19\",\n \"teamId\": \"mun_9x19\",\n \"kind\": \"ammo_box\",\n \"caliber\": \"9x19\",\n \"rounds\": 20,\n \"weight\": 0.24,\n \"rarity\": \"uncommon\"\n },\n {\n \"id\": \"ammo_12ga_00buck\",\n \"teamId\": \"mun_12ga\",\n \"kind\": \"ammo_box\",\n \"caliber\": \"12ga_00buck\",\n \"rounds\": 10,\n \"weight\": 0.4,\n \"rarity\": \"uncommon\"\n },\n {\n \"id\": \"ammo_7_62x39\",\n \"teamId\": \"mun_762\",\n \"kind\": \"ammo_box\",\n \"caliber\": \"7_62x39\",\n \"rounds\": 30,\n \"weight\": 0.54,\n \"rarity\": \"rare\"\n },\n {\n \"id\": \"ammo_7_62x51\",\n \"teamId\": \"mun_308\",\n \"kind\": \"ammo_box\",\n \"caliber\": \"7_62x51\",\n \"rounds\": 10,\n \"weight\": 0.25,\n \"rarity\": \"rare\"\n },\n {\n \"id\": \"firearm_remington_870\",\n \"teamId\": \"arma_r870\",\n \"kind\": \"firearm\",\n \"weapon\": \"remington_870\",\n \"weight\": 3.6,\n \"rarity\": \"unique\"\n },\n {\n \"id\": \"firearm_ak_47\",\n \"teamId\": \"arma_ak47\",\n \"kind\": \"firearm\",\n \"weapon\": \"ak_47\",\n \"weight\": 4.3,\n \"rarity\": \"unique\"\n },\n {\n \"id\": \"firearm_remington_700\",\n \"teamId\": \"arma_r700\",\n \"kind\": \"firearm\",\n \"weapon\": \"remington_700\",\n \"weight\": 4,\n \"rarity\": \"unique\"\n },\n {\n \"id\": \"throwable_m67\",\n \"teamId\": \"granada_m67\",\n \"kind\": \"throwable\",\n \"weapon\": \"m67\",\n \"weight\": 0.4,\n \"rarity\": \"unique\"\n },\n {\n \"id\": \"throwable_molotov\",\n \"teamId\": \"molotov\",\n \"kind\": \"throwable\",\n \"weapon\": \"molotov\",\n \"weight\": 0.8,\n \"rarity\": \"unique\"\n }\n]\n","[\n {\n \"id\": \"food\",\n \"name\": \"Food\"\n },\n {\n \"id\": \"drink\",\n \"name\": \"Drink\"\n },\n {\n \"id\": \"medical\",\n \"name\": \"Medical\"\n },\n {\n \"id\": \"tools\",\n \"name\": \"Tools\"\n },\n {\n \"id\": \"melee\",\n \"name\": \"Melee\"\n },\n {\n \"id\": \"materials\",\n \"name\": \"Materials\"\n },\n {\n \"id\": \"clothing\",\n \"name\": \"Clothing\"\n },\n {\n \"id\": \"bags\",\n \"name\": \"Bags\"\n },\n {\n \"id\": \"electronics\",\n \"name\": \"Electronics\"\n },\n {\n \"id\": \"fuel\",\n \"name\": \"Fuel\"\n },\n {\n \"id\": \"outdoors\",\n \"name\": \"Outdoors\"\n },\n {\n \"id\": \"books\",\n \"name\": \"Books\"\n },\n {\n \"id\": \"collectibles\",\n \"name\": \"Collectibles\"\n },\n {\n \"id\": \"keys\",\n \"name\": \"Keys\"\n },\n {\n \"id\": \"ammo\",\n \"name\": \"Ammo\"\n },\n {\n \"id\": \"firearms\",\n \"name\": \"Firearms\"\n },\n {\n \"id\": \"throwables\",\n \"name\": \"Throwables\"\n }\n]\n","[\n {\n \"id\": \"fridge\",\n \"teamName\": \"Geladeira\",\n \"gameKey\": \"geladeira\",\n \"places\": [\n \"house\",\n \"apartment\",\n \"supermarket\",\n \"gas_station\"\n ],\n \"count\": [\n 0,\n 4\n ],\n \"teamCount\": [\n 0,\n 4\n ],\n \"categories\": {\n \"food\": 0.55,\n \"drink\": 0.45\n },\n \"teamCategories\": \"comida perecível e bebida\",\n \"rule\": \"Sem energia, o perecível de dentro começa a contar como fora da geladeira.\"\n },\n {\n \"id\": \"kitchen_cabinet\",\n \"teamName\": \"Armário de cozinha\",\n \"gameKey\": \"cozinha\",\n \"places\": [\n \"house\",\n \"apartment\",\n \"church\",\n \"school\"\n ],\n \"count\": [\n 1,\n 4\n ],\n \"teamCount\": [\n 1,\n 4\n ],\n \"categories\": {\n \"food\": 0.7,\n \"melee\": 0.12,\n \"electronics\": 0.1,\n \"tools\": 0.08\n },\n \"teamCategories\": \"comida seca e enlatada, panela, abridor, isqueiro\"\n },\n {\n \"id\": \"bathroom_cabinet\",\n \"teamName\": \"Armário do banheiro\",\n \"gameKey\": \"banheiro\",\n \"places\": [\n \"house\",\n \"apartment\",\n \"school\"\n ],\n \"count\": [\n 0,\n 3\n ],\n \"teamCount\": [\n 0,\n 3\n ],\n \"categories\": {\n \"medical\": 1\n },\n \"teamCategories\": \"analgésico, curativo, álcool, remédio de uso contínuo\"\n },\n {\n \"id\": \"wardrobe\",\n \"teamName\": \"Guarda-roupa\",\n \"gameKey\": \"guarda\",\n \"places\": [\n \"house\",\n \"apartment\"\n ],\n \"count\": [\n 1,\n 5\n ],\n \"teamCount\": [\n 1,\n 5\n ],\n \"categories\": {\n \"clothing\": 0.6,\n \"bags\": 0.3,\n \"ammo\": 0.1\n },\n \"teamCategories\": \"roupas, mochila, dinheiro\",\n \"rule\": \"1 em cada 12 casas: arma do Arsenal no armário do casal.\"\n },\n {\n \"id\": \"nightstand_drawer\",\n \"teamName\": \"Criado-mudo e gaveta\",\n \"gameKey\": \"gaveta\",\n \"places\": [\n \"house\",\n \"apartment\"\n ],\n \"count\": [\n 0,\n 3\n ],\n \"teamCount\": [\n 0,\n 3\n ],\n \"categories\": {\n \"keys\": 0.25,\n \"electronics\": 0.35,\n \"medical\": 0.2,\n \"ammo\": 0.2\n },\n \"teamCategories\": \"chave, celular, foto, bilhete, remédio\",\n \"rule\": \"Lugar mais comum da chave de casa e da chave do carro.\"\n },\n {\n \"id\": \"bookshelf\",\n \"teamName\": \"Estante\",\n \"gameKey\": \"estante\",\n \"places\": [\n \"house\",\n \"school\",\n \"apartment\"\n ],\n \"count\": [\n 0,\n 3\n ],\n \"teamCount\": [\n 0,\n 3\n ],\n \"categories\": {\n \"books\": 0.6,\n \"electronics\": 0.25,\n \"collectibles\": 0.15\n },\n \"teamCategories\": \"livros, revistas, rádio\"\n },\n {\n \"id\": \"workbench\",\n \"teamName\": \"Bancada e caixa de ferramentas\",\n \"gameKey\": \"bancada\",\n \"places\": [\n \"warehouse\",\n \"workshop\",\n \"farm\"\n ],\n \"otherPlaces\": [\n \"casa (garagem)\"\n ],\n \"count\": [\n 1,\n 4\n ],\n \"teamCount\": [\n 1,\n 4\n ],\n \"categories\": {\n \"tools\": 0.5,\n \"materials\": 0.5\n },\n \"teamCategories\": \"ferramentas, materiais, lubrificante\"\n },\n {\n \"id\": \"garage_shelf\",\n \"teamName\": \"Prateleira de garagem\",\n \"places\": [\n \"house\",\n \"farm\",\n \"workshop\"\n ],\n \"count\": [\n 1,\n 4\n ],\n \"teamCount\": [\n 1,\n 4\n ],\n \"teamCategories\": \"combustível, galão, materiais, sementes\"\n },\n {\n \"id\": \"store_shelf\",\n \"teamName\": \"Prateleira de loja\",\n \"gameKey\": \"prateleira\",\n \"places\": [\n \"supermarket\",\n \"pharmacy\",\n \"mall\",\n \"gas_station\",\n \"gun_shop\"\n ],\n \"count\": [\n 3,\n 8\n ],\n \"teamCount\": [\n 3,\n 10\n ],\n \"categoriesByPlace\": {\n \"pharmacy\": {\n \"medical\": 1\n },\n \"*\": {\n \"food\": 0.6,\n \"drink\": 0.4\n }\n },\n \"teamCategories\": \"a categoria da loja\",\n \"rule\": \"Saque progressivo: cai com os dias (abaixo).\"\n },\n {\n \"id\": \"stockroom\",\n \"teamName\": \"Depósito e estoque\",\n \"places\": [\n \"supermarket\",\n \"pharmacy\",\n \"mall\",\n \"warehouse\"\n ],\n \"count\": [\n 6,\n 20\n ],\n \"teamCount\": [\n 6,\n 20\n ],\n \"teamCategories\": \"a categoria da loja, em caixas fechadas\",\n \"rule\": \"Muitas vezes trancado: pé de cabra ou chave.\"\n },\n {\n \"id\": \"locker\",\n \"teamName\": \"Armário de vestiário\",\n \"places\": [\n \"warehouse\",\n \"school\",\n \"hospital\",\n \"police_station\",\n \"mine\"\n ],\n \"count\": [\n 0,\n 3\n ],\n \"teamCount\": [\n 0,\n 3\n ],\n \"teamCategories\": \"roupas de trabalho, comida pequena, cigarro, chave do armário\"\n },\n {\n \"id\": \"car_trunk\",\n \"teamName\": \"Porta-luvas e porta-malas\",\n \"places\": [\n \"car\"\n ],\n \"count\": [\n 0,\n 3\n ],\n \"teamCount\": [\n 0,\n 3\n ],\n \"teamCategories\": \"mapa, lanterna, kit de primeiros socorros, macaco, chave\",\n \"rule\": \"Chave do carro: ver Frota.\"\n },\n {\n \"id\": \"military_crate\",\n \"teamName\": \"Caixa militar\",\n \"places\": [\n \"military_base\"\n ],\n \"count\": [\n 2,\n 6\n ],\n \"teamCount\": [\n 2,\n 6\n ],\n \"teamCategories\": \"ração, munição (Arsenal), roupa militar, rádio\",\n \"rule\": \"Lacrada: abrir faz ruído de 10 m.\"\n },\n {\n \"id\": \"safe\",\n \"teamName\": \"Cofre\",\n \"places\": [\n \"police_station\",\n \"supermarket\"\n ],\n \"otherPlaces\": [\n \"casa rica (classe D)\"\n ],\n \"count\": [\n 1,\n 4\n ],\n \"teamCount\": [\n 1,\n 4\n ],\n \"teamCategories\": \"raro e muito raro\",\n \"rule\": \"Precisa de chave, código ou maçarico.\"\n },\n {\n \"id\": \"bin\",\n \"teamName\": \"Lixeira e entulho\",\n \"places\": [\n \"road\"\n ],\n \"otherPlaces\": [\n \"rua\"\n ],\n \"count\": [\n 0,\n 2\n ],\n \"teamCount\": [\n 0,\n 2\n ],\n \"teamCategories\": \"latas, garrafas, trapos, 5% de chance de algo útil\",\n \"rule\": \"Busca 3+ dobra a chance.\"\n },\n {\n \"id\": \"zombie_corpse\",\n \"teamName\": \"Corpo de zumbi\",\n \"gameKey\": \"corpo\",\n \"places\": [],\n \"otherPlaces\": [\n \"em todo lugar\"\n ],\n \"count\": [\n 0,\n 3\n ],\n \"teamCount\": [\n 0,\n 3\n ],\n \"categories\": {\n \"clothing\": 0.25,\n \"electronics\": 0.25,\n \"keys\": 0.2,\n \"materials\": 0.2,\n \"medical\": 0.1\n },\n \"teamCategories\": \"bolsos da roupa e o que a pessoa levava\",\n \"rule\": \"Jovem: celular e mochila. Idoso: remédio e óculos. Policial: 9 mm 40%. Militar: 5,56 30%.\"\n },\n {\n \"id\": \"counter\",\n \"gameKey\": \"balcao\",\n \"places\": [],\n \"count\": [\n 1,\n 4\n ],\n \"categories\": {\n \"electronics\": 0.4,\n \"medical\": 0.3,\n \"drink\": 0.3\n }\n }\n]\n","[\n {\n \"places\": [\n \"pharmacy\",\n \"gun_shop\",\n \"police_station\"\n ],\n \"perDay\": 0.05,\n \"floor\": 0.3\n },\n {\n \"places\": [\n \"supermarket\",\n \"gas_station\"\n ],\n \"perDay\": 0.04,\n \"floor\": 0.35\n },\n {\n \"places\": [\n \"mall\",\n \"hospital\"\n ],\n \"perDay\": 0.025,\n \"floor\": 0.5\n },\n {\n \"places\": [\n \"house\",\n \"apartment\"\n ],\n \"perDay\": 0.01,\n \"floor\": 0.7\n },\n {\n \"places\": [\n \"farm\",\n \"warehouse\",\n \"mine\",\n \"dam\",\n \"lodge\",\n \"church\"\n ],\n \"perDay\": 0.005,\n \"floor\": 0.85\n },\n {\n \"places\": [\n \"military_base\"\n ],\n \"perDay\": 0,\n \"floor\": 1\n }\n]\n","{\n \"pools\": {\n \"geladeira\": [\n {\n \"type\": \"agua_garrafa\",\n \"item\": \"water_bottle\",\n \"name\": \"Garrafa de água\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"agua\",\n \"isTakeable\": true,\n \"weight\": 3,\n \"isSupply\": true\n },\n {\n \"type\": \"leite\",\n \"item\": \"milk_carton\",\n \"name\": \"Caixa de leite\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n },\n {\n \"type\": \"ovos\",\n \"item\": \"eggs\",\n \"name\": \"Dúzia de ovos\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n },\n {\n \"type\": \"carne\",\n \"item\": \"raw_beef\",\n \"name\": \"Carne embalada\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": true\n },\n {\n \"type\": \"fruta\",\n \"item\": \"apple\",\n \"name\": \"Frutas\",\n \"qty\": [\n 1,\n 4\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n },\n {\n \"type\": \"iogurte\",\n \"item\": \"yogurt\",\n \"name\": \"Iogurte\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"refrigerante\",\n \"item\": \"soda_can\",\n \"name\": \"Refrigerante\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"agua\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"queijo\",\n \"item\": \"cheese\",\n \"name\": \"Queijo\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"insulina\",\n \"item\": \"insulin\",\n \"name\": \"Remédio refrigerado\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"remedio\",\n \"isTakeable\": true,\n \"weight\": 0.4,\n \"isSupply\": true\n },\n {\n \"type\": \"sobras\",\n \"item\": \"leftover_meal\",\n \"name\": \"Marmita\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n }\n ],\n \"refrig_exp\": [\n {\n \"type\": \"refrigerante\",\n \"item\": \"soda_can\",\n \"name\": \"Refrigerante\",\n \"qty\": [\n 2,\n 6\n ],\n \"viewerCategory\": \"agua\",\n \"isTakeable\": true,\n \"weight\": 3,\n \"isSupply\": true\n },\n {\n \"type\": \"agua_garrafa\",\n \"item\": \"water_bottle\",\n \"name\": \"Garrafa de água\",\n \"qty\": [\n 2,\n 6\n ],\n \"viewerCategory\": \"agua\",\n \"isTakeable\": true,\n \"weight\": 3,\n \"isSupply\": true\n },\n {\n \"type\": \"iogurte\",\n \"item\": \"yogurt\",\n \"name\": \"Iogurte\",\n \"qty\": [\n 2,\n 5\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n }\n ],\n \"freezer\": [\n {\n \"type\": \"carne\",\n \"item\": \"raw_beef\",\n \"name\": \"Carne congelada\",\n \"qty\": [\n 2,\n 5\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 3,\n \"isSupply\": true\n },\n {\n \"type\": \"sorvete\",\n \"item\": \"ice_cream\",\n \"name\": \"Pote de sorvete\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n }\n ],\n \"pia\": [\n {\n \"type\": \"panela\",\n \"item\": \"pot\",\n \"name\": \"Panela\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": true\n },\n {\n \"type\": \"faca\",\n \"item\": \"knife\",\n \"name\": \"Faca de cozinha\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"arma_improvisada\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": false\n },\n {\n \"type\": \"detergente\",\n \"item\": \"detergent\",\n \"name\": \"Detergente\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"esponja\",\n \"item\": \"sponge\",\n \"name\": \"Esponja\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": false\n },\n {\n \"type\": \"arroz\",\n \"item\": \"rice\",\n \"name\": \"Pacote de arroz\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": true\n },\n {\n \"type\": \"feijao\",\n \"item\": \"beans\",\n \"name\": \"Pacote de feijão\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": true\n },\n {\n \"type\": \"macarrao\",\n \"item\": \"pasta\",\n \"name\": \"Macarrão\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"oleo\",\n \"item\": \"cooking_oil\",\n \"name\": \"Óleo de cozinha\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"lata_atum\",\n \"item\": \"canned_food\",\n \"name\": \"Lata de atum\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": true\n },\n {\n \"type\": \"desinfetante\",\n \"item\": \"disinfectant\",\n \"name\": \"Desinfetante\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": false\n },\n {\n \"type\": \"saco_lixo\",\n \"item\": \"trash_bag\",\n \"name\": \"Saco de lixo\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"lixo\",\n \"isTakeable\": true,\n \"weight\": 0.7,\n \"isSupply\": false\n }\n ],\n \"aereo\": [\n {\n \"type\": \"prato\",\n \"item\": \"plate\",\n \"name\": \"Pratos\",\n \"qty\": [\n 4,\n 8\n ],\n \"viewerCategory\": \"utensilio\",\n \"isTakeable\": false,\n \"weight\": 3,\n \"isSupply\": false\n },\n {\n \"type\": \"copo\",\n \"item\": \"cup\",\n \"name\": \"Copos\",\n \"qty\": [\n 3,\n 6\n ],\n \"viewerCategory\": \"utensilio\",\n \"isTakeable\": false,\n \"weight\": 3,\n \"isSupply\": false\n },\n {\n \"type\": \"caneca\",\n \"item\": \"cup\",\n \"name\": \"Caneca\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"utensilio\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": false\n },\n {\n \"type\": \"cafe\",\n \"item\": \"coffee\",\n \"name\": \"Pó de café\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": true\n },\n {\n \"type\": \"lata_milho\",\n \"item\": \"canned_corn_and_peas\",\n \"name\": \"Lata de milho\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": true\n },\n {\n \"type\": \"tempero\",\n \"item\": \"seasoning\",\n \"name\": \"Temperos\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n }\n ],\n \"pia_b\": [\n {\n \"type\": \"paracetamol\",\n \"item\": \"painkillers\",\n \"name\": \"Analgésico\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"remedio\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n },\n {\n \"type\": \"curativo\",\n \"item\": \"adhesive_bandages\",\n \"name\": \"Caixa de curativos\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"remedio\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n },\n {\n \"type\": \"sabonete\",\n \"item\": \"soap\",\n \"name\": \"Sabonete\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"papel_higienico\",\n \"item\": \"toilet_paper\",\n \"name\": \"Papel higiênico\",\n \"qty\": [\n 1,\n 4\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"shampoo\",\n \"item\": \"shampoo\",\n \"name\": \"Shampoo\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": false\n },\n {\n \"type\": \"escova_dente\",\n \"item\": \"toothbrush\",\n \"name\": \"Escova de dentes\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": false\n },\n {\n \"type\": \"tesoura\",\n \"item\": \"scissors\",\n \"name\": \"Tesoura\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"arma_improvisada\",\n \"isTakeable\": true,\n \"weight\": 0.5,\n \"isSupply\": false\n },\n {\n \"type\": \"alcool\",\n \"item\": \"alcohol_70\",\n \"name\": \"Álcool 70%\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"remedio\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n }\n ],\n \"guarda\": [\n {\n \"type\": \"camisa\",\n \"item\": \"tshirt\",\n \"name\": \"Camisas\",\n \"qty\": [\n 2,\n 6\n ],\n \"viewerCategory\": \"roupa\",\n \"isTakeable\": true,\n \"weight\": 3,\n \"isSupply\": false\n },\n {\n \"type\": \"calca\",\n \"item\": \"jeans\",\n \"name\": \"Calças\",\n \"qty\": [\n 1,\n 4\n ],\n \"viewerCategory\": \"roupa\",\n \"isTakeable\": true,\n \"weight\": 3,\n \"isSupply\": false\n },\n {\n \"type\": \"casaco\",\n \"item\": \"jacket\",\n \"name\": \"Casaco\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"roupa\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": false\n },\n {\n \"type\": \"tenis\",\n \"item\": \"sneakers\",\n \"name\": \"Par de tênis\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"roupa\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": false\n },\n {\n \"type\": \"sapato\",\n \"item\": \"sneakers\",\n \"name\": \"Sapato\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"roupa\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": false\n },\n {\n \"type\": \"cobertor\",\n \"item\": \"blanket\",\n \"name\": \"Cobertor\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"roupa\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": false\n },\n {\n \"type\": \"mochila\",\n \"item\": \"backpack\",\n \"name\": \"Mochila\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 0.8,\n \"isSupply\": true\n }\n ],\n \"comoda\": [\n {\n \"type\": \"roupa_intima\",\n \"item\": \"underwear\",\n \"name\": \"Roupas íntimas\",\n \"qty\": [\n 2,\n 6\n ],\n \"viewerCategory\": \"roupa\",\n \"isTakeable\": true,\n \"weight\": 3,\n \"isSupply\": false\n },\n {\n \"type\": \"meias\",\n \"item\": \"socks\",\n \"name\": \"Meias\",\n \"qty\": [\n 2,\n 6\n ],\n \"viewerCategory\": \"roupa\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"camiseta\",\n \"item\": \"tshirt\",\n \"name\": \"Camisetas\",\n \"qty\": [\n 1,\n 4\n ],\n \"viewerCategory\": \"roupa\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"documento\",\n \"item\": \"documents\",\n \"name\": \"Documentos\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"documento\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": false\n },\n {\n \"type\": \"lanterna\",\n \"item\": \"flashlight\",\n \"name\": \"Lanterna\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 0.7,\n \"isSupply\": true\n },\n {\n \"type\": \"pilhas\",\n \"item\": \"batteries\",\n \"name\": \"Pilhas\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 0.7,\n \"isSupply\": true\n }\n ],\n \"criado\": [\n {\n \"type\": \"remedio\",\n \"item\": \"maintenance_medication\",\n \"name\": \"Remédio\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"remedio\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n },\n {\n \"type\": \"livro\",\n \"item\": \"book\",\n \"name\": \"Livro\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"documento\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": false\n },\n {\n \"type\": \"carregador\",\n \"item\": \"phone_charger\",\n \"name\": \"Carregador\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"lanterna\",\n \"item\": \"flashlight\",\n \"name\": \"Lanterna\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 0.7,\n \"isSupply\": true\n },\n {\n \"type\": \"oculos\",\n \"item\": \"eyeglasses\",\n \"name\": \"Óculos\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 0.7,\n \"isSupply\": true\n }\n ],\n \"gaveteiro\": [\n {\n \"type\": \"documento\",\n \"item\": \"documents\",\n \"name\": \"Documentos\",\n \"qty\": [\n 1,\n 4\n ],\n \"viewerCategory\": \"documento\",\n \"isTakeable\": true,\n \"weight\": 3,\n \"isSupply\": false\n },\n {\n \"type\": \"caneta\",\n \"item\": \"pen\",\n \"name\": \"Caneta\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": true\n },\n {\n \"type\": \"chaves\",\n \"item\": \"house_key\",\n \"name\": \"Chaves\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"grampeador\",\n \"item\": \"stapler\",\n \"name\": \"Grampeador\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"arma_improvisada\",\n \"isTakeable\": true,\n \"weight\": 0.5,\n \"isSupply\": false\n }\n ],\n \"despensa\": [\n {\n \"type\": \"arroz\",\n \"item\": \"rice\",\n \"name\": \"Pacote de arroz\",\n \"qty\": [\n 2,\n 4\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n },\n {\n \"type\": \"feijao\",\n \"item\": \"beans\",\n \"name\": \"Pacote de feijão\",\n \"qty\": [\n 2,\n 4\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n },\n {\n \"type\": \"lata_atum\",\n \"item\": \"canned_food\",\n \"name\": \"Lata de atum\",\n \"qty\": [\n 2,\n 5\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n },\n {\n \"type\": \"agua_galao\",\n \"item\": \"water_jug_5l\",\n \"name\": \"Galão de água\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"agua\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n },\n {\n \"type\": \"farinha\",\n \"item\": \"flour\",\n \"name\": \"Farinha\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"acucar\",\n \"item\": \"sugar\",\n \"name\": \"Açúcar\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"oleo\",\n \"item\": \"cooking_oil\",\n \"name\": \"Óleo de cozinha\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"biscoito\",\n \"item\": \"biscuits\",\n \"name\": \"Biscoito\",\n \"qty\": [\n 1,\n 4\n ],\n \"viewerCategory\": \"comida\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": true\n }\n ],\n \"rack\": [\n {\n \"type\": \"controle_remoto\",\n \"item\": \"remote_control\",\n \"name\": \"Controle remoto\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n },\n {\n \"type\": \"dvd\",\n \"item\": \"dvd\",\n \"name\": \"DVDs\",\n \"qty\": [\n 1,\n 4\n ],\n \"viewerCategory\": \"documento\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": false\n },\n {\n \"type\": \"cabos\",\n \"item\": \"cable_bundle\",\n \"name\": \"Cabos\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": true\n },\n {\n \"type\": \"pilhas\",\n \"item\": \"batteries\",\n \"name\": \"Pilhas\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n }\n ],\n \"sapateira\": [\n {\n \"type\": \"tenis\",\n \"item\": \"sneakers\",\n \"name\": \"Par de tênis\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"roupa\",\n \"isTakeable\": true,\n \"weight\": 3,\n \"isSupply\": false\n },\n {\n \"type\": \"chinelo\",\n \"item\": \"flip_flops\",\n \"name\": \"Chinelo\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"roupa\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"sapato\",\n \"item\": \"sneakers\",\n \"name\": \"Sapato\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"roupa\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": false\n },\n {\n \"type\": \"graxa\",\n \"item\": \"shoe_polish\",\n \"name\": \"Graxa de sapato\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 0.5,\n \"isSupply\": false\n }\n ],\n \"armario_lav\": [\n {\n \"type\": \"sabao_po\",\n \"item\": \"laundry_powder\",\n \"name\": \"Sabão em pó\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 3,\n \"isSupply\": false\n },\n {\n \"type\": \"agua_sanitaria\",\n \"item\": \"bleach\",\n \"name\": \"Água sanitária\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"desinfetante\",\n \"item\": \"disinfectant\",\n \"name\": \"Desinfetante\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"balde\",\n \"item\": \"bucket\",\n \"name\": \"Balde\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"vassoura\",\n \"item\": \"broom\",\n \"name\": \"Vassoura\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"arma_improvisada\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": false\n },\n {\n \"type\": \"luvas\",\n \"item\": \"rubber_gloves\",\n \"name\": \"Luvas de borracha\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": false\n }\n ],\n \"estante_lav\": [\n {\n \"type\": \"sabao_po\",\n \"item\": \"laundry_powder\",\n \"name\": \"Sabão em pó\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"amaciante\",\n \"item\": \"fabric_softener\",\n \"name\": \"Amaciante\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"limpeza\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"cesto_pregadores\",\n \"item\": \"clothespins\",\n \"name\": \"Pregadores\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n }\n ],\n \"bancada\": [\n {\n \"type\": \"martelo\",\n \"item\": \"hammer\",\n \"name\": \"Martelo\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"arma_improvisada\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"chave_fenda\",\n \"item\": \"screwdriver\",\n \"name\": \"Chave de fenda\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": true\n },\n {\n \"type\": \"alicate\",\n \"item\": \"pliers\",\n \"name\": \"Alicate\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": true\n },\n {\n \"type\": \"fita_isolante\",\n \"item\": \"electrical_tape\",\n \"name\": \"Fita isolante\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"parafusos\",\n \"item\": \"screws\",\n \"name\": \"Caixa de parafusos\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n }\n ],\n \"estante_ferr\": [\n {\n \"type\": \"martelo\",\n \"item\": \"hammer\",\n \"name\": \"Martelo\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"arma_improvisada\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": false\n },\n {\n \"type\": \"serrote\",\n \"item\": \"handsaw\",\n \"name\": \"Serrote\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"arma_improvisada\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": false\n },\n {\n \"type\": \"lata_tinta\",\n \"item\": \"paint_can\",\n \"name\": \"Lata de tinta\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"lixo\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": false\n },\n {\n \"type\": \"corda\",\n \"item\": \"rope\",\n \"name\": \"Corda\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": true\n },\n {\n \"type\": \"pregos\",\n \"item\": \"nails\",\n \"name\": \"Caixa de pregos\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"ferramenta\",\n \"isTakeable\": true,\n \"weight\": 1.5,\n \"isSupply\": true\n }\n ],\n \"correio\": [\n {\n \"type\": \"carta\",\n \"item\": \"letter\",\n \"name\": \"Carta\",\n \"qty\": [\n 1,\n 4\n ],\n \"viewerCategory\": \"documento\",\n \"isTakeable\": true,\n \"weight\": 3,\n \"isSupply\": false\n },\n {\n \"type\": \"conta\",\n \"item\": \"bill\",\n \"name\": \"Conta de luz\",\n \"qty\": [\n 1,\n 2\n ],\n \"viewerCategory\": \"documento\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"panfleto\",\n \"item\": \"flyer\",\n \"name\": \"Panfleto\",\n \"qty\": [\n 1,\n 4\n ],\n \"viewerCategory\": \"lixo\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n }\n ],\n \"lixeira\": [\n {\n \"type\": \"saco_lixo_cheio\",\n \"item\": \"full_trash_bag\",\n \"name\": \"Saco de lixo\",\n \"qty\": [\n 1,\n 1\n ],\n \"viewerCategory\": \"lixo\",\n \"isTakeable\": false,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"embalagem\",\n \"item\": \"food_packaging\",\n \"name\": \"Embalagens\",\n \"qty\": [\n 1,\n 4\n ],\n \"viewerCategory\": \"lixo\",\n \"isTakeable\": true,\n \"weight\": 3,\n \"isSupply\": false\n },\n {\n \"type\": \"lata_vazia\",\n \"item\": \"empty_can\",\n \"name\": \"Lata vazia\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"lixo\",\n \"isTakeable\": true,\n \"weight\": 2,\n \"isSupply\": false\n },\n {\n \"type\": \"papel_amassado\",\n \"item\": \"crumpled_paper\",\n \"name\": \"Papel amassado\",\n \"qty\": [\n 1,\n 3\n ],\n \"viewerCategory\": \"lixo\",\n \"isTakeable\": true,\n \"weight\": 1,\n \"isSupply\": false\n }\n ],\n \"cristaleira\": [\n {\n \"type\": \"prato\",\n \"item\": \"plate\",\n \"name\": \"Pratos de louça\",\n \"qty\": [\n 3,\n 6\n ],\n \"viewerCategory\": \"utensilio\",\n \"isTakeable\": false,\n \"weight\": 3,\n \"isSupply\": false\n },\n {\n \"type\": \"taca\",\n \"item\": \"wine_glass\",\n \"name\": \"Taças\",\n \"qty\": [\n 2,\n 5\n ],\n \"viewerCategory\": \"utensilio\",\n \"isTakeable\": false,\n \"weight\": 2,\n \"isSupply\": false\n }\n ]\n },\n \"aliasOf\": {\n \"guarda_g\": \"guarda\",\n \"lixeira_ext\": \"lixeira\",\n \"geladeira_med\": \"geladeira\",\n \"aparador_c\": \"comoda\",\n \"arquivo\": \"gaveteiro\"\n }\n}\n","[\n {\n \"id\": \"canned_beans\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.08,\n 0.06806,\n 0.07881\n ],\n \"weight\": 0.45,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 730,\n \"portions\": 1,\n \"nutrition\": {\n \"satiety\": 25,\n \"hydration\": -5\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"supermarket\",\n \"church\",\n \"train\"\n ]\n },\n \"model\": \"canned_beans\"\n },\n {\n \"id\": \"canned_sardines\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.112,\n 0.026,\n 0.065\n ],\n \"weight\": 0.13,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 1095,\n \"portions\": 1,\n \"nutrition\": {\n \"satiety\": 12,\n \"hydration\": -4\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"docks\",\n \"road\"\n ]\n }\n },\n {\n \"id\": \"canned_corn_and_peas\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.073,\n 0.085,\n 0.073\n ],\n \"weight\": 0.3,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 730,\n \"portions\": 1,\n \"nutrition\": {\n \"satiety\": 12,\n \"hydration\": 2\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"train\"\n ]\n }\n },\n {\n \"id\": \"canned_sausages\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.073,\n 0.085,\n 0.073\n ],\n \"weight\": 0.3,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 730,\n \"portions\": 1,\n \"nutrition\": {\n \"satiety\": 18,\n \"hydration\": -3\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"house\",\n \"road\"\n ]\n }\n },\n {\n \"id\": \"condensed_milk\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.073,\n 0.1,\n 0.073\n ],\n \"weight\": 0.4,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 2\n },\n \"shelfLife\": 365,\n \"portions\": 2,\n \"nutrition\": {\n \"satiety\": 20,\n \"hydration\": -6\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"military_ration\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.19437,\n 0.26,\n 0.05932\n ],\n \"weight\": 0.9,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 3,\n \"per\": \"refeições\"\n },\n \"shelfLife\": 1095,\n \"portions\": 3,\n \"nutrition\": {\n \"satiety\": 60,\n \"hydration\": 10\n },\n \"finds\": {\n \"places\": [\n \"military_base\",\n \"zombie_corpse\"\n ]\n },\n \"model\": \"military_ration\"\n },\n {\n \"id\": \"rice\",\n \"category\": \"food\",\n \"tags\": [\n \"food\",\n \"perishable\"\n ],\n \"size\": [\n 0.17062,\n 0.25,\n 0.07109\n ],\n \"weight\": 1,\n \"stack\": 4,\n \"shape\": \"bag\",\n \"color\": 15261888,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 4\n },\n \"shelfLife\": 540,\n \"portions\": 4,\n \"cookable\": true,\n \"nutrition\": {\n \"satiety\": 20,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"church\",\n \"school\"\n ]\n },\n \"model\": \"rice\"\n },\n {\n \"id\": \"beans\",\n \"category\": \"food\",\n \"tags\": [\n \"food\",\n \"perishable\"\n ],\n \"size\": [\n 0.1,\n 0.2,\n 0.06\n ],\n \"weight\": 1,\n \"stack\": 4,\n \"shape\": \"bag\",\n \"color\": 6961698,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 4\n },\n \"shelfLife\": 540,\n \"portions\": 4,\n \"cookable\": true,\n \"nutrition\": {\n \"satiety\": 22,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"farm\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"pasta\",\n \"category\": \"food\",\n \"tags\": [\n \"food\",\n \"perishable\"\n ],\n \"size\": [\n 0.1,\n 0.25,\n 0.04\n ],\n \"weight\": 0.5,\n \"stack\": 4,\n \"shape\": \"bag\",\n \"color\": 15253584,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 3\n },\n \"shelfLife\": 540,\n \"portions\": 3,\n \"cookable\": true,\n \"nutrition\": {\n \"satiety\": 18,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"instant_noodles\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.12,\n 0.16,\n 0.03\n ],\n \"weight\": 0.08,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 240,\n \"portions\": 1,\n \"nutrition\": {\n \"satiety\": 12,\n \"hydration\": -5\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"supermarket\",\n \"gas_station\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"cassava_flour\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.15,\n 0.25,\n 0.06\n ],\n \"weight\": 1,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 5\n },\n \"shelfLife\": 365,\n \"portions\": 5,\n \"nutrition\": {\n \"satiety\": 12,\n \"hydration\": -6\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"biscuits\",\n \"category\": \"food\",\n \"tags\": [\n \"food\",\n \"perishable\"\n ],\n \"size\": [\n 0.2,\n 0.05,\n 0.1\n ],\n \"weight\": 0.2,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 12089920,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 2\n },\n \"shelfLife\": 180,\n \"portions\": 2,\n \"nutrition\": {\n \"satiety\": 10,\n \"hydration\": -4\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"gas_station\",\n \"school\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"snack_chips\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.2,\n 0.28,\n 0.06\n ],\n \"weight\": 0.1,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 120,\n \"portions\": 1,\n \"nutrition\": {\n \"satiety\": 6,\n \"hydration\": -6\n },\n \"finds\": {\n \"places\": [\n \"gas_station\",\n \"supermarket\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"chocolate_bar\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.15,\n 0.07,\n 0.01\n ],\n \"weight\": 0.09,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 270,\n \"portions\": 1,\n \"nutrition\": {\n \"satiety\": 8,\n \"hydration\": -2\n },\n \"finds\": {\n \"places\": [\n \"gas_station\",\n \"supermarket\",\n \"mall\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"rapadura\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.19,\n 0.1,\n 0.06\n ],\n \"weight\": 0.5,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 4\n },\n \"shelfLife\": 365,\n \"portions\": 4,\n \"nutrition\": {\n \"satiety\": 10,\n \"hydration\": -5\n },\n \"finds\": {\n \"places\": [\n \"farm\",\n \"supermarket\",\n \"lodge\"\n ]\n }\n },\n {\n \"id\": \"honey_jar\",\n \"category\": \"food\",\n \"size\": [\n 0.08,\n 0.1,\n 0.08\n ],\n \"weight\": 0.5,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 6\n },\n \"portions\": 6,\n \"nutrition\": {\n \"satiety\": 8,\n \"hydration\": -2\n },\n \"finds\": {\n \"places\": [\n \"lodge\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"bread\",\n \"category\": \"food\",\n \"tags\": [\n \"food\",\n \"perishable\"\n ],\n \"size\": [\n 0.3,\n 0.1,\n 0.1\n ],\n \"weight\": 0.5,\n \"stack\": 2,\n \"shape\": \"bag\",\n \"color\": 13146714,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 4\n },\n \"shelfLife\": 7,\n \"portions\": 4,\n \"nutrition\": {\n \"satiety\": 8,\n \"hydration\": -2\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"cheese\",\n \"category\": \"food\",\n \"tags\": [\n \"food\",\n \"perishable\"\n ],\n \"size\": [\n 0.15,\n 0.04,\n 0.1\n ],\n \"weight\": 0.5,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 15781984,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 4\n },\n \"shelfLife\": 4,\n \"portions\": 4,\n \"nutrition\": {\n \"satiety\": 10,\n \"hydration\": -3\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"mortadella\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.15,\n 0.06,\n 0.05\n ],\n \"weight\": 0.4,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 4\n },\n \"shelfLife\": 3,\n \"portions\": 4,\n \"nutrition\": {\n \"satiety\": 9,\n \"hydration\": -4\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"house\",\n \"train\"\n ]\n }\n },\n {\n \"id\": \"raw_beef\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.2,\n 0.05,\n 0.15\n ],\n \"weight\": 1,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 4\n },\n \"shelfLife\": 2,\n \"portions\": 4,\n \"cookable\": true,\n \"nutrition\": {\n \"satiety\": 14,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"house\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"frozen_chicken\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.26,\n 0.1,\n 0.17\n ],\n \"weight\": 1.2,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 4\n },\n \"shelfLife\": 2,\n \"portions\": 4,\n \"cookable\": true,\n \"nutrition\": {\n \"satiety\": 13,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"apartment\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"eggs\",\n \"category\": \"food\",\n \"tags\": [\n \"food\",\n \"perishable\"\n ],\n \"size\": [\n 0.25,\n 0.07,\n 0.1\n ],\n \"weight\": 0.7,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 15261904,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 12,\n \"per\": \"unidades\"\n },\n \"shelfLife\": 21,\n \"portions\": 12,\n \"cookable\": true,\n \"nutrition\": {\n \"satiety\": 5,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"farm\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"banana_bunch\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.3,\n 0.13,\n 0.17\n ],\n \"weight\": 1,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 6,\n \"per\": \"unidades\"\n },\n \"shelfLife\": 5,\n \"portions\": 6,\n \"nutrition\": {\n \"satiety\": 6,\n \"hydration\": 1\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"farm\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"orange\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.075,\n 0.075,\n 0.075\n ],\n \"weight\": 0.2,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 14,\n \"portions\": 1,\n \"nutrition\": {\n \"satiety\": 5,\n \"hydration\": 8\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"potatoes\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.2,\n 0.09,\n 0.14\n ],\n \"weight\": 1,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 4\n },\n \"shelfLife\": 30,\n \"portions\": 4,\n \"cookable\": true,\n \"nutrition\": {\n \"satiety\": 12,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"house\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"cassava_root\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.4,\n 0.07,\n 0.07\n ],\n \"weight\": 1.5,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 4\n },\n \"shelfLife\": 10,\n \"portions\": 4,\n \"cookable\": true,\n \"nutrition\": {\n \"satiety\": 14,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"fresh_fish\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.3,\n 0.06,\n 0.1\n ],\n \"weight\": 0.6,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 2\n },\n \"shelfLife\": 1,\n \"portions\": 2,\n \"cookable\": true,\n \"nutrition\": {\n \"satiety\": 12,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"docks\"\n ]\n }\n },\n {\n \"id\": \"salted_fish\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.25,\n 0.03,\n 0.1\n ],\n \"weight\": 0.4,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 2\n },\n \"shelfLife\": 90,\n \"portions\": 2,\n \"nutrition\": {\n \"satiety\": 11,\n \"hydration\": -10\n },\n \"finds\": {\n \"places\": [\n \"docks\"\n ]\n }\n },\n {\n \"id\": \"jerked_beef\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.25,\n 0.025,\n 0.15\n ],\n \"weight\": 0.5,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 3\n },\n \"shelfLife\": 120,\n \"portions\": 3,\n \"nutrition\": {\n \"satiety\": 10,\n \"hydration\": -8\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"game_meat\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.3,\n 0.08,\n 0.2\n ],\n \"weight\": 1.5,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 5\n },\n \"shelfLife\": 2,\n \"portions\": 5,\n \"cookable\": true,\n \"nutrition\": {\n \"satiety\": 12,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"home_preserves\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.09,\n 0.13,\n 0.09\n ],\n \"weight\": 0.6,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 3\n },\n \"shelfLife\": 365,\n \"portions\": 3,\n \"nutrition\": {\n \"satiety\": 8,\n \"hydration\": 1\n },\n \"finds\": {\n \"places\": [\n \"farm\",\n \"house\",\n \"lodge\"\n ]\n }\n },\n {\n \"id\": \"dog_food\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.18,\n 0.26,\n 0.07\n ],\n \"weight\": 1,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 5\n },\n \"shelfLife\": 365,\n \"portions\": 5,\n \"nutrition\": {\n \"satiety\": 6,\n \"hydration\": -4\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"sugar\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.1,\n 0.2,\n 0.06\n ],\n \"weight\": 1,\n \"stack\": 4,\n \"shape\": \"bag\",\n \"color\": 15790320,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"portions\",\n \"amount\": 10\n },\n \"portions\": 10,\n \"nutrition\": {\n \"satiety\": 3,\n \"hydration\": -2\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"salt\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.07,\n 0.16,\n 0.07\n ],\n \"weight\": 1,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 15263984,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 20\n },\n \"portions\": 20,\n \"nutrition\": {\n \"satiety\": 0,\n \"hydration\": -2\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"docks\"\n ]\n }\n },\n {\n \"id\": \"cooking_oil\",\n \"category\": \"food\",\n \"tags\": [\n \"food\",\n \"perishable\"\n ],\n \"size\": [\n 0.07,\n 0.26,\n 0.07\n ],\n \"weight\": 0.9,\n \"stack\": 3,\n \"shape\": \"bottle\",\n \"color\": 15255600,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 9\n },\n \"shelfLife\": 540,\n \"portions\": 9,\n \"nutrition\": {\n \"satiety\": 0,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"coffee\",\n \"category\": \"food\",\n \"tags\": [\n \"food\",\n \"perishable\"\n ],\n \"size\": [\n 0.08,\n 0.15,\n 0.06\n ],\n \"weight\": 0.5,\n \"stack\": 4,\n \"shape\": \"bag\",\n \"color\": 5913124,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 20\n },\n \"shelfLife\": 365,\n \"portions\": 20,\n \"nutrition\": {\n \"satiety\": 0,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"school\",\n \"police_station\"\n ]\n }\n },\n {\n \"id\": \"water_bottle\",\n \"category\": \"drink\",\n \"tags\": [\n \"drink\"\n ],\n \"size\": [\n 0.066,\n 0.18252,\n 0.066\n ],\n \"weight\": 0.52,\n \"stack\": 4,\n \"shape\": \"bottle\",\n \"color\": 10146024,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"nutrition\": {\n \"hydration\": 25\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"gas_station\",\n \"mall\",\n \"car\"\n ]\n },\n \"model\": \"water_bottle\"\n },\n {\n \"id\": \"water_jug_5l\",\n \"category\": \"drink\",\n \"size\": [\n 0.19,\n 0.33,\n 0.15\n ],\n \"weight\": 5.2,\n \"stack\": 1,\n \"shape\": \"bottle\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"doses\",\n \"amount\": 10\n },\n \"nutrition\": {\n \"hydration\": 25\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"apartment\",\n \"school\",\n \"church\"\n ]\n }\n },\n {\n \"id\": \"dirty_water\",\n \"category\": \"drink\",\n \"size\": [\n 0.066,\n 0.183,\n 0.066\n ],\n \"weight\": 0.5,\n \"stack\": 4,\n \"shape\": \"bottle\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"nutrition\": {\n \"hydration\": 25\n },\n \"finds\": {\n \"places\": [\n \"road\"\n ]\n }\n },\n {\n \"id\": \"soda_can\",\n \"category\": \"drink\",\n \"tags\": [\n \"drink\",\n \"perishable\"\n ],\n \"size\": [\n 0.066,\n 0.12,\n 0.066\n ],\n \"weight\": 0.35,\n \"stack\": 6,\n \"shape\": \"can\",\n \"color\": 13119536,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 270,\n \"nutrition\": {\n \"satiety\": 4,\n \"hydration\": 18\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"gas_station\",\n \"mall\",\n \"house\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"juice_box\",\n \"category\": \"drink\",\n \"tags\": [\n \"drink\",\n \"perishable\"\n ],\n \"size\": [\n 0.052,\n 0.1,\n 0.037\n ],\n \"weight\": 0.2,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 15239728,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 180,\n \"nutrition\": {\n \"satiety\": 3,\n \"hydration\": 12\n },\n \"finds\": {\n \"places\": [\n \"school\",\n \"supermarket\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"milk_carton\",\n \"category\": \"drink\",\n \"tags\": [\n \"drink\",\n \"perishable\"\n ],\n \"size\": [\n 0.07,\n 0.2,\n 0.07\n ],\n \"weight\": 1.05,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 15790324,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"doses\",\n \"amount\": 4\n },\n \"shelfLife\": 120,\n \"nutrition\": {\n \"satiety\": 8,\n \"hydration\": 20\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"sports_drink\",\n \"category\": \"drink\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.066,\n 0.183,\n 0.066\n ],\n \"weight\": 0.52,\n \"stack\": 4,\n \"shape\": \"bottle\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 270,\n \"nutrition\": {\n \"hydration\": 30\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"gas_station\",\n \"mall\"\n ]\n }\n },\n {\n \"id\": \"energy_drink\",\n \"category\": \"drink\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.058,\n 0.135,\n 0.058\n ],\n \"weight\": 0.27,\n \"stack\": 4,\n \"shape\": \"bottle\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 365,\n \"nutrition\": {\n \"hydration\": 10\n },\n \"finds\": {\n \"places\": [\n \"gas_station\",\n \"supermarket\",\n \"mall\"\n ]\n }\n },\n {\n \"id\": \"coconut_water\",\n \"category\": \"drink\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.06,\n 0.17,\n 0.06\n ],\n \"weight\": 0.4,\n \"stack\": 4,\n \"shape\": \"bottle\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 3,\n \"nutrition\": {\n \"hydration\": 22\n },\n \"finds\": {\n \"places\": [\n \"road\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"beer_can\",\n \"category\": \"drink\",\n \"tags\": [\n \"perishable\"\n ],\n \"size\": [\n 0.066,\n 0.12,\n 0.066\n ],\n \"weight\": 0.35,\n \"stack\": 4,\n \"shape\": \"bottle\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"shelfLife\": 180,\n \"nutrition\": {\n \"hydration\": 8\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"gas_station\"\n ]\n }\n },\n {\n \"id\": \"cachaca\",\n \"category\": \"drink\",\n \"size\": [\n 0.09,\n 0.21359,\n 0.09\n ],\n \"weight\": 1,\n \"stack\": 4,\n \"shape\": \"bottle\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"doses\",\n \"amount\": 10\n },\n \"nutrition\": {\n \"hydration\": -5\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"farm\",\n \"lodge\"\n ]\n },\n \"model\": \"cachaca\"\n },\n {\n \"id\": \"communion_wine\",\n \"category\": \"drink\",\n \"size\": [\n 0.076,\n 0.3,\n 0.076\n ],\n \"weight\": 0.75,\n \"stack\": 4,\n \"shape\": \"bottle\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"doses\",\n \"amount\": 5\n },\n \"nutrition\": {\n \"hydration\": 4\n },\n \"finds\": {\n \"places\": [\n \"church\"\n ]\n }\n },\n {\n \"id\": \"bandage\",\n \"category\": \"medical\",\n \"tags\": [\n \"medical\"\n ],\n \"size\": [\n 0.101,\n 0.07766,\n 0.04409\n ],\n \"weight\": 0.05,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 15786184,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"pharmacy\",\n \"hospital\",\n \"school\",\n \"car\"\n ]\n },\n \"model\": \"bandage\"\n },\n {\n \"id\": \"sterile_gauze\",\n \"category\": \"medical\",\n \"size\": [\n 0.1,\n 0.1,\n 0.015\n ],\n \"weight\": 0.02,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"finds\": {\n \"places\": [\n \"pharmacy\",\n \"hospital\"\n ]\n }\n },\n {\n \"id\": \"adhesive_bandages\",\n \"category\": \"medical\",\n \"size\": [\n 0.1,\n 0.06,\n 0.015\n ],\n \"weight\": 0.03,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 10\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"pharmacy\",\n \"school\",\n \"mall\"\n ]\n }\n },\n {\n \"id\": \"medical_tape\",\n \"category\": \"medical\",\n \"size\": [\n 0.05,\n 0.025,\n 0.05\n ],\n \"weight\": 0.04,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 8\n },\n \"finds\": {\n \"places\": [\n \"pharmacy\",\n \"hospital\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"alcohol_70\",\n \"category\": \"medical\",\n \"tags\": [\n \"medical\"\n ],\n \"size\": [\n 0.07,\n 0.2,\n 0.05\n ],\n \"weight\": 0.5,\n \"stack\": 3,\n \"shape\": \"bottle\",\n \"color\": 15266040,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 10\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"pharmacy\",\n \"hospital\"\n ]\n }\n },\n {\n \"id\": \"povidone_iodine\",\n \"category\": \"medical\",\n \"size\": [\n 0.045,\n 0.11,\n 0.035\n ],\n \"weight\": 0.1,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 8\n },\n \"finds\": {\n \"places\": [\n \"pharmacy\",\n \"hospital\"\n ]\n }\n },\n {\n \"id\": \"saline_iv_bag\",\n \"category\": \"medical\",\n \"size\": [\n 0.12,\n 0.25,\n 0.045\n ],\n \"weight\": 0.55,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"finds\": {\n \"places\": [\n \"hospital\"\n ]\n }\n },\n {\n \"id\": \"painkillers\",\n \"category\": \"medical\",\n \"tags\": [\n \"medical\"\n ],\n \"size\": [\n 0.06,\n 0.02,\n 0.04\n ],\n \"weight\": 0.03,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 15263976,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 10\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"pharmacy\",\n \"hospital\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"ibuprofen\",\n \"category\": \"medical\",\n \"size\": [\n 0.095,\n 0.05,\n 0.015\n ],\n \"weight\": 0.03,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 10\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"pharmacy\"\n ]\n }\n },\n {\n \"id\": \"tramadol\",\n \"category\": \"medical\",\n \"size\": [\n 0.095,\n 0.05,\n 0.015\n ],\n \"weight\": 0.03,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 6\n },\n \"finds\": {\n \"places\": [\n \"pharmacy\",\n \"hospital\"\n ]\n }\n },\n {\n \"id\": \"clonazepam\",\n \"category\": \"medical\",\n \"size\": [\n 0.09,\n 0.05,\n 0.015\n ],\n \"weight\": 0.02,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 10\n },\n \"finds\": {\n \"places\": [\n \"pharmacy\",\n \"hospital\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"amoxicillin\",\n \"category\": \"medical\",\n \"size\": [\n 0.1,\n 0.05305,\n 0.06852\n ],\n \"weight\": 0.05,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 9\n },\n \"finds\": {\n \"places\": [\n \"pharmacy\",\n \"hospital\"\n ]\n },\n \"model\": \"amoxicillin\"\n },\n {\n \"id\": \"ceftriaxone\",\n \"category\": \"medical\",\n \"size\": [\n 0.1,\n 0.06,\n 0.03\n ],\n \"weight\": 0.1,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 3\n },\n \"finds\": {\n \"places\": [\n \"hospital\",\n \"military_base\"\n ]\n }\n },\n {\n \"id\": \"syringe\",\n \"category\": \"medical\",\n \"size\": [\n 0.15,\n 0.02,\n 0.02\n ],\n \"weight\": 0.01,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"finds\": {\n \"places\": [\n \"pharmacy\",\n \"hospital\"\n ]\n }\n },\n {\n \"id\": \"suture_kit\",\n \"category\": \"medical\",\n \"size\": [\n 0.15,\n 0.08,\n 0.03\n ],\n \"weight\": 0.15,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 4\n },\n \"finds\": {\n \"places\": [\n \"hospital\",\n \"military_base\"\n ]\n }\n },\n {\n \"id\": \"splint\",\n \"category\": \"medical\",\n \"size\": [\n 0.46,\n 0.11,\n 0.01\n ],\n \"weight\": 0.3,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"finds\": {\n \"places\": [\n \"hospital\",\n \"school\",\n \"police_station\"\n ]\n }\n },\n {\n \"id\": \"first_aid_kit\",\n \"category\": \"medical\",\n \"tags\": [\n \"medical\"\n ],\n \"size\": [\n 0.25,\n 0.21379,\n 0.09579\n ],\n \"weight\": 0.9,\n \"stack\": 1,\n \"shape\": \"box\",\n \"color\": 13119536,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"container\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"school\",\n \"car\",\n \"police_station\",\n \"warehouse\",\n \"gas_station\"\n ]\n },\n \"model\": \"first_aid_kit\"\n },\n {\n \"id\": \"exam_gloves\",\n \"category\": \"medical\",\n \"size\": [\n 0.1,\n 0.12,\n 0.01\n ],\n \"weight\": 0.02,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1,\n \"per\": \"par\"\n },\n \"finds\": {\n \"places\": [\n \"pharmacy\",\n \"hospital\"\n ]\n }\n },\n {\n \"id\": \"n95_mask\",\n \"category\": \"medical\",\n \"size\": [\n 0.15,\n 0.11,\n 0.025\n ],\n \"weight\": 0.02,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"days\",\n \"amount\": 2,\n \"per\": \"dias de uso\"\n },\n \"finds\": {\n \"places\": [\n \"pharmacy\",\n \"hospital\",\n \"warehouse\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"activated_charcoal\",\n \"category\": \"medical\",\n \"size\": [\n 0.06,\n 0.095,\n 0.025\n ],\n \"weight\": 0.05,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 4\n },\n \"finds\": {\n \"places\": [\n \"pharmacy\",\n \"hospital\"\n ]\n }\n },\n {\n \"id\": \"rehydration_salts\",\n \"category\": \"medical\",\n \"size\": [\n 0.09,\n 0.12,\n 0.01\n ],\n \"weight\": 0.03,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 5\n },\n \"finds\": {\n \"places\": [\n \"pharmacy\",\n \"hospital\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"antihistamine\",\n \"category\": \"medical\",\n \"size\": [\n 0.08,\n 0.05,\n 0.015\n ],\n \"weight\": 0.02,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 10\n },\n \"finds\": {\n \"places\": [\n \"pharmacy\",\n \"lodge\"\n ]\n }\n },\n {\n \"id\": \"antivenom\",\n \"category\": \"medical\",\n \"size\": [\n 0.15,\n 0.09,\n 0.05\n ],\n \"weight\": 0.2,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"very_rare\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1\n },\n \"finds\": {\n \"places\": [\n \"hospital\",\n \"lodge\"\n ]\n }\n },\n {\n \"id\": \"thermometer\",\n \"category\": \"medical\",\n \"tags\": [\n \"medical\"\n ],\n \"size\": [\n 0.12,\n 0.02,\n 0.03\n ],\n \"weight\": 0.02,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 13685976,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"pharmacy\",\n \"hospital\"\n ]\n }\n },\n {\n \"id\": \"maintenance_medication\",\n \"category\": \"medical\",\n \"size\": [\n 0.045,\n 0.09,\n 0.045\n ],\n \"weight\": 0.05,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"days\",\n \"amount\": 30\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"pharmacy\"\n ]\n }\n },\n {\n \"id\": \"multivitamin\",\n \"category\": \"medical\",\n \"size\": [\n 0.05,\n 0.09,\n 0.05\n ],\n \"weight\": 0.05,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 30\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"pharmacy\"\n ]\n }\n },\n {\n \"id\": \"hammer\",\n \"category\": \"tools\",\n \"tags\": [\n \"garage\"\n ],\n \"size\": [\n 0.15884,\n 0.33,\n 0.04652\n ],\n \"weight\": 0.6,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 6965802,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 500\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"warehouse\",\n \"workshop\",\n \"farm\",\n \"school\"\n ]\n },\n \"model\": \"hammer\"\n },\n {\n \"id\": \"screwdriver\",\n \"category\": \"tools\",\n \"tags\": [\n \"garage\"\n ],\n \"size\": [\n 0.22,\n 0.04,\n 0.04\n ],\n \"weight\": 0.15,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 13119536,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 300\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"warehouse\",\n \"workshop\"\n ]\n }\n },\n {\n \"id\": \"crowbar\",\n \"category\": \"tools\",\n \"size\": [\n 0.18786,\n 0.75,\n 0.04828\n ],\n \"weight\": 1.5,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 400\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"workshop\",\n \"police_station\",\n \"train\",\n \"house\"\n ]\n },\n \"model\": \"crowbar\"\n },\n {\n \"id\": \"handsaw\",\n \"category\": \"tools\",\n \"size\": [\n 0.5,\n 0.035,\n 0.13\n ],\n \"weight\": 0.5,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 200\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"warehouse\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"hacksaw\",\n \"category\": \"tools\",\n \"size\": [\n 0.42,\n 0.03,\n 0.12\n ],\n \"weight\": 0.4,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"cuts\",\n \"amount\": 60\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"workshop\"\n ]\n }\n },\n {\n \"id\": \"bolt_cutters\",\n \"category\": \"tools\",\n \"size\": [\n 0.6,\n 0.06,\n 0.15\n ],\n \"weight\": 3.5,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"cuts\",\n \"amount\": 80\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"police_station\",\n \"prison\",\n \"mine\"\n ]\n }\n },\n {\n \"id\": \"pliers\",\n \"category\": \"tools\",\n \"size\": [\n 0.2,\n 0.03,\n 0.07\n ],\n \"weight\": 0.3,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 300\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"warehouse\",\n \"workshop\"\n ]\n }\n },\n {\n \"id\": \"adjustable_wrench\",\n \"category\": \"tools\",\n \"size\": [\n 0.25,\n 0.02,\n 0.06\n ],\n \"weight\": 0.5,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 500\n },\n \"finds\": {\n \"places\": [\n \"workshop\",\n \"warehouse\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"mechanic_toolbox\",\n \"category\": \"tools\",\n \"size\": [\n 0.4,\n 0.2,\n 0.2\n ],\n \"weight\": 6,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1000\n },\n \"finds\": {\n \"places\": [\n \"workshop\",\n \"warehouse\"\n ]\n }\n },\n {\n \"id\": \"car_jack\",\n \"category\": \"tools\",\n \"size\": [\n 0.3,\n 0.11,\n 0.11\n ],\n \"weight\": 4,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"car\",\n \"workshop\"\n ]\n }\n },\n {\n \"id\": \"gas_torch\",\n \"category\": \"tools\",\n \"size\": [\n 0.15,\n 0.42,\n 0.15\n ],\n \"weight\": 3,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 1200,\n \"per\": \"min por cartucho\"\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"workshop\"\n ]\n }\n },\n {\n \"id\": \"inverter_welder\",\n \"category\": \"tools\",\n \"size\": [\n 0.3,\n 0.22,\n 0.13\n ],\n \"weight\": 6,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1000\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"workshop\"\n ]\n }\n },\n {\n \"id\": \"cordless_drill\",\n \"category\": \"tools\",\n \"size\": [\n 0.22,\n 0.2,\n 0.07\n ],\n \"weight\": 1.5,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"charges\",\n \"amount\": 80,\n \"per\": \"parafusos por carga\"\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"house\",\n \"mall\"\n ]\n }\n },\n {\n \"id\": \"shovel\",\n \"category\": \"tools\",\n \"size\": [\n 1.1,\n 0.07,\n 0.22\n ],\n \"weight\": 2,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 400\n },\n \"finds\": {\n \"places\": [\n \"farm\",\n \"warehouse\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"hoe\",\n \"category\": \"tools\",\n \"size\": [\n 1.35,\n 0.06,\n 0.17\n ],\n \"weight\": 1.8,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 400\n },\n \"finds\": {\n \"places\": [\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"pocket_knife\",\n \"category\": \"tools\",\n \"size\": [\n 0.11,\n 0.022,\n 0.032\n ],\n \"weight\": 0.15,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 300\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"mall\",\n \"gun_shop\",\n \"lodge\"\n ]\n }\n },\n {\n \"id\": \"can_opener\",\n \"category\": \"tools\",\n \"size\": [\n 0.14,\n 0.04,\n 0.025\n ],\n \"weight\": 0.05,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"scissors\",\n \"category\": \"tools\",\n \"tags\": [\n \"kitchen\"\n ],\n \"size\": [\n 0.18,\n 0.015,\n 0.07\n ],\n \"weight\": 0.1,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 12083242,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"school\",\n \"pharmacy\"\n ]\n }\n },\n {\n \"id\": \"duct_tape\",\n \"category\": \"tools\",\n \"tags\": [\n \"garage\"\n ],\n \"size\": [\n 0.1,\n 0.05,\n 0.1\n ],\n \"weight\": 0.2,\n \"stack\": 2,\n \"shape\": \"roll\",\n \"color\": 9080466,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 10\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"warehouse\",\n \"workshop\",\n \"mall\"\n ]\n }\n },\n {\n \"id\": \"pot\",\n \"category\": \"tools\",\n \"tags\": [\n \"kitchen\"\n ],\n \"size\": [\n 0.25,\n 0.15,\n 0.25\n ],\n \"weight\": 1,\n \"stack\": 1,\n \"shape\": \"dish\",\n \"color\": 9080466,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"church\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"camp_stove\",\n \"category\": \"tools\",\n \"size\": [\n 0.18,\n 0.1,\n 0.11\n ],\n \"weight\": 0.8,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 7200,\n \"per\": \"h por cartucho\"\n },\n \"finds\": {\n \"places\": [\n \"mall\",\n \"lodge\",\n \"gun_shop\"\n ]\n }\n },\n {\n \"id\": \"sewing_kit\",\n \"category\": \"tools\",\n \"size\": [\n 0.09,\n 0.05,\n 0.03\n ],\n \"weight\": 0.05,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 20\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"church\"\n ]\n }\n },\n {\n \"id\": \"lockpick_kit\",\n \"category\": \"tools\",\n \"size\": [\n 0.1,\n 0.07,\n 0.02\n ],\n \"weight\": 0.1,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"very_rare\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 40\n },\n \"finds\": {\n \"places\": [\n \"police_station\",\n \"prison\",\n \"warehouse\"\n ]\n }\n },\n {\n \"id\": \"lighter\",\n \"category\": \"tools\",\n \"tags\": [\n \"tool\"\n ],\n \"size\": [\n 0.025,\n 0.08,\n 0.012\n ],\n \"weight\": 0.02,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 14170682,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 300,\n \"per\": \"acendimentos\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"gas_station\",\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"matches\",\n \"category\": \"tools\",\n \"tags\": [\n \"tool\"\n ],\n \"size\": [\n 0.05,\n 0.015,\n 0.035\n ],\n \"weight\": 0.02,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 13119536,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 40,\n \"per\": \"acendimentos\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"church\"\n ]\n }\n },\n {\n \"id\": \"flint_striker\",\n \"category\": \"tools\",\n \"size\": [\n 0.11,\n 0.02,\n 0.015\n ],\n \"weight\": 0.08,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"gun_shop\",\n \"lodge\",\n \"military_base\"\n ]\n }\n },\n {\n \"id\": \"bucket\",\n \"category\": \"tools\",\n \"size\": [\n 0.28,\n 0.27,\n 0.28\n ],\n \"weight\": 0.5,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"farm\",\n \"warehouse\"\n ]\n }\n },\n {\n \"id\": \"binoculars\",\n \"category\": \"tools\",\n \"size\": [\n 0.18,\n 0.15,\n 0.12\n ],\n \"weight\": 0.6,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"gun_shop\",\n \"police_station\",\n \"military_base\",\n \"lodge\"\n ]\n }\n },\n {\n \"id\": \"fire_extinguisher\",\n \"category\": \"tools\",\n \"size\": [\n 0.16,\n 0.48,\n 0.16\n ],\n \"weight\": 4,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 12,\n \"per\": \"s de jato\"\n },\n \"finds\": {\n \"places\": [\n \"apartment\",\n \"school\",\n \"mall\",\n \"hospital\",\n \"gas_station\"\n ]\n }\n },\n {\n \"id\": \"sharpening_stone\",\n \"category\": \"tools\",\n \"size\": [\n 0.2,\n 0.05,\n 0.025\n ],\n \"weight\": 0.3,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 50\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"farm\",\n \"gun_shop\"\n ]\n }\n },\n {\n \"id\": \"knife\",\n \"category\": \"melee\",\n \"tags\": [\n \"kitchen\"\n ],\n \"size\": [\n 0.25,\n 0.03,\n 0.04\n ],\n \"weight\": 0.2,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 11843772,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 60\n },\n \"weapon\": \"knife\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"tactical_knife\",\n \"category\": \"melee\",\n \"size\": [\n 0.26,\n 0.028,\n 0.045\n ],\n \"weight\": 0.3,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 200\n },\n \"weapon\": \"tactical_knife\",\n \"finds\": {\n \"places\": [\n \"gun_shop\",\n \"military_base\",\n \"police_station\"\n ]\n }\n },\n {\n \"id\": \"machete\",\n \"category\": \"melee\",\n \"size\": [\n 0.55,\n 0.0852,\n 0.03518\n ],\n \"weight\": 0.7,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 150\n },\n \"weapon\": \"machete\",\n \"finds\": {\n \"places\": [\n \"farm\",\n \"house\",\n \"warehouse\"\n ]\n },\n \"model\": \"machete\"\n },\n {\n \"id\": \"meat_cleaver\",\n \"category\": \"melee\",\n \"size\": [\n 0.33,\n 0.03,\n 0.12\n ],\n \"weight\": 0.6,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 120\n },\n \"weapon\": \"meat_cleaver\",\n \"finds\": {\n \"places\": [\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"hatchet\",\n \"category\": \"melee\",\n \"size\": [\n 0.35,\n 0.05,\n 0.13\n ],\n \"weight\": 0.8,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 180\n },\n \"weapon\": \"hatchet\",\n \"finds\": {\n \"places\": [\n \"gun_shop\",\n \"lodge\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"axe\",\n \"category\": \"melee\",\n \"size\": [\n 0.24959,\n 0.7,\n 0.05871\n ],\n \"weight\": 1.6,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 250\n },\n \"weapon\": \"axe\",\n \"finds\": {\n \"places\": [\n \"farm\",\n \"lodge\",\n \"warehouse\"\n ]\n },\n \"model\": \"axe\"\n },\n {\n \"id\": \"baseball_bat\",\n \"category\": \"melee\",\n \"size\": [\n 0.86,\n 0.07,\n 0.07\n ],\n \"weight\": 1,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 120\n },\n \"weapon\": \"baseball_bat\",\n \"finds\": {\n \"places\": [\n \"mall\",\n \"house\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"nail_bat\",\n \"category\": \"melee\",\n \"tags\": [\n \"craft_only\"\n ],\n \"size\": [\n 0.22309,\n 0.86,\n 0.22146\n ],\n \"weight\": 1.2,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 90\n },\n \"weapon\": \"nail_bat\",\n \"model\": \"nail_bat\"\n },\n {\n \"id\": \"iron_pipe\",\n \"category\": \"melee\",\n \"size\": [\n 0.8,\n 0.035,\n 0.035\n ],\n \"weight\": 1.2,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 300\n },\n \"weapon\": \"iron_pipe\",\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"workshop\",\n \"train\",\n \"prison\"\n ]\n }\n },\n {\n \"id\": \"sledgehammer\",\n \"category\": \"melee\",\n \"size\": [\n 0.9,\n 0.12,\n 0.25\n ],\n \"weight\": 5,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 300\n },\n \"weapon\": \"sledgehammer\",\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"mine\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"pickaxe\",\n \"category\": \"melee\",\n \"size\": [\n 0.9,\n 0.04,\n 0.35\n ],\n \"weight\": 2.8,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 300\n },\n \"weapon\": \"pickaxe\",\n \"finds\": {\n \"places\": [\n \"mine\"\n ]\n }\n },\n {\n \"id\": \"sickle\",\n \"category\": \"melee\",\n \"size\": [\n 0.4,\n 0.035,\n 0.35\n ],\n \"weight\": 1.2,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 150\n },\n \"weapon\": \"sickle\",\n \"finds\": {\n \"places\": [\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"police_baton\",\n \"category\": \"melee\",\n \"size\": [\n 0.5,\n 0.1,\n 0.045\n ],\n \"weight\": 0.6,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 500\n },\n \"weapon\": \"police_baton\",\n \"finds\": {\n \"places\": [\n \"police_station\",\n \"prison\"\n ]\n }\n },\n {\n \"id\": \"cast_iron_skillet\",\n \"category\": \"melee\",\n \"size\": [\n 0.43,\n 0.05,\n 0.25\n ],\n \"weight\": 1.2,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 400\n },\n \"weapon\": \"cast_iron_skillet\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"improvised_spear\",\n \"category\": \"melee\",\n \"tags\": [\n \"craft_only\"\n ],\n \"size\": [\n 1.6,\n 0.035,\n 0.035\n ],\n \"weight\": 1.1,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"hits\",\n \"amount\": 80\n },\n \"weapon\": \"improvised_spear\"\n },\n {\n \"id\": \"chainsaw\",\n \"category\": \"melee\",\n \"size\": [\n 0.45,\n 0.26,\n 0.23\n ],\n \"weight\": 6,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"very_rare\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 1800,\n \"per\": \"min por litro\"\n },\n \"weapon\": \"chainsaw\",\n \"finds\": {\n \"places\": [\n \"farm\",\n \"warehouse\"\n ]\n }\n },\n {\n \"id\": \"slingshot\",\n \"category\": \"melee\",\n \"size\": [\n 0.13,\n 0.15,\n 0.025\n ],\n \"weight\": 0.15,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"shots\",\n \"amount\": 300\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"farm\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"recurve_bow\",\n \"category\": \"melee\",\n \"size\": [\n 1.3,\n 0.2,\n 0.05\n ],\n \"weight\": 1.2,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"shots\",\n \"amount\": 400\n },\n \"weapon\": \"recurve_bow\",\n \"finds\": {\n \"places\": [\n \"gun_shop\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"crossbow\",\n \"category\": \"melee\",\n \"size\": [\n 0.7,\n 0.12,\n 0.8\n ],\n \"weight\": 3.2,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"very_rare\",\n \"durability\": {\n \"kind\": \"shots\",\n \"amount\": 300\n },\n \"weapon\": \"crossbow\",\n \"finds\": {\n \"places\": [\n \"gun_shop\"\n ]\n }\n },\n {\n \"id\": \"arrows_and_bolts\",\n \"category\": \"melee\",\n \"size\": [\n 0.7,\n 0.025,\n 0.04\n ],\n \"weight\": 0.3,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"recuperáveis\"\n },\n \"finds\": {\n \"places\": [\n \"gun_shop\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"wooden_plank\",\n \"category\": \"materials\",\n \"size\": [\n 0.8,\n 0.24948,\n 0.28294\n ],\n \"weight\": 2,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"vida 100 na janela\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"warehouse\",\n \"farm\",\n \"train\"\n ]\n },\n \"model\": \"wooden_plank\"\n },\n {\n \"id\": \"nails\",\n \"category\": \"materials\",\n \"size\": [\n 0.13,\n 0.06,\n 0.05\n ],\n \"weight\": 0.5,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 100\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"warehouse\",\n \"workshop\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"screws\",\n \"category\": \"materials\",\n \"size\": [\n 0.09,\n 0.05,\n 0.05\n ],\n \"weight\": 0.4,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 50\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"workshop\",\n \"mall\"\n ]\n }\n },\n {\n \"id\": \"sheet_metal\",\n \"category\": \"materials\",\n \"size\": [\n 0.6,\n 0.003,\n 0.45\n ],\n \"weight\": 6,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"vida 500\"\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"workshop\",\n \"train\",\n \"docks\"\n ]\n }\n },\n {\n \"id\": \"scrap_metal\",\n \"category\": \"materials\",\n \"size\": [\n 0.2,\n 0.08,\n 0.15\n ],\n \"weight\": 1,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"workshop\",\n \"car\",\n \"road\"\n ]\n }\n },\n {\n \"id\": \"wire_roll\",\n \"category\": \"materials\",\n \"size\": [\n 0.14,\n 0.05,\n 0.14\n ],\n \"weight\": 0.5,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"10 m\"\n },\n \"finds\": {\n \"places\": [\n \"farm\",\n \"warehouse\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"barbed_wire\",\n \"category\": \"materials\",\n \"size\": [\n 0.3,\n 0.12,\n 0.3\n ],\n \"weight\": 4,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"vida 150\"\n },\n \"finds\": {\n \"places\": [\n \"farm\",\n \"military_base\"\n ]\n }\n },\n {\n \"id\": \"rope\",\n \"category\": \"materials\",\n \"tags\": [\n \"garage\"\n ],\n \"size\": [\n 0.15,\n 0.08,\n 0.15\n ],\n \"weight\": 1,\n \"stack\": 1,\n \"shape\": \"roll\",\n \"color\": 13152384,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"farm\",\n \"docks\",\n \"lodge\"\n ]\n }\n },\n {\n \"id\": \"tarp\",\n \"category\": \"materials\",\n \"size\": [\n 0.35,\n 0.1,\n 0.25\n ],\n \"weight\": 2,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"farm\",\n \"road\"\n ]\n }\n },\n {\n \"id\": \"raffia_sack\",\n \"category\": \"materials\",\n \"size\": [\n 0.4,\n 0.02,\n 0.3\n ],\n \"weight\": 0.2,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"vida 400 cheio\"\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"military_base\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"bricks\",\n \"category\": \"materials\",\n \"size\": [\n 0.19,\n 0.18,\n 0.29\n ],\n \"weight\": 25,\n \"stack\": 1,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"vida 300 por bloco\"\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"cement_bag\",\n \"category\": \"materials\",\n \"size\": [\n 0.5,\n 0.1,\n 0.3\n ],\n \"weight\": 25,\n \"stack\": 1,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"rende 20 blocos\"\n },\n \"finds\": {\n \"places\": [\n \"warehouse\"\n ]\n }\n },\n {\n \"id\": \"rag\",\n \"category\": \"materials\",\n \"size\": [\n 0.22,\n 0.025,\n 0.18\n ],\n \"weight\": 0.05,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"glass_bottle\",\n \"category\": \"materials\",\n \"size\": [\n 0.075,\n 0.26,\n 0.075\n ],\n \"weight\": 0.3,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"church\",\n \"road\"\n ]\n }\n },\n {\n \"id\": \"pet_bottle\",\n \"category\": \"materials\",\n \"size\": [\n 0.105,\n 0.33,\n 0.105\n ],\n \"weight\": 0.05,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"road\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"empty_can\",\n \"category\": \"materials\",\n \"tags\": [\n \"trash\"\n ],\n \"size\": [\n 0.066,\n 0.12,\n 0.066\n ],\n \"weight\": 0.05,\n \"stack\": 6,\n \"shape\": \"can\",\n \"color\": 10527912,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"road\"\n ]\n }\n },\n {\n \"id\": \"glass_shards\",\n \"category\": \"materials\",\n \"size\": [\n 0.12,\n 0.05,\n 0.1\n ],\n \"weight\": 0.2,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"epoxy_glue\",\n \"category\": \"materials\",\n \"size\": [\n 0.1,\n 0.06,\n 0.03\n ],\n \"weight\": 0.1,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 5\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"mall\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"electronic_components\",\n \"category\": \"materials\",\n \"size\": [\n 0.1,\n 0.02,\n 0.08\n ],\n \"weight\": 0.1,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"dam\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"copper_wire\",\n \"category\": \"materials\",\n \"size\": [\n 0.08,\n 0.03,\n 0.08\n ],\n \"weight\": 0.3,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"dam\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"firewood\",\n \"category\": \"materials\",\n \"size\": [\n 0.4,\n 0.12,\n 0.16\n ],\n \"weight\": 1.5,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 3600,\n \"per\": \"h de fogo\"\n },\n \"finds\": {\n \"places\": [\n \"farm\",\n \"lodge\"\n ]\n }\n },\n {\n \"id\": \"rebar\",\n \"category\": \"materials\",\n \"size\": [\n 1.27,\n 0.016,\n 0.016\n ],\n \"weight\": 2,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"road\"\n ]\n }\n },\n {\n \"id\": \"lubricant_spray\",\n \"category\": \"materials\",\n \"size\": [\n 0.05,\n 0.17,\n 0.05\n ],\n \"weight\": 0.25,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 15\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"workshop\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"tshirt\",\n \"category\": \"clothing\",\n \"tags\": [\n \"clothing\"\n ],\n \"size\": [\n 0.3,\n 0.04,\n 0.22\n ],\n \"weight\": 0.15,\n \"stack\": 4,\n \"shape\": \"cloth\",\n \"color\": 3828400,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 40\n },\n \"protection\": {\n \"slots\": [\n \"torso\",\n \"arms\"\n ],\n \"bite\": 0,\n \"scratch\": 0.1,\n \"warmth\": 0.1\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"mall\",\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"hoodie\",\n \"category\": \"clothing\",\n \"size\": [\n 0.38,\n 0.08,\n 0.28\n ],\n \"weight\": 0.6,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 60\n },\n \"protection\": {\n \"slots\": [\n \"torso\",\n \"arms\"\n ],\n \"bite\": 0.1,\n \"scratch\": 0.3,\n \"warmth\": 0.4\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"mall\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"denim_jacket\",\n \"category\": \"clothing\",\n \"size\": [\n 0.4,\n 0.08,\n 0.3\n ],\n \"weight\": 1,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 90\n },\n \"protection\": {\n \"slots\": [\n \"torso\",\n \"arms\"\n ],\n \"bite\": 0.25,\n \"scratch\": 0.5,\n \"warmth\": 0.3\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"mall\"\n ]\n }\n },\n {\n \"id\": \"leather_motorcycle_jacket\",\n \"category\": \"clothing\",\n \"size\": [\n 0.45,\n 0.1,\n 0.35\n ],\n \"weight\": 1.8,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 150\n },\n \"protection\": {\n \"slots\": [\n \"torso\",\n \"arms\"\n ],\n \"bite\": 0.45,\n \"scratch\": 0.75,\n \"warmth\": 0.6\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"mall\",\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"jeans\",\n \"category\": \"clothing\",\n \"tags\": [\n \"clothing\"\n ],\n \"size\": [\n 0.35,\n 0.06,\n 0.22\n ],\n \"weight\": 0.8,\n \"stack\": 3,\n \"shape\": \"cloth\",\n \"color\": 2771578,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 90\n },\n \"protection\": {\n \"slots\": [\n \"legs\"\n ],\n \"bite\": 0.2,\n \"scratch\": 0.45,\n \"warmth\": 0.2\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"mall\",\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"leather_motorcycle_pants\",\n \"category\": \"clothing\",\n \"size\": [\n 0.4,\n 0.09,\n 0.3\n ],\n \"weight\": 1.6,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 150\n },\n \"protection\": {\n \"slots\": [\n \"legs\"\n ],\n \"bite\": 0.4,\n \"scratch\": 0.7,\n \"warmth\": 0.5\n },\n \"finds\": {\n \"places\": [\n \"mall\",\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"army_camouflage_uniform\",\n \"category\": \"clothing\",\n \"size\": [\n 0.4,\n 0.1,\n 0.32\n ],\n \"weight\": 1.5,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 120\n },\n \"protection\": {\n \"slots\": [\n \"torso\",\n \"arms\",\n \"legs\"\n ],\n \"bite\": 0.25,\n \"scratch\": 0.5,\n \"warmth\": 0.3\n },\n \"finds\": {\n \"places\": [\n \"military_base\",\n \"zombie_corpse\",\n \"gun_shop\"\n ]\n }\n },\n {\n \"id\": \"mechanic_coveralls\",\n \"category\": \"clothing\",\n \"size\": [\n 0.4,\n 0.09,\n 0.3\n ],\n \"weight\": 1.2,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 110\n },\n \"protection\": {\n \"slots\": [\n \"torso\",\n \"arms\",\n \"legs\"\n ],\n \"bite\": 0.15,\n \"scratch\": 0.4,\n \"warmth\": 0.3\n },\n \"finds\": {\n \"places\": [\n \"workshop\",\n \"warehouse\"\n ]\n }\n },\n {\n \"id\": \"firefighter_suit\",\n \"category\": \"clothing\",\n \"size\": [\n 0.55,\n 0.2,\n 0.4\n ],\n \"weight\": 4,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 200\n },\n \"protection\": {\n \"slots\": [\n \"torso\",\n \"arms\",\n \"legs\"\n ],\n \"bite\": 0.55,\n \"scratch\": 0.8,\n \"warmth\": 0.8\n },\n \"finds\": {\n \"places\": [\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"beekeeper_suit\",\n \"category\": \"clothing\",\n \"size\": [\n 0.4,\n 0.1,\n 0.33\n ],\n \"weight\": 1.4,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"very_rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 70\n },\n \"protection\": {\n \"slots\": [\n \"head\",\n \"torso\",\n \"arms\",\n \"hands\",\n \"legs\",\n \"feet\"\n ],\n \"bite\": 0.15,\n \"scratch\": 0.6,\n \"warmth\": 0.4\n },\n \"finds\": {\n \"places\": [\n \"lodge\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"raincoat\",\n \"category\": \"clothing\",\n \"size\": [\n 0.3,\n 0.04,\n 0.25\n ],\n \"weight\": 0.4,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 50\n },\n \"protection\": {\n \"slots\": [\n \"torso\",\n \"arms\",\n \"legs\"\n ],\n \"bite\": 0,\n \"scratch\": 0.05,\n \"warmth\": 0.1\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"gas_station\",\n \"docks\"\n ]\n }\n },\n {\n \"id\": \"padded_coat\",\n \"category\": \"clothing\",\n \"size\": [\n 0.45,\n 0.15,\n 0.35\n ],\n \"weight\": 1.3,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 80\n },\n \"protection\": {\n \"slots\": [\n \"torso\",\n \"arms\"\n ],\n \"bite\": 0.2,\n \"scratch\": 0.4,\n \"warmth\": 0.9\n },\n \"finds\": {\n \"places\": [\n \"lodge\",\n \"mall\"\n ]\n }\n },\n {\n \"id\": \"motorcycle_helmet\",\n \"category\": \"clothing\",\n \"size\": [\n 0.26,\n 0.25356,\n 0.27405\n ],\n \"weight\": 1.4,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 180\n },\n \"protection\": {\n \"slots\": [\n \"head\"\n ],\n \"bite\": 0.9,\n \"scratch\": 0.95,\n \"warmth\": 0.2\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"car\",\n \"zombie_corpse\",\n \"road\"\n ]\n },\n \"model\": \"motorcycle_helmet\"\n },\n {\n \"id\": \"hard_hat\",\n \"category\": \"clothing\",\n \"size\": [\n 0.25,\n 0.15,\n 0.3\n ],\n \"weight\": 0.4,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 120\n },\n \"protection\": {\n \"slots\": [\n \"head\"\n ],\n \"bite\": 0,\n \"scratch\": 0.2,\n \"warmth\": 0.1\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"mine\"\n ]\n }\n },\n {\n \"id\": \"safety_goggles\",\n \"category\": \"clothing\",\n \"size\": [\n 0.16,\n 0.06,\n 0.08\n ],\n \"weight\": 0.05,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 80\n },\n \"protection\": {\n \"slots\": [\n \"eyes\"\n ],\n \"bite\": 0,\n \"scratch\": 0,\n \"warmth\": 0\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"school\",\n \"workshop\"\n ]\n }\n },\n {\n \"id\": \"leather_work_gloves\",\n \"category\": \"clothing\",\n \"size\": [\n 0.25,\n 0.03,\n 0.12\n ],\n \"weight\": 0.2,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 80\n },\n \"protection\": {\n \"slots\": [\n \"hands\"\n ],\n \"bite\": 0.3,\n \"scratch\": 0.6,\n \"warmth\": 0.1\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"farm\",\n \"workshop\"\n ]\n }\n },\n {\n \"id\": \"combat_boots\",\n \"category\": \"clothing\",\n \"size\": [\n 0.3,\n 0.2,\n 0.22\n ],\n \"weight\": 1.6,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 200\n },\n \"protection\": {\n \"slots\": [\n \"feet\"\n ],\n \"bite\": 0.6,\n \"scratch\": 0.8,\n \"warmth\": 0.2\n },\n \"finds\": {\n \"places\": [\n \"military_base\",\n \"police_station\",\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"rubber_boots\",\n \"category\": \"clothing\",\n \"size\": [\n 0.3,\n 0.35,\n 0.22\n ],\n \"weight\": 1.2,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 120\n },\n \"protection\": {\n \"slots\": [\n \"feet\"\n ],\n \"bite\": 0.35,\n \"scratch\": 0.6,\n \"warmth\": 0.1\n },\n \"finds\": {\n \"places\": [\n \"farm\",\n \"docks\"\n ]\n }\n },\n {\n \"id\": \"sneakers\",\n \"category\": \"clothing\",\n \"tags\": [\n \"clothing\"\n ],\n \"size\": [\n 0.3,\n 0.12,\n 0.12\n ],\n \"weight\": 0.7,\n \"stack\": 1,\n \"shape\": \"shoe\",\n \"color\": 15263976,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 80\n },\n \"protection\": {\n \"slots\": [\n \"feet\"\n ],\n \"bite\": 0.05,\n \"scratch\": 0.2,\n \"warmth\": 0.1\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"mall\"\n ]\n }\n },\n {\n \"id\": \"flip_flops\",\n \"category\": \"clothing\",\n \"size\": [\n 0.29,\n 0.03,\n 0.23\n ],\n \"weight\": 0.2,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 30\n },\n \"protection\": {\n \"slots\": [\n \"feet\"\n ],\n \"bite\": 0,\n \"scratch\": 0,\n \"warmth\": 0\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"magazine_arm_guard\",\n \"category\": \"clothing\",\n \"tags\": [\n \"craft_only\"\n ],\n \"size\": [\n 0.3,\n 0.06,\n 0.15\n ],\n \"weight\": 0.4,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 40\n },\n \"protection\": {\n \"slots\": [\n \"arms\"\n ],\n \"bite\": 0.35,\n \"scratch\": 0.5,\n \"warmth\": 0\n }\n },\n {\n \"id\": \"sheet_metal_forearm_guard\",\n \"category\": \"clothing\",\n \"tags\": [\n \"craft_only\"\n ],\n \"size\": [\n 0.3,\n 0.1,\n 0.12\n ],\n \"weight\": 1.5,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 150\n },\n \"protection\": {\n \"slots\": [\n \"arms\"\n ],\n \"bite\": 0.7,\n \"scratch\": 0.9,\n \"warmth\": 0\n }\n },\n {\n \"id\": \"ballistic_vest\",\n \"category\": \"clothing\",\n \"size\": [\n 0.4,\n 0.07,\n 0.45\n ],\n \"weight\": 3,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"ver Arsenal\"\n },\n \"protection\": {\n \"slots\": [\n \"torso\"\n ],\n \"bite\": 0.6,\n \"scratch\": 0.85,\n \"warmth\": 0.3\n },\n \"finds\": {\n \"places\": [\n \"police_station\",\n \"military_base\",\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"shopping_bag\",\n \"category\": \"bags\",\n \"size\": [\n 0.3,\n 0.02,\n 0.2\n ],\n \"weight\": 0.02,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"10% de rasgar correndo cheia\"\n },\n \"carry\": {\n \"capacityKg\": 4,\n \"weightReduction\": 0,\n \"quickSlots\": 0\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"trash_bag\",\n \"category\": \"bags\",\n \"size\": [\n 0.25,\n 0.025,\n 0.2\n ],\n \"weight\": 0.05,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"rasga em cacos\"\n },\n \"carry\": {\n \"capacityKg\": 8,\n \"weightReduction\": 0,\n \"quickSlots\": 0\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"fanny_pack\",\n \"category\": \"bags\",\n \"size\": [\n 0.25,\n 0.1,\n 0.12\n ],\n \"weight\": 0.15,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 200\n },\n \"carry\": {\n \"capacityKg\": 1.5,\n \"weightReduction\": 0,\n \"quickSlots\": 3\n },\n \"finds\": {\n \"places\": [\n \"mall\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"crossbody_bag\",\n \"category\": \"bags\",\n \"size\": [\n 0.25,\n 0.2,\n 0.08\n ],\n \"weight\": 0.3,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 150\n },\n \"carry\": {\n \"capacityKg\": 4,\n \"weightReduction\": 0.1,\n \"quickSlots\": 2\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"mall\"\n ]\n }\n },\n {\n \"id\": \"backpack\",\n \"category\": \"bags\",\n \"tags\": [\n \"clothing\"\n ],\n \"size\": [\n 0.3,\n 0.3,\n 0.2\n ],\n \"weight\": 0.5,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 3820090,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 200\n },\n \"carry\": {\n \"capacityKg\": 10,\n \"weightReduction\": 0.15,\n \"quickSlots\": 0\n },\n \"finds\": {\n \"places\": [\n \"school\",\n \"house\",\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"delivery_bag\",\n \"category\": \"bags\",\n \"size\": [\n 0.48,\n 0.45,\n 0.42\n ],\n \"weight\": 1.2,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 250\n },\n \"carry\": {\n \"capacityKg\": 14,\n \"weightReduction\": 0.2,\n \"quickSlots\": 0\n },\n \"finds\": {\n \"places\": [\n \"zombie_corpse\",\n \"road\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"hiking_backpack_40l\",\n \"category\": \"bags\",\n \"size\": [\n 0.41121,\n 0.55,\n 0.31869\n ],\n \"weight\": 1.3,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 300\n },\n \"carry\": {\n \"capacityKg\": 18,\n \"weightReduction\": 0.3,\n \"quickSlots\": 1\n },\n \"finds\": {\n \"places\": [\n \"mall\",\n \"lodge\",\n \"gun_shop\"\n ]\n },\n \"model\": \"hiking_backpack_40l\"\n },\n {\n \"id\": \"military_backpack\",\n \"category\": \"bags\",\n \"size\": [\n 0.35,\n 0.6,\n 0.3\n ],\n \"weight\": 1.8,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 400\n },\n \"carry\": {\n \"capacityKg\": 24,\n \"weightReduction\": 0.35,\n \"quickSlots\": 4\n },\n \"finds\": {\n \"places\": [\n \"military_base\",\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"trekking_backpack_70l\",\n \"category\": \"bags\",\n \"size\": [\n 0.38,\n 0.75,\n 0.3\n ],\n \"weight\": 2.2,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"very_rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 350\n },\n \"carry\": {\n \"capacityKg\": 28,\n \"weightReduction\": 0.4,\n \"quickSlots\": 1\n },\n \"finds\": {\n \"places\": [\n \"mall\",\n \"lodge\"\n ]\n }\n },\n {\n \"id\": \"rolling_suitcase\",\n \"category\": \"bags\",\n \"size\": [\n 0.4,\n 0.65,\n 0.25\n ],\n \"weight\": 3,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 150\n },\n \"carry\": {\n \"capacityKg\": 25,\n \"weightReduction\": 0.5,\n \"quickSlots\": 0\n },\n \"finds\": {\n \"places\": [\n \"apartment\",\n \"house\",\n \"train\",\n \"road\"\n ]\n }\n },\n {\n \"id\": \"tactical_vest\",\n \"category\": \"bags\",\n \"size\": [\n 0.35,\n 0.1,\n 0.4\n ],\n \"weight\": 1.2,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 300\n },\n \"carry\": {\n \"capacityKg\": 3,\n \"weightReduction\": 0,\n \"quickSlots\": 6\n },\n \"finds\": {\n \"places\": [\n \"police_station\",\n \"military_base\"\n ]\n }\n },\n {\n \"id\": \"tool_belt\",\n \"category\": \"bags\",\n \"size\": [\n 0.35,\n 0.1,\n 0.25\n ],\n \"weight\": 0.4,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"amount\": 200\n },\n \"carry\": {\n \"capacityKg\": 4,\n \"weightReduction\": 0.2,\n \"quickSlots\": 4\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"workshop\"\n ]\n }\n },\n {\n \"id\": \"cooler_box\",\n \"category\": \"bags\",\n \"size\": [\n 0.32,\n 0.25,\n 0.23\n ],\n \"weight\": 1,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"carry\": {\n \"capacityKg\": 10,\n \"weightReduction\": 0,\n \"quickSlots\": 0\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"docks\",\n \"gas_station\"\n ]\n }\n },\n {\n \"id\": \"shopping_cart\",\n \"category\": \"bags\",\n \"size\": [\n 0.55,\n 0.98,\n 0.95\n ],\n \"weight\": 12,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"carry\": {\n \"capacityKg\": 40,\n \"weightReduction\": 1,\n \"quickSlots\": 0,\n \"wheels\": true\n },\n \"finds\": {\n \"places\": [\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"wheelbarrow\",\n \"category\": \"bags\",\n \"size\": [\n 0.65,\n 0.65,\n 1.5\n ],\n \"weight\": 15,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"carry\": {\n \"capacityKg\": 60,\n \"weightReduction\": 1,\n \"quickSlots\": 0,\n \"wheels\": true\n },\n \"finds\": {\n \"places\": [\n \"farm\",\n \"warehouse\"\n ]\n }\n },\n {\n \"id\": \"flashlight\",\n \"category\": \"electronics\",\n \"tags\": [\n \"tool\"\n ],\n \"size\": [\n 0.0563,\n 0.16,\n 0.0563\n ],\n \"weight\": 0.2,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 2763310,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 28800,\n \"per\": \"h\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"mall\",\n \"car\",\n \"police_station\",\n \"school\"\n ]\n },\n \"model\": \"flashlight\"\n },\n {\n \"id\": \"headlamp\",\n \"category\": \"electronics\",\n \"size\": [\n 0.09,\n 0.06,\n 0.05\n ],\n \"weight\": 0.1,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 43200,\n \"per\": \"h\"\n },\n \"finds\": {\n \"places\": [\n \"mall\",\n \"lodge\",\n \"mine\",\n \"gun_shop\"\n ]\n }\n },\n {\n \"id\": \"batteries\",\n \"category\": \"electronics\",\n \"tags\": [\n \"tool\"\n ],\n \"size\": [\n 0.03739,\n 0.0505,\n 0.01729\n ],\n \"weight\": 0.05,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 13148192,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 28800,\n \"per\": \"h de lanterna\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"gas_station\",\n \"mall\"\n ]\n },\n \"charge\": {\n \"lossPerMonth\": 0.1\n },\n \"model\": \"batteries\"\n },\n {\n \"id\": \"battery_9v\",\n \"category\": \"electronics\",\n \"size\": [\n 0.026,\n 0.049,\n 0.018\n ],\n \"weight\": 0.05,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"school\"\n ]\n },\n \"charge\": {\n \"lossPerMonth\": 0.1\n }\n },\n {\n \"id\": \"power_bank\",\n \"category\": \"electronics\",\n \"size\": [\n 0.15,\n 0.07,\n 0.016\n ],\n \"weight\": 0.3,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"charges\",\n \"amount\": 3,\n \"per\": \"recargas\"\n },\n \"finds\": {\n \"places\": [\n \"apartment\",\n \"mall\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"folding_solar_panel\",\n \"category\": \"electronics\",\n \"size\": [\n 0.4,\n 0.3,\n 0.05\n ],\n \"weight\": 1.5,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"mall\",\n \"lodge\",\n \"gun_shop\"\n ]\n }\n },\n {\n \"id\": \"portable_radio\",\n \"category\": \"electronics\",\n \"size\": [\n 0.22,\n 0.29532,\n 0.06974\n ],\n \"weight\": 0.5,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 72000,\n \"per\": \"h\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"mall\",\n \"church\"\n ]\n },\n \"model\": \"portable_radio\"\n },\n {\n \"id\": \"walkie_talkies\",\n \"category\": \"electronics\",\n \"size\": [\n 0.06959,\n 0.22,\n 0.03293\n ],\n \"weight\": 0.6,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 43200,\n \"per\": \"h\"\n },\n \"finds\": {\n \"places\": [\n \"police_station\",\n \"mall\",\n \"warehouse\",\n \"military_base\"\n ]\n },\n \"model\": \"walkie_talkies\"\n },\n {\n \"id\": \"cb_radio\",\n \"category\": \"electronics\",\n \"size\": [\n 0.25,\n 0.08,\n 0.2\n ],\n \"weight\": 3,\n \"stack\": 1,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"bateria 12 V\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"dam\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"military_radio\",\n \"category\": \"electronics\",\n \"size\": [\n 0.3,\n 0.2,\n 0.25\n ],\n \"weight\": 6,\n \"stack\": 1,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"legendary\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"bateria própria\"\n },\n \"finds\": {\n \"places\": [\n \"military_base\"\n ]\n }\n },\n {\n \"id\": \"portable_generator\",\n \"category\": \"electronics\",\n \"size\": [\n 0.5,\n 0.42,\n 0.43\n ],\n \"weight\": 25,\n \"stack\": 1,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 14400,\n \"per\": \"h por litro\"\n },\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"hospital\",\n \"farm\",\n \"workshop\"\n ]\n }\n },\n {\n \"id\": \"led_camp_lantern\",\n \"category\": \"electronics\",\n \"size\": [\n 0.11,\n 0.2,\n 0.11\n ],\n \"weight\": 0.4,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 108000,\n \"per\": \"h\"\n },\n \"finds\": {\n \"places\": [\n \"mall\",\n \"lodge\",\n \"gun_shop\"\n ]\n }\n },\n {\n \"id\": \"mobile_phone\",\n \"category\": \"electronics\",\n \"size\": [\n 0.077,\n 0.16,\n 0.009\n ],\n \"weight\": 0.2,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"days\",\n \"amount\": 2,\n \"per\": \"dias de bateria\"\n },\n \"finds\": {\n \"places\": [\n \"zombie_corpse\",\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"laptop\",\n \"category\": \"electronics\",\n \"size\": [\n 0.36,\n 0.025,\n 0.25\n ],\n \"weight\": 2,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 14400,\n \"per\": \"h\"\n },\n \"finds\": {\n \"places\": [\n \"apartment\",\n \"school\",\n \"hospital\",\n \"police_station\"\n ]\n }\n },\n {\n \"id\": \"windup_alarm_clock\",\n \"category\": \"electronics\",\n \"size\": [\n 0.11,\n 0.125,\n 0.055\n ],\n \"weight\": 0.3,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"car_alarm_remote\",\n \"category\": \"electronics\",\n \"size\": [\n 0.04,\n 0.07,\n 0.012\n ],\n \"weight\": 0.03,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"pilha\"\n },\n \"finds\": {\n \"places\": [\n \"zombie_corpse\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"electric_fence_energizer\",\n \"category\": \"electronics\",\n \"size\": [\n 0.25,\n 0.2,\n 0.15\n ],\n \"weight\": 3,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"bateria 12 V\"\n },\n \"finds\": {\n \"places\": [\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"extension_cord\",\n \"category\": \"electronics\",\n \"size\": [\n 0.23,\n 0.08,\n 0.23\n ],\n \"weight\": 1.5,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"warehouse\"\n ]\n }\n },\n {\n \"id\": \"candles\",\n \"category\": \"electronics\",\n \"tags\": [\n \"tool\"\n ],\n \"size\": [\n 0.06,\n 0.12,\n 0.06\n ],\n \"weight\": 0.05,\n \"stack\": 4,\n \"shape\": \"tool\",\n \"color\": 15788232,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 14400,\n \"per\": \"h\"\n },\n \"finds\": {\n \"places\": [\n \"church\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"night_vision_goggles\",\n \"category\": \"electronics\",\n \"size\": [\n 0.15,\n 0.1,\n 0.11\n ],\n \"weight\": 0.6,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"very_rare\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"ver Arsenal\"\n },\n \"finds\": {\n \"places\": [\n \"military_base\"\n ]\n }\n },\n {\n \"id\": \"fuel_jerrycan\",\n \"category\": \"fuel\",\n \"size\": [\n 0.30778,\n 0.47,\n 0.1541\n ],\n \"weight\": 1.2,\n \"stack\": 1,\n \"shape\": \"jar\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"gas_station\",\n \"workshop\",\n \"farm\",\n \"car\"\n ]\n },\n \"model\": \"fuel_jerrycan\"\n },\n {\n \"id\": \"gasoline\",\n \"category\": \"fuel\",\n \"size\": [\n 0.09,\n 0.26,\n 0.09\n ],\n \"weight\": 0.75,\n \"stack\": 1,\n \"shape\": \"jar\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"days\",\n \"amount\": 180,\n \"per\": \"meses\"\n },\n \"finds\": {\n \"places\": [\n \"gas_station\",\n \"car\",\n \"warehouse\"\n ]\n },\n \"agingFault\": {\n \"afterDays\": 180,\n \"chance\": 0.1\n }\n },\n {\n \"id\": \"diesel\",\n \"category\": \"fuel\",\n \"size\": [\n 0.09,\n 0.26,\n 0.09\n ],\n \"weight\": 0.85,\n \"stack\": 1,\n \"shape\": \"jar\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"days\",\n \"amount\": 365,\n \"per\": \"ano\"\n },\n \"finds\": {\n \"places\": [\n \"gas_station\",\n \"farm\",\n \"docks\",\n \"mine\"\n ]\n }\n },\n {\n \"id\": \"lpg_cylinder_13kg\",\n \"category\": \"fuel\",\n \"size\": [\n 0.35299,\n 0.49,\n 0.35844\n ],\n \"weight\": 29,\n \"stack\": 1,\n \"shape\": \"jar\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"days\",\n \"amount\": 30,\n \"per\": \"dias de fogão\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"supermarket\"\n ]\n },\n \"model\": \"lpg_cylinder_13kg\"\n },\n {\n \"id\": \"gas_cartridge\",\n \"category\": \"fuel\",\n \"size\": [\n 0.11,\n 0.165,\n 0.11\n ],\n \"weight\": 0.35,\n \"stack\": 1,\n \"shape\": \"jar\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 7200,\n \"per\": \"h\"\n },\n \"finds\": {\n \"places\": [\n \"mall\",\n \"gun_shop\",\n \"lodge\",\n \"warehouse\"\n ]\n }\n },\n {\n \"id\": \"kerosene\",\n \"category\": \"fuel\",\n \"size\": [\n 0.09,\n 0.26,\n 0.09\n ],\n \"weight\": 0.8,\n \"stack\": 1,\n \"shape\": \"jar\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 72000,\n \"per\": \"h de lamparina\"\n },\n \"finds\": {\n \"places\": [\n \"farm\",\n \"lodge\",\n \"church\"\n ]\n }\n },\n {\n \"id\": \"charcoal_bag\",\n \"category\": \"fuel\",\n \"tags\": [\n \"bbq\"\n ],\n \"size\": [\n 0.3,\n 0.12,\n 0.4\n ],\n \"weight\": 3,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 2763310,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"seconds\",\n \"amount\": 10800,\n \"per\": \"h\"\n },\n \"finds\": {\n \"places\": [\n \"supermarket\",\n \"gas_station\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"car_battery_12v\",\n \"category\": \"fuel\",\n \"size\": [\n 0.24,\n 0.19,\n 0.175\n ],\n \"weight\": 14,\n \"stack\": 1,\n \"shape\": \"jar\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"ver Frota\"\n },\n \"finds\": {\n \"places\": [\n \"car\",\n \"workshop\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"motor_oil\",\n \"category\": \"fuel\",\n \"size\": [\n 0.1,\n 0.26,\n 0.07\n ],\n \"weight\": 1,\n \"stack\": 1,\n \"shape\": \"jar\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"condition\",\n \"per\": \"ver Frota\"\n },\n \"finds\": {\n \"places\": [\n \"gas_station\",\n \"workshop\"\n ]\n }\n },\n {\n \"id\": \"bean_seeds\",\n \"category\": \"outdoors\",\n \"size\": [\n 0.1,\n 0.15,\n 0.02\n ],\n \"weight\": 0.1,\n \"stack\": 8,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 8,\n \"per\": \"covas\"\n },\n \"finds\": {\n \"places\": [\n \"farm\",\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"corn_seeds\",\n \"category\": \"outdoors\",\n \"size\": [\n 0.1,\n 0.15,\n 0.02\n ],\n \"weight\": 0.1,\n \"stack\": 8,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 8,\n \"per\": \"covas\"\n },\n \"finds\": {\n \"places\": [\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"pumpkin_seeds\",\n \"category\": \"outdoors\",\n \"size\": [\n 0.09,\n 0.13,\n 0.015\n ],\n \"weight\": 0.05,\n \"stack\": 8,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 4,\n \"per\": \"covas\"\n },\n \"finds\": {\n \"places\": [\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"kale_and_lettuce_seeds\",\n \"category\": \"outdoors\",\n \"size\": [\n 0.09,\n 0.13,\n 0.015\n ],\n \"weight\": 0.05,\n \"stack\": 8,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 10,\n \"per\": \"covas\"\n },\n \"finds\": {\n \"places\": [\n \"farm\",\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"cassava_cuttings\",\n \"category\": \"outdoors\",\n \"size\": [\n 0.7,\n 0.12,\n 0.12\n ],\n \"weight\": 2,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 10,\n \"per\": \"covas\"\n },\n \"finds\": {\n \"places\": [\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"fertilizer_bag\",\n \"category\": \"outdoors\",\n \"size\": [\n 0.45,\n 0.13,\n 0.3\n ],\n \"weight\": 10,\n \"stack\": 1,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 8,\n \"per\": \"canteiros\"\n },\n \"finds\": {\n \"places\": [\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"watering_can\",\n \"category\": \"outdoors\",\n \"size\": [\n 0.4,\n 0.26,\n 0.18\n ],\n \"weight\": 0.5,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"infinite\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"fishing_rod\",\n \"category\": \"outdoors\",\n \"size\": [\n 1.8,\n 0.04,\n 0.04\n ],\n \"weight\": 1,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 200,\n \"per\": \"lances\"\n },\n \"finds\": {\n \"places\": [\n \"docks\",\n \"house\",\n \"gun_shop\"\n ]\n }\n },\n {\n \"id\": \"fishing_tackle_box\",\n \"category\": \"outdoors\",\n \"size\": [\n 0.3,\n 0.1,\n 0.18\n ],\n \"weight\": 0.6,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 40,\n \"per\": \"iscas\"\n },\n \"finds\": {\n \"places\": [\n \"docks\",\n \"gun_shop\"\n ]\n }\n },\n {\n \"id\": \"fishing_net\",\n \"category\": \"outdoors\",\n \"size\": [\n 0.35,\n 0.15,\n 0.3\n ],\n \"weight\": 3,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"days\",\n \"amount\": 30\n },\n \"finds\": {\n \"places\": [\n \"docks\"\n ]\n }\n },\n {\n \"id\": \"snare_trap\",\n \"category\": \"outdoors\",\n \"tags\": [\n \"craft_only\"\n ],\n \"size\": [\n 0.15,\n 0.03,\n 0.15\n ],\n \"weight\": 0.3,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 5,\n \"per\": \"capturas\"\n }\n },\n {\n \"id\": \"skill_book\",\n \"category\": \"books\",\n \"size\": [\n 0.16,\n 0.23,\n 0.04\n ],\n \"weight\": 0.6,\n \"stack\": 2,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1,\n \"per\": \"leitura\"\n },\n \"finds\": {\n \"places\": [\n \"school\",\n \"house\",\n \"apartment\",\n \"mall\"\n ]\n }\n },\n {\n \"id\": \"technical_manual\",\n \"category\": \"books\",\n \"size\": [\n 0.21,\n 0.3,\n 0.04\n ],\n \"weight\": 0.8,\n \"stack\": 2,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1,\n \"per\": \"leitura\"\n },\n \"finds\": {\n \"places\": [\n \"school\",\n \"warehouse\",\n \"workshop\",\n \"hospital\",\n \"military_base\"\n ]\n }\n },\n {\n \"id\": \"diy_magazine\",\n \"category\": \"books\",\n \"size\": [\n 0.21,\n 0.28,\n 0.008\n ],\n \"weight\": 0.2,\n \"stack\": 2,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1,\n \"per\": \"leitura\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"gas_station\",\n \"mall\"\n ]\n }\n },\n {\n \"id\": \"magazines_and_comics\",\n \"category\": \"books\",\n \"size\": [\n 0.17,\n 0.26,\n 0.01\n ],\n \"weight\": 0.2,\n \"stack\": 2,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 3,\n \"per\": \"leituras\"\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"school\",\n \"gas_station\"\n ]\n }\n },\n {\n \"id\": \"farmers_almanac\",\n \"category\": \"books\",\n \"size\": [\n 0.15,\n 0.21,\n 0.015\n ],\n \"weight\": 0.3,\n \"stack\": 2,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 1,\n \"per\": \"leitura\"\n },\n \"finds\": {\n \"places\": [\n \"farm\",\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"note\",\n \"category\": \"collectibles\",\n \"size\": [\n 0.15,\n 0.002,\n 0.1\n ],\n \"weight\": 0.01,\n \"stack\": 10,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"church\",\n \"train\",\n \"car\"\n ]\n }\n },\n {\n \"id\": \"photo\",\n \"category\": \"collectibles\",\n \"size\": [\n 0.102,\n 0.002,\n 0.152\n ],\n \"weight\": 0.01,\n \"stack\": 10,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"zombie_corpse\",\n \"car\"\n ]\n }\n },\n {\n \"id\": \"city_map\",\n \"category\": \"collectibles\",\n \"size\": [\n 0.11,\n 0.01,\n 0.25\n ],\n \"weight\": 0.05,\n \"stack\": 10,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"finds\": {\n \"places\": [\n \"police_station\"\n ]\n }\n },\n {\n \"id\": \"road_map\",\n \"category\": \"collectibles\",\n \"size\": [\n 0.11,\n 0.01,\n 0.25\n ],\n \"weight\": 0.05,\n \"stack\": 10,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"gas_station\",\n \"car\"\n ]\n }\n },\n {\n \"id\": \"dog_tag\",\n \"category\": \"collectibles\",\n \"size\": [\n 0.03,\n 0.003,\n 0.05\n ],\n \"weight\": 0.01,\n \"stack\": 10,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"zombie_corpse\",\n \"military_base\"\n ]\n }\n },\n {\n \"id\": \"cash\",\n \"category\": \"collectibles\",\n \"size\": [\n 0.155,\n 0.01,\n 0.065\n ],\n \"weight\": 0.05,\n \"stack\": 10,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"supermarket\",\n \"zombie_corpse\",\n \"car\"\n ]\n }\n },\n {\n \"id\": \"cigarettes\",\n \"category\": \"collectibles\",\n \"size\": [\n 0.055,\n 0.088,\n 0.022\n ],\n \"weight\": 0.03,\n \"stack\": 10,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"durability\": {\n \"kind\": \"uses\",\n \"amount\": 20\n },\n \"finds\": {\n \"places\": [\n \"gas_station\",\n \"supermarket\",\n \"prison\",\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"house_key\",\n \"category\": \"keys\",\n \"size\": [\n 0.085,\n 0.04574,\n 0.00441\n ],\n \"weight\": 0.02,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"zombie_corpse\"\n ]\n },\n \"model\": \"house_key\"\n },\n {\n \"id\": \"car_key\",\n \"category\": \"keys\",\n \"size\": [\n 0.06,\n 0.045,\n 0.015\n ],\n \"weight\": 0.02,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"zombie_corpse\",\n \"car\"\n ]\n }\n },\n {\n \"id\": \"master_key\",\n \"category\": \"keys\",\n \"size\": [\n 0.09,\n 0.035,\n 0.006\n ],\n \"weight\": 0.05,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"finds\": {\n \"places\": [\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"janitor_keys\",\n \"category\": \"keys\",\n \"size\": [\n 0.12,\n 0.1,\n 0.02\n ],\n \"weight\": 0.15,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"finds\": {\n \"places\": [\n \"school\"\n ]\n }\n },\n {\n \"id\": \"generator_key\",\n \"category\": \"keys\",\n \"size\": [\n 0.08,\n 0.03,\n 0.006\n ],\n \"weight\": 0.05,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"unique\",\n \"finds\": {\n \"places\": [\n \"hospital\"\n ]\n }\n },\n {\n \"id\": \"safe_key\",\n \"category\": \"keys\",\n \"size\": [\n 0.07,\n 0.025,\n 0.005\n ],\n \"weight\": 0.05,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"unique\",\n \"finds\": {\n \"places\": [\n \"police_station\"\n ]\n }\n },\n {\n \"id\": \"padlock_key\",\n \"category\": \"keys\",\n \"size\": [\n 0.05,\n 0.08,\n 0.025\n ],\n \"weight\": 0.3,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"warehouse\",\n \"farm\",\n \"house\"\n ]\n }\n },\n {\n \"id\": \"cell_key\",\n \"category\": \"keys\",\n \"size\": [\n 0.12,\n 0.03,\n 0.008\n ],\n \"weight\": 0.05,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"rare\",\n \"finds\": {\n \"places\": [\n \"prison\",\n \"zombie_corpse\"\n ]\n }\n },\n {\n \"id\": \"canned_food\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.075,\n 0.11,\n 0.075\n ],\n \"weight\": 0.4,\n \"stack\": 6,\n \"shape\": \"can\",\n \"color\": 13148218,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"flour\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.1,\n 0.22,\n 0.06\n ],\n \"weight\": 1,\n \"stack\": 4,\n \"shape\": \"bag\",\n \"color\": 16052452,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"cereal_box\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.2,\n 0.3,\n 0.08\n ],\n \"weight\": 0.4,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 14182960,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"butter\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.1,\n 0.04,\n 0.06\n ],\n \"weight\": 0.2,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 16050336,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"ketchup\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.06,\n 0.2,\n 0.06\n ],\n \"weight\": 0.4,\n \"stack\": 2,\n \"shape\": \"bottle\",\n \"color\": 13117984,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"ham\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.15,\n 0.03,\n 0.1\n ],\n \"weight\": 0.2,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 15245472,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"yogurt\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.07,\n 0.09,\n 0.07\n ],\n \"weight\": 0.17,\n \"stack\": 6,\n \"shape\": \"jar\",\n \"color\": 15786216,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"apple\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.08,\n 0.08,\n 0.08\n ],\n \"weight\": 0.18,\n \"stack\": 6,\n \"shape\": \"fruit\",\n \"color\": 13122096,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"tomato\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.07,\n 0.07,\n 0.07\n ],\n \"weight\": 0.15,\n \"stack\": 6,\n \"shape\": \"fruit\",\n \"color\": 14172202,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"frozen_meat\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.2,\n 0.05,\n 0.15\n ],\n \"weight\": 0.8,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 12081754,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"ice_cream\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.13,\n 0.1,\n 0.13\n ],\n \"weight\": 0.9,\n \"stack\": 2,\n \"shape\": \"jar\",\n \"color\": 15784160,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"frozen_pizza\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.3,\n 0.03,\n 0.3\n ],\n \"weight\": 0.5,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 14195264,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"frozen_vegetables\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.15,\n 0.2,\n 0.05\n ],\n \"weight\": 0.5,\n \"stack\": 3,\n \"shape\": \"bag\",\n \"color\": 4889168,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"plate\",\n \"category\": \"tools\",\n \"tags\": [\n \"kitchen\"\n ],\n \"size\": [\n 0.25,\n 0.03,\n 0.25\n ],\n \"weight\": 0.4,\n \"stack\": 6,\n \"shape\": \"dish\",\n \"color\": 15790320,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"bowl\",\n \"category\": \"tools\",\n \"tags\": [\n \"kitchen\"\n ],\n \"size\": [\n 0.15,\n 0.07,\n 0.15\n ],\n \"weight\": 0.3,\n \"stack\": 6,\n \"shape\": \"dish\",\n \"color\": 15262936,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"cup\",\n \"category\": \"tools\",\n \"tags\": [\n \"kitchen\"\n ],\n \"size\": [\n 0.08,\n 0.09,\n 0.08\n ],\n \"weight\": 0.25,\n \"stack\": 6,\n \"shape\": \"cup\",\n \"color\": 14215408,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"cutlery\",\n \"category\": \"tools\",\n \"tags\": [\n \"kitchen\"\n ],\n \"size\": [\n 0.2,\n 0.03,\n 0.08\n ],\n \"weight\": 0.4,\n \"stack\": 2,\n \"shape\": \"tool\",\n \"color\": 12633288,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"pan\",\n \"category\": \"tools\",\n \"tags\": [\n \"kitchen\"\n ],\n \"size\": [\n 0.28,\n 0.08,\n 0.28\n ],\n \"weight\": 0.9,\n \"stack\": 1,\n \"shape\": \"dish\",\n \"color\": 2763310,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"soap\",\n \"category\": \"medical\",\n \"tags\": [\n \"hygiene\"\n ],\n \"size\": [\n 0.09,\n 0.03,\n 0.05\n ],\n \"weight\": 0.1,\n \"stack\": 6,\n \"shape\": \"box\",\n \"color\": 15790304,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"shampoo\",\n \"category\": \"medical\",\n \"tags\": [\n \"hygiene\"\n ],\n \"size\": [\n 0.06,\n 0.2,\n 0.04\n ],\n \"weight\": 0.35,\n \"stack\": 3,\n \"shape\": \"bottle\",\n \"color\": 4885200,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"toothpaste\",\n \"category\": \"medical\",\n \"tags\": [\n \"hygiene\"\n ],\n \"size\": [\n 0.04,\n 0.18,\n 0.03\n ],\n \"weight\": 0.1,\n \"stack\": 3,\n \"shape\": \"tube\",\n \"color\": 15790320,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"toothbrush\",\n \"category\": \"medical\",\n \"tags\": [\n \"hygiene\"\n ],\n \"size\": [\n 0.02,\n 0.18,\n 0.02\n ],\n \"weight\": 0.02,\n \"stack\": 3,\n \"shape\": \"tool\",\n \"color\": 3840720,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"deodorant\",\n \"category\": \"medical\",\n \"tags\": [\n \"hygiene\"\n ],\n \"size\": [\n 0.05,\n 0.15,\n 0.04\n ],\n \"weight\": 0.15,\n \"stack\": 2,\n \"shape\": \"bottle\",\n \"color\": 11061480,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"toilet_paper\",\n \"category\": \"medical\",\n \"tags\": [\n \"hygiene\"\n ],\n \"size\": [\n 0.11,\n 0.1,\n 0.11\n ],\n \"weight\": 0.1,\n \"stack\": 8,\n \"shape\": \"roll\",\n \"color\": 16316664,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"towel\",\n \"category\": \"clothing\",\n \"tags\": [\n \"hygiene\"\n ],\n \"size\": [\n 0.3,\n 0.05,\n 0.2\n ],\n \"weight\": 0.5,\n \"stack\": 3,\n \"shape\": \"cloth\",\n \"color\": 4885160,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"detergent\",\n \"category\": \"materials\",\n \"tags\": [\n \"cleaning\"\n ],\n \"size\": [\n 0.07,\n 0.25,\n 0.05\n ],\n \"weight\": 0.5,\n \"stack\": 3,\n \"shape\": \"bottle\",\n \"color\": 7000224,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"bleach\",\n \"category\": \"materials\",\n \"tags\": [\n \"cleaning\"\n ],\n \"size\": [\n 0.1,\n 0.3,\n 0.08\n ],\n \"weight\": 1,\n \"stack\": 2,\n \"shape\": \"bottle\",\n \"color\": 15263988,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"sponge\",\n \"category\": \"materials\",\n \"tags\": [\n \"cleaning\"\n ],\n \"size\": [\n 0.1,\n 0.03,\n 0.07\n ],\n \"weight\": 0.03,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 15257648,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"jacket\",\n \"category\": \"clothing\",\n \"tags\": [\n \"clothing\"\n ],\n \"size\": [\n 0.4,\n 0.1,\n 0.22\n ],\n \"weight\": 0.8,\n \"stack\": 2,\n \"shape\": \"cloth\",\n \"color\": 4868690,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"socks\",\n \"category\": \"clothing\",\n \"tags\": [\n \"clothing\"\n ],\n \"size\": [\n 0.1,\n 0.03,\n 0.08\n ],\n \"weight\": 0.05,\n \"stack\": 6,\n \"shape\": \"cloth\",\n \"color\": 14211288,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"underwear\",\n \"category\": \"clothing\",\n \"tags\": [\n \"clothing\"\n ],\n \"size\": [\n 0.12,\n 0.03,\n 0.1\n ],\n \"weight\": 0.05,\n \"stack\": 6,\n \"shape\": \"cloth\",\n \"color\": 9079450,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"hat\",\n \"category\": \"clothing\",\n \"tags\": [\n \"clothing\"\n ],\n \"size\": [\n 0.25,\n 0.1,\n 0.22\n ],\n \"weight\": 0.15,\n \"stack\": 1,\n \"shape\": \"cloth\",\n \"color\": 9071162,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"scarf\",\n \"category\": \"clothing\",\n \"tags\": [\n \"clothing\"\n ],\n \"size\": [\n 0.2,\n 0.04,\n 0.2\n ],\n \"weight\": 0.2,\n \"stack\": 2,\n \"shape\": \"cloth\",\n \"color\": 12073530,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"blanket\",\n \"category\": \"clothing\",\n \"tags\": [\n \"clothing\"\n ],\n \"size\": [\n 0.45,\n 0.1,\n 0.22\n ],\n \"weight\": 1.2,\n \"stack\": 2,\n \"shape\": \"cloth\",\n \"color\": 9067082,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"pillow\",\n \"category\": \"clothing\",\n \"tags\": [\n \"clothing\"\n ],\n \"size\": [\n 0.45,\n 0.12,\n 0.23\n ],\n \"weight\": 0.5,\n \"stack\": 2,\n \"shape\": \"cloth\",\n \"color\": 15789800,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"documents\",\n \"category\": \"collectibles\",\n \"tags\": [\n \"office\"\n ],\n \"size\": [\n 0.22,\n 0.03,\n 0.3\n ],\n \"weight\": 0.2,\n \"stack\": 1,\n \"shape\": \"paper\",\n \"color\": 15262928,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"wallet\",\n \"category\": \"collectibles\",\n \"tags\": [\n \"office\"\n ],\n \"size\": [\n 0.11,\n 0.02,\n 0.09\n ],\n \"weight\": 0.1,\n \"stack\": 1,\n \"shape\": \"box\",\n \"color\": 4864554,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"phone_charger\",\n \"category\": \"electronics\",\n \"tags\": [\n \"office\"\n ],\n \"size\": [\n 0.06,\n 0.02,\n 0.06\n ],\n \"weight\": 0.08,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 15790320,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"notebook\",\n \"category\": \"collectibles\",\n \"tags\": [\n \"office\"\n ],\n \"size\": [\n 0.15,\n 0.02,\n 0.21\n ],\n \"weight\": 0.3,\n \"stack\": 1,\n \"shape\": \"paper\",\n \"color\": 3824266,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"pen\",\n \"category\": \"collectibles\",\n \"tags\": [\n \"office\"\n ],\n \"size\": [\n 0.015,\n 0.015,\n 0.14\n ],\n \"weight\": 0.01,\n \"stack\": 6,\n \"shape\": \"tool\",\n \"color\": 2771616,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"crumpled_paper\",\n \"category\": \"materials\",\n \"tags\": [\n \"trash\"\n ],\n \"size\": [\n 0.1,\n 0.1,\n 0.1\n ],\n \"weight\": 0.02,\n \"stack\": 6,\n \"shape\": \"paper\",\n \"color\": 15262940,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"empty_bottle\",\n \"category\": \"materials\",\n \"tags\": [\n \"trash\"\n ],\n \"size\": [\n 0.07,\n 0.25,\n 0.07\n ],\n \"weight\": 0.03,\n \"stack\": 4,\n \"shape\": \"bottle\",\n \"color\": 11063488,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"food_scraps\",\n \"category\": \"materials\",\n \"tags\": [\n \"trash\"\n ],\n \"size\": [\n 0.15,\n 0.06,\n 0.15\n ],\n \"weight\": 0.2,\n \"stack\": 2,\n \"shape\": \"bag\",\n \"color\": 8022586,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"plastic_bag\",\n \"category\": \"materials\",\n \"tags\": [\n \"trash\"\n ],\n \"size\": [\n 0.2,\n 0.2,\n 0.1\n ],\n \"weight\": 0.02,\n \"stack\": 4,\n \"shape\": \"bag\",\n \"color\": 15263976,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"bill\",\n \"category\": \"collectibles\",\n \"tags\": [\n \"mail\"\n ],\n \"size\": [\n 0.22,\n 0.005,\n 0.1\n ],\n \"weight\": 0.01,\n \"stack\": 1,\n \"shape\": \"paper\",\n \"color\": 15790312,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"letter\",\n \"category\": \"collectibles\",\n \"tags\": [\n \"mail\"\n ],\n \"size\": [\n 0.16,\n 0.005,\n 0.1\n ],\n \"weight\": 0.01,\n \"stack\": 1,\n \"shape\": \"paper\",\n \"color\": 16183516,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"flyer\",\n \"category\": \"collectibles\",\n \"tags\": [\n \"mail\"\n ],\n \"size\": [\n 0.21,\n 0.005,\n 0.14\n ],\n \"weight\": 0.01,\n \"stack\": 1,\n \"shape\": \"paper\",\n \"color\": 15253568,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"postcard\",\n \"category\": \"collectibles\",\n \"tags\": [\n \"mail\"\n ],\n \"size\": [\n 0.15,\n 0.003,\n 0.1\n ],\n \"weight\": 0.01,\n \"stack\": 1,\n \"shape\": \"paper\",\n \"color\": 8040664,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"tongs\",\n \"category\": \"outdoors\",\n \"tags\": [\n \"bbq\"\n ],\n \"size\": [\n 0.4,\n 0.03,\n 0.05\n ],\n \"weight\": 0.2,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 11843772,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"skewers\",\n \"category\": \"outdoors\",\n \"tags\": [\n \"bbq\"\n ],\n \"size\": [\n 0.3,\n 0.02,\n 0.1\n ],\n \"weight\": 0.3,\n \"stack\": 2,\n \"shape\": \"tool\",\n \"color\": 11843772,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"firelighter\",\n \"category\": \"outdoors\",\n \"tags\": [\n \"bbq\"\n ],\n \"size\": [\n 0.08,\n 0.04,\n 0.08\n ],\n \"weight\": 0.1,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 15261888,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"paint_can\",\n \"category\": \"tools\",\n \"tags\": [\n \"garage\"\n ],\n \"size\": [\n 0.18,\n 0.2,\n 0.18\n ],\n \"weight\": 3,\n \"stack\": 1,\n \"shape\": \"can\",\n \"color\": 15261904,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"ice_pack\",\n \"category\": \"tools\",\n \"tags\": [\n \"drink\"\n ],\n \"size\": [\n 0.16,\n 0.03,\n 0.12\n ],\n \"weight\": 0.4,\n \"stack\": 3,\n \"shape\": \"box\",\n \"color\": 9356776,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"sandwich\",\n \"category\": \"food\",\n \"tags\": [\n \"food\"\n ],\n \"size\": [\n 0.12,\n 0.05,\n 0.12\n ],\n \"weight\": 0.2,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 14268282,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"branch\",\n \"category\": \"materials\",\n \"tags\": [\n \"craft_only\"\n ],\n \"size\": [\n 0.6,\n 0.03,\n 0.03\n ],\n \"weight\": 0.5,\n \"stack\": 4,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"stick\",\n \"category\": \"materials\",\n \"tags\": [\n \"craft_only\"\n ],\n \"size\": [\n 0.4,\n 0.012,\n 0.012\n ],\n \"weight\": 0.02,\n \"stack\": 8,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"feather\",\n \"category\": \"materials\",\n \"tags\": [\n \"craft_only\"\n ],\n \"size\": [\n 0.15,\n 0.01,\n 0.03\n ],\n \"weight\": 0.001,\n \"stack\": 20,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"bread_mold\",\n \"category\": \"materials\",\n \"tags\": [\n \"craft_only\"\n ],\n \"size\": [\n 0.08,\n 0.02,\n 0.06\n ],\n \"weight\": 0.02,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"glass_jar\",\n \"category\": \"materials\",\n \"size\": [\n 0.08,\n 0.11,\n 0.08\n ],\n \"weight\": 0.3,\n \"stack\": 4,\n \"shape\": \"jar\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"supermarket\",\n \"farm\"\n ]\n }\n },\n {\n \"id\": \"broomstick\",\n \"category\": \"tools\",\n \"tags\": [\n \"craft_only\"\n ],\n \"size\": [\n 0.03,\n 1.2,\n 0.03\n ],\n \"weight\": 0.3,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\"\n },\n {\n \"id\": \"barrel\",\n \"category\": \"tools\",\n \"size\": [\n 0.4,\n 0.55,\n 0.4\n ],\n \"weight\": 3.5,\n \"stack\": 1,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"farm\",\n \"warehouse\",\n \"workshop\",\n \"docks\"\n ]\n }\n },\n {\n \"id\": \"access_badge\",\n \"category\": \"keys\",\n \"tags\": [\n \"access\"\n ],\n \"size\": [\n 0.054,\n 0.086,\n 0.002\n ],\n \"weight\": 0.01,\n \"stack\": 1,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\"\n },\n {\n \"id\": \"insulin\",\n \"category\": \"medical\",\n \"tags\": [\n \"perishable\",\n \"refrigerated\"\n ],\n \"size\": [\n 0.15,\n 0.04,\n 0.03\n ],\n \"weight\": 0.05,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"uncommon\",\n \"shelfLife\": 28,\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"pharmacy\",\n \"hospital\"\n ]\n }\n },\n {\n \"id\": \"leftover_meal\",\n \"category\": \"food\",\n \"tags\": [\n \"perishable\",\n \"kitchen\"\n ],\n \"size\": [\n 0.17,\n 0.06,\n 0.12\n ],\n \"weight\": 0.5,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"shelfLife\": 4,\n \"portions\": 1,\n \"nutrition\": {\n \"satiety\": 20,\n \"hydration\": 0\n },\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"disinfectant\",\n \"category\": \"materials\",\n \"tags\": [\n \"cleaning\"\n ],\n \"size\": [\n 0.09,\n 0.28,\n 0.06\n ],\n \"weight\": 1.05,\n \"stack\": 2,\n \"shape\": \"bottle\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"supermarket\",\n \"school\",\n \"hospital\"\n ]\n }\n },\n {\n \"id\": \"seasoning\",\n \"category\": \"food\",\n \"tags\": [\n \"kitchen\"\n ],\n \"size\": [\n 0.05,\n 0.1,\n 0.05\n ],\n \"weight\": 0.1,\n \"stack\": 6,\n \"shape\": \"jar\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"stapler\",\n \"category\": \"collectibles\",\n \"tags\": [\n \"office\"\n ],\n \"size\": [\n 0.16,\n 0.06,\n 0.04\n ],\n \"weight\": 0.25,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"school\",\n \"police_station\"\n ]\n }\n },\n {\n \"id\": \"remote_control\",\n \"category\": \"electronics\",\n \"size\": [\n 0.05,\n 0.2,\n 0.02\n ],\n \"weight\": 0.1,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"dvd\",\n \"category\": \"collectibles\",\n \"tags\": [\n \"media\"\n ],\n \"size\": [\n 0.135,\n 0.19,\n 0.014\n ],\n \"weight\": 0.09,\n \"stack\": 4,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"cable_bundle\",\n \"category\": \"electronics\",\n \"size\": [\n 0.12,\n 0.05,\n 0.12\n ],\n \"weight\": 0.15,\n \"stack\": 4,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"shoe_polish\",\n \"category\": \"materials\",\n \"tags\": [\n \"cleaning\"\n ],\n \"size\": [\n 0.06,\n 0.03,\n 0.06\n ],\n \"weight\": 0.08,\n \"stack\": 4,\n \"shape\": \"can\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"laundry_powder\",\n \"category\": \"materials\",\n \"tags\": [\n \"cleaning\"\n ],\n \"size\": [\n 0.16,\n 0.22,\n 0.06\n ],\n \"weight\": 1,\n \"stack\": 2,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"broom\",\n \"category\": \"tools\",\n \"tags\": [\n \"cleaning\"\n ],\n \"size\": [\n 0.3,\n 1.3,\n 0.06\n ],\n \"weight\": 0.6,\n \"stack\": 1,\n \"shape\": \"tool\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"school\"\n ]\n }\n },\n {\n \"id\": \"rubber_gloves\",\n \"category\": \"clothing\",\n \"tags\": [\n \"cleaning\"\n ],\n \"size\": [\n 0.14,\n 0.3,\n 0.02\n ],\n \"weight\": 0.12,\n \"stack\": 2,\n \"shape\": \"cloth\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"fabric_softener\",\n \"category\": \"materials\",\n \"tags\": [\n \"cleaning\"\n ],\n \"size\": [\n 0.1,\n 0.22,\n 0.07\n ],\n \"weight\": 1.05,\n \"stack\": 2,\n \"shape\": \"bottle\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"supermarket\"\n ]\n }\n },\n {\n \"id\": \"clothespins\",\n \"category\": \"tools\",\n \"size\": [\n 0.12,\n 0.1,\n 0.04\n ],\n \"weight\": 0.15,\n \"stack\": 4,\n \"shape\": \"box\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"electrical_tape\",\n \"category\": \"tools\",\n \"size\": [\n 0.07,\n 0.02,\n 0.07\n ],\n \"weight\": 0.05,\n \"stack\": 4,\n \"shape\": \"roll\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"workshop\",\n \"warehouse\"\n ]\n }\n },\n {\n \"id\": \"full_trash_bag\",\n \"category\": \"materials\",\n \"tags\": [\n \"trash\"\n ],\n \"size\": [\n 0.35,\n 0.5,\n 0.25\n ],\n \"weight\": 2,\n \"stack\": 1,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"food_packaging\",\n \"category\": \"materials\",\n \"tags\": [\n \"trash\"\n ],\n \"size\": [\n 0.2,\n 0.2,\n 0.1\n ],\n \"weight\": 0.05,\n \"stack\": 4,\n \"shape\": \"bag\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"wine_glass\",\n \"category\": \"tools\",\n \"tags\": [\n \"kitchen\"\n ],\n \"size\": [\n 0.07,\n 0.2,\n 0.07\n ],\n \"weight\": 0.15,\n \"stack\": 4,\n \"shape\": \"cup\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n },\n {\n \"id\": \"book\",\n \"category\": \"books\",\n \"size\": [\n 0.15,\n 0.22,\n 0.03\n ],\n \"weight\": 0.4,\n \"stack\": 2,\n \"shape\": \"paper\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\",\n \"school\",\n \"church\"\n ]\n }\n },\n {\n \"id\": \"eyeglasses\",\n \"category\": \"clothing\",\n \"size\": [\n 0.14,\n 0.04,\n 0.05\n ],\n \"weight\": 0.03,\n \"stack\": 2,\n \"shape\": \"shoe\",\n \"color\": 8421504,\n \"rarity\": \"common\",\n \"finds\": {\n \"places\": [\n \"house\",\n \"apartment\"\n ]\n }\n }\n]\n","[\n {\n \"id\": \"knife\",\n \"reach\": 0.6,\n \"noise\": 1\n },\n {\n \"id\": \"tactical_knife\",\n \"reach\": 0.6,\n \"noise\": 1\n },\n {\n \"id\": \"machete\",\n \"reach\": 0.9,\n \"noise\": 2\n },\n {\n \"id\": \"meat_cleaver\",\n \"reach\": 0.6,\n \"noise\": 2\n },\n {\n \"id\": \"hatchet\",\n \"reach\": 0.7,\n \"noise\": 2\n },\n {\n \"id\": \"axe\",\n \"reach\": 1,\n \"noise\": 3\n },\n {\n \"id\": \"baseball_bat\",\n \"reach\": 1,\n \"noise\": 3\n },\n {\n \"id\": \"nail_bat\",\n \"reach\": 1,\n \"noise\": 3\n },\n {\n \"id\": \"iron_pipe\",\n \"reach\": 1,\n \"noise\": 4\n },\n {\n \"id\": \"sledgehammer\",\n \"reach\": 1.1,\n \"noise\": 6\n },\n {\n \"id\": \"pickaxe\",\n \"reach\": 1,\n \"noise\": 4\n },\n {\n \"id\": \"sickle\",\n \"reach\": 1.1,\n \"noise\": 2\n },\n {\n \"id\": \"police_baton\",\n \"reach\": 0.7,\n \"noise\": 3\n },\n {\n \"id\": \"cast_iron_skillet\",\n \"reach\": 0.6,\n \"noise\": 8\n },\n {\n \"id\": \"improvised_spear\",\n \"reach\": 1.6,\n \"noise\": 1\n },\n {\n \"id\": \"chainsaw\",\n \"reach\": 0.9,\n \"noise\": 120\n },\n {\n \"id\": \"slingshot\",\n \"reach\": 25,\n \"noise\": 1\n },\n {\n \"id\": \"recurve_bow\",\n \"reach\": 40,\n \"noise\": 1\n },\n {\n \"id\": \"crossbow\",\n \"reach\": 60,\n \"noise\": 1\n },\n {\n \"id\": \"arrows_and_bolts\",\n \"reach\": 0,\n \"noise\": 0\n }\n]\n","[\n {\n \"id\": \"house\",\n \"name\": \"House\"\n },\n {\n \"id\": \"apartment\",\n \"name\": \"Apartment building\"\n },\n {\n \"id\": \"supermarket\",\n \"name\": \"Supermarket\"\n },\n {\n \"id\": \"pharmacy\",\n \"name\": \"Pharmacy\"\n },\n {\n \"id\": \"gun_shop\",\n \"name\": \"Gun and hunting shop\"\n },\n {\n \"id\": \"mall\",\n \"name\": \"Mall\"\n },\n {\n \"id\": \"police_station\",\n \"name\": \"Police station\"\n },\n {\n \"id\": \"hospital\",\n \"name\": \"Hospital\"\n },\n {\n \"id\": \"school\",\n \"name\": \"School\"\n },\n {\n \"id\": \"gas_station\",\n \"name\": \"Gas station\"\n },\n {\n \"id\": \"church\",\n \"name\": \"Church\"\n },\n {\n \"id\": \"warehouse\",\n \"name\": \"Warehouse and metalworks\"\n },\n {\n \"id\": \"farm\",\n \"name\": \"Farm\"\n },\n {\n \"id\": \"military_base\",\n \"name\": \"Military base and roadblock\"\n },\n {\n \"id\": \"workshop\",\n \"name\": \"Car workshop\"\n },\n {\n \"id\": \"car\",\n \"name\": \"Abandoned car\"\n },\n {\n \"id\": \"road\",\n \"name\": \"Road and camp\"\n },\n {\n \"id\": \"train\",\n \"name\": \"Derailed train\"\n },\n {\n \"id\": \"prison\",\n \"name\": \"Prison\"\n },\n {\n \"id\": \"mine\",\n \"name\": \"Mine and quarry\"\n },\n {\n \"id\": \"docks\",\n \"name\": \"Docks and fish market\"\n },\n {\n \"id\": \"lodge\",\n \"name\": \"Inn and chalet\"\n },\n {\n \"id\": \"dam\",\n \"name\": \"Hydroelectric dam\"\n },\n {\n \"id\": \"zombie_corpse\",\n \"name\": \"Zombie corpse\"\n }\n]\n","{\n \"canned_beans\": {\n \"ite\": \"feijao_lata\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\",\n \"game\": [\n \"feijao_lata\"\n ]\n },\n \"canned_sardines\": {\n \"ite\": \"sardinha\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"sardinha\"\n ]\n },\n \"canned_corn_and_peas\": {\n \"ite\": \"milho_lata\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"lata_milho\"\n ],\n \"game\": [\n \"milho_lata\"\n ]\n },\n \"canned_sausages\": {\n \"ite\": \"salsicha_lata\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"derived\",\n \"game\": [\n \"salsicha_lata\"\n ]\n },\n \"condensed_milk\": {\n \"ite\": \"leite_condensado\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"leite_condensado\"\n ]\n },\n \"military_ration\": {\n \"ite\": \"racao_militar\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\",\n \"game\": [\n \"racao_militar\"\n ]\n },\n \"rice\": {\n \"ite\": \"arroz\",\n \"household\": \"rice\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"model\",\n \"vc3\": [\n \"arroz\"\n ],\n \"game\": [\n \"arroz\"\n ]\n },\n \"beans\": {\n \"ite\": \"feijao_seco\",\n \"household\": \"beans\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"feijao\"\n ],\n \"game\": [\n \"feijao_seco\"\n ]\n },\n \"pasta\": {\n \"ite\": \"macarrao\",\n \"household\": \"pasta\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"macarrao\"\n ],\n \"game\": [\n \"macarrao\"\n ]\n },\n \"instant_noodles\": {\n \"ite\": \"macarrao_inst\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"macarrao_inst\"\n ]\n },\n \"cassava_flour\": {\n \"ite\": \"farinha_mandioca\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"farinha_mandioca\"\n ]\n },\n \"biscuits\": {\n \"ite\": \"biscoito\",\n \"household\": \"biscuits\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"biscoito\"\n ],\n \"game\": [\n \"biscoito\"\n ]\n },\n \"snack_chips\": {\n \"ite\": \"salgadinho\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"salgadinho\"\n ]\n },\n \"chocolate_bar\": {\n \"ite\": \"chocolate\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"chocolate\"\n ]\n },\n \"rapadura\": {\n \"ite\": \"rapadura\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"rapadura\"\n ]\n },\n \"honey_jar\": {\n \"ite\": \"mel\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"bread\": {\n \"ite\": \"pao_forma\",\n \"household\": \"bread\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"game\": [\n \"pao_forma\"\n ]\n },\n \"cheese\": {\n \"ite\": \"queijo\",\n \"household\": \"cheese\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"queijo\"\n ],\n \"game\": [\n \"queijo\"\n ]\n },\n \"mortadella\": {\n \"ite\": \"mortadela\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"mortadela\"\n ]\n },\n \"raw_beef\": {\n \"ite\": \"carne_bovina\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"carne\"\n ],\n \"game\": [\n \"carne_bovina\"\n ]\n },\n \"frozen_chicken\": {\n \"ite\": \"frango\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"frango\"\n ]\n },\n \"eggs\": {\n \"ite\": \"ovos\",\n \"household\": \"eggs\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"ovos\"\n ],\n \"game\": [\n \"ovos\"\n ]\n },\n \"banana_bunch\": {\n \"ite\": \"banana\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"banana\"\n ]\n },\n \"orange\": {\n \"ite\": \"laranja\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"laranja\"\n ]\n },\n \"potatoes\": {\n \"ite\": \"batata\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"batata\"\n ]\n },\n \"cassava_root\": {\n \"ite\": \"mandioca\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"fresh_fish\": {\n \"ite\": \"peixe_fresco\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"salted_fish\": {\n \"ite\": \"peixe_salgado\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"jerked_beef\": {\n \"ite\": \"charque\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"charque\"\n ]\n },\n \"game_meat\": {\n \"ite\": \"carne_caca\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"home_preserves\": {\n \"ite\": \"conserva\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"conserva\"\n ]\n },\n \"dog_food\": {\n \"ite\": \"racao_cao\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"racao_cao\"\n ]\n },\n \"sugar\": {\n \"ite\": \"acucar\",\n \"household\": \"sugar\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"acucar\"\n ],\n \"game\": [\n \"acucar\"\n ]\n },\n \"salt\": {\n \"ite\": \"sal\",\n \"household\": \"salt\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"game\": [\n \"sal\"\n ]\n },\n \"cooking_oil\": {\n \"ite\": \"oleo_cozinha\",\n \"household\": \"cooking_oil\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"oleo\"\n ],\n \"game\": [\n \"oleo_cozinha\"\n ]\n },\n \"coffee\": {\n \"ite\": \"cafe_po\",\n \"household\": \"coffee\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"cafe\"\n ],\n \"game\": [\n \"cafe_po\"\n ]\n },\n \"water_bottle\": {\n \"ite\": \"agua_500\",\n \"household\": \"water_bottle\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"model\",\n \"vc3\": [\n \"agua_garrafa\"\n ],\n \"game\": [\n \"agua_500\"\n ]\n },\n \"water_jug_5l\": {\n \"ite\": \"galao_agua\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"agua_galao\"\n ],\n \"game\": [\n \"galao_agua\"\n ]\n },\n \"dirty_water\": {\n \"ite\": \"agua_suja\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"derived\"\n },\n \"soda_can\": {\n \"ite\": \"refri_lata\",\n \"household\": \"soda_can\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"refrigerante\"\n ],\n \"game\": [\n \"refri_lata\"\n ]\n },\n \"juice_box\": {\n \"ite\": \"suco_cx\",\n \"household\": \"juice_box\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"suco_cx\"\n ]\n },\n \"milk_carton\": {\n \"ite\": \"leite\",\n \"household\": \"milk_carton\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"leite\"\n ],\n \"game\": [\n \"leite\"\n ]\n },\n \"sports_drink\": {\n \"ite\": \"isotonico\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"derived\",\n \"game\": [\n \"isotonico\"\n ]\n },\n \"energy_drink\": {\n \"ite\": \"energetico\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"energetico\"\n ]\n },\n \"coconut_water\": {\n \"ite\": \"agua_coco\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"beer_can\": {\n \"ite\": \"cerveja\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"derived\",\n \"game\": [\n \"cerveja\"\n ]\n },\n \"cachaca\": {\n \"ite\": \"cachaca\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\",\n \"game\": [\n \"cachaca\"\n ]\n },\n \"communion_wine\": {\n \"ite\": \"vinho\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"bandage\": {\n \"ite\": \"atadura\",\n \"household\": \"bandage\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"model\",\n \"game\": [\n \"atadura\"\n ]\n },\n \"sterile_gauze\": {\n \"ite\": \"gaze\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"gaze\"\n ]\n },\n \"adhesive_bandages\": {\n \"ite\": \"curativo\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"curativo\"\n ],\n \"game\": [\n \"curativo\"\n ]\n },\n \"medical_tape\": {\n \"ite\": \"esparadrapo\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"esparadrapo\"\n ]\n },\n \"alcohol_70\": {\n \"ite\": \"alcool70\",\n \"household\": \"alcohol_70\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"alcool\"\n ],\n \"game\": [\n \"alcool70\"\n ]\n },\n \"povidone_iodine\": {\n \"ite\": \"pvpi\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"pvpi\"\n ]\n },\n \"saline_iv_bag\": {\n \"ite\": \"soro\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"painkillers\": {\n \"ite\": \"analgesico\",\n \"household\": \"painkillers\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"paracetamol\"\n ],\n \"game\": [\n \"analgesico\"\n ]\n },\n \"ibuprofen\": {\n \"ite\": \"ibuprofeno\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"ibuprofeno\"\n ]\n },\n \"tramadol\": {\n \"ite\": \"opioide\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"derived\",\n \"game\": [\n \"opioide\"\n ]\n },\n \"clonazepam\": {\n \"ite\": \"calmante\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"derived\",\n \"game\": [\n \"calmante\"\n ]\n },\n \"amoxicillin\": {\n \"ite\": \"amoxicilina\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\",\n \"game\": [\n \"amoxicilina\"\n ]\n },\n \"ceftriaxone\": {\n \"ite\": \"ceftriaxona\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"syringe\": {\n \"ite\": \"seringa\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"seringa\"\n ]\n },\n \"suture_kit\": {\n \"ite\": \"kit_sutura\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"splint\": {\n \"ite\": \"tala\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"first_aid_kit\": {\n \"ite\": \"kit_ps\",\n \"household\": \"first_aid_kit\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"model\",\n \"game\": [\n \"kit_ps\"\n ]\n },\n \"exam_gloves\": {\n \"ite\": \"luva_proc\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"luva_proc\"\n ]\n },\n \"n95_mask\": {\n \"ite\": \"n95\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"n95\"\n ]\n },\n \"activated_charcoal\": {\n \"ite\": \"carvao_ativado\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"carvao_ativado\"\n ]\n },\n \"rehydration_salts\": {\n \"ite\": \"sais_reidrat\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"sais_reidrat\"\n ]\n },\n \"antihistamine\": {\n \"ite\": \"antialergico\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"antialergico\"\n ]\n },\n \"antivenom\": {\n \"ite\": \"antiofidico\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"thermometer\": {\n \"ite\": \"termometro\",\n \"household\": \"thermometer\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"game\": [\n \"termometro\"\n ]\n },\n \"maintenance_medication\": {\n \"ite\": \"remedio_continuo\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"remedio\"\n ],\n \"game\": [\n \"remedio_continuo\"\n ]\n },\n \"multivitamin\": {\n \"ite\": \"vitamina\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"vitamina\"\n ]\n },\n \"hammer\": {\n \"ite\": \"martelo\",\n \"household\": \"hammer\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"model\",\n \"vc3\": [\n \"martelo\"\n ],\n \"game\": [\n \"martelo\"\n ]\n },\n \"screwdriver\": {\n \"ite\": \"chave_fenda\",\n \"household\": \"screwdriver\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"chave_fenda\"\n ],\n \"game\": [\n \"chave_fenda\"\n ]\n },\n \"crowbar\": {\n \"ite\": \"pe_cabra\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\",\n \"game\": [\n \"pe_cabra\"\n ]\n },\n \"handsaw\": {\n \"ite\": \"serrote\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"serrote\"\n ],\n \"game\": [\n \"serrote\"\n ]\n },\n \"hacksaw\": {\n \"ite\": \"serra_arco\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"bolt_cutters\": {\n \"ite\": \"corta_vergalhao\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"pliers\": {\n \"ite\": \"alicate\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"alicate\"\n ],\n \"game\": [\n \"alicate\"\n ]\n },\n \"adjustable_wrench\": {\n \"ite\": \"chave_inglesa\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"mechanic_toolbox\": {\n \"ite\": \"kit_mecanico\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"car_jack\": {\n \"ite\": \"macaco\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"gas_torch\": {\n \"ite\": \"macarico\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"inverter_welder\": {\n \"ite\": \"solda\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"cordless_drill\": {\n \"ite\": \"parafusadeira\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"parafusadeira\"\n ]\n },\n \"shovel\": {\n \"ite\": \"pa\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"pa\"\n ]\n },\n \"hoe\": {\n \"ite\": \"enxada\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"pocket_knife\": {\n \"ite\": \"canivete\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"canivete\"\n ]\n },\n \"can_opener\": {\n \"ite\": \"abridor\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"abridor\"\n ]\n },\n \"scissors\": {\n \"ite\": \"tesoura\",\n \"household\": \"scissors\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"tesoura\"\n ],\n \"game\": [\n \"tesoura\"\n ]\n },\n \"duct_tape\": {\n \"ite\": \"silver_tape\",\n \"household\": \"duct_tape\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"game\": [\n \"silver_tape\"\n ]\n },\n \"pot\": {\n \"ite\": \"panela\",\n \"household\": \"pot\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"panela\"\n ],\n \"game\": [\n \"panela\"\n ]\n },\n \"camp_stove\": {\n \"ite\": \"fogareiro\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"sewing_kit\": {\n \"ite\": \"kit_costura\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"kit_costura\"\n ]\n },\n \"lockpick_kit\": {\n \"ite\": \"kit_chaveiro\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"lighter\": {\n \"ite\": \"isqueiro\",\n \"household\": \"lighter\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"game\": [\n \"isqueiro\"\n ]\n },\n \"matches\": {\n \"ite\": \"fosforo\",\n \"household\": \"matches\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"game\": [\n \"fosforo\"\n ]\n },\n \"flint_striker\": {\n \"ite\": \"pederneira\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"bucket\": {\n \"ite\": \"balde\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"balde\"\n ],\n \"game\": [\n \"balde\"\n ]\n },\n \"binoculars\": {\n \"ite\": \"binoculo\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"fire_extinguisher\": {\n \"ite\": \"extintor\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"sharpening_stone\": {\n \"ite\": \"amolador\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"amolador\"\n ]\n },\n \"knife\": {\n \"ite\": \"faca_cozinha\",\n \"household\": \"knife\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"faca\"\n ],\n \"game\": [\n \"faca_cozinha\"\n ]\n },\n \"tactical_knife\": {\n \"ite\": \"faca_tatica\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"machete\": {\n \"ite\": \"facao\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\",\n \"game\": [\n \"facao\"\n ]\n },\n \"meat_cleaver\": {\n \"ite\": \"cutelo\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"cutelo\"\n ]\n },\n \"hatchet\": {\n \"ite\": \"machadinha\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"axe\": {\n \"ite\": \"machado\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\"\n },\n \"baseball_bat\": {\n \"ite\": \"taco\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"taco\"\n ]\n },\n \"nail_bat\": {\n \"ite\": \"taco_pregos\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\"\n },\n \"iron_pipe\": {\n \"ite\": \"cano\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"sledgehammer\": {\n \"ite\": \"marreta\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"pickaxe\": {\n \"ite\": \"picareta\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"sickle\": {\n \"ite\": \"foice\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"police_baton\": {\n \"ite\": \"tonfa\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"cast_iron_skillet\": {\n \"ite\": \"frigideira\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"frigideira\"\n ]\n },\n \"improvised_spear\": {\n \"ite\": \"lanca\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"chainsaw\": {\n \"ite\": \"motosserra\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"slingshot\": {\n \"ite\": \"estilingue\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"estilingue\"\n ]\n },\n \"recurve_bow\": {\n \"ite\": \"arco\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"crossbow\": {\n \"ite\": \"besta\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"arrows_and_bolts\": {\n \"ite\": \"flecha\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"wooden_plank\": {\n \"ite\": \"tabua\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\",\n \"game\": [\n \"tabua\"\n ]\n },\n \"nails\": {\n \"ite\": \"pregos\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"pregos\"\n ],\n \"game\": [\n \"pregos\"\n ]\n },\n \"screws\": {\n \"ite\": \"parafusos\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"parafusos\"\n ]\n },\n \"sheet_metal\": {\n \"ite\": \"chapa\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"scrap_metal\": {\n \"ite\": \"sucata\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"wire_roll\": {\n \"ite\": \"arame\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"arame\"\n ]\n },\n \"barbed_wire\": {\n \"ite\": \"arame_farpado\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"rope\": {\n \"ite\": \"corda\",\n \"household\": \"rope\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"corda\"\n ]\n },\n \"tarp\": {\n \"ite\": \"lona\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"raffia_sack\": {\n \"ite\": \"saco_areia\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"bricks\": {\n \"ite\": \"tijolo\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"tijolo\"\n ]\n },\n \"cement_bag\": {\n \"ite\": \"cimento\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"rag\": {\n \"ite\": \"trapo\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"trapo\"\n ]\n },\n \"glass_bottle\": {\n \"ite\": \"garrafa_vidro\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"garrafa_vidro\"\n ]\n },\n \"pet_bottle\": {\n \"ite\": \"garrafa_pet\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"garrafa_pet\"\n ]\n },\n \"empty_can\": {\n \"ite\": \"lata_vazia\",\n \"household\": \"empty_can\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"lata_vazia\"\n ],\n \"game\": [\n \"lata_vazia\"\n ]\n },\n \"glass_shards\": {\n \"ite\": \"cacos\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"cacos\"\n ]\n },\n \"epoxy_glue\": {\n \"ite\": \"cola\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"cola\"\n ]\n },\n \"electronic_components\": {\n \"ite\": \"componentes\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"copper_wire\": {\n \"ite\": \"fio_cobre\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"fio_cobre\"\n ]\n },\n \"firewood\": {\n \"ite\": \"lenha\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"rebar\": {\n \"ite\": \"vergalhao\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"lubricant_spray\": {\n \"ite\": \"lubrificante\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"lubrificante\"\n ]\n },\n \"tshirt\": {\n \"ite\": \"camiseta\",\n \"household\": \"tshirt\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"camisa\",\n \"camiseta\"\n ],\n \"game\": [\n \"camiseta\"\n ]\n },\n \"hoodie\": {\n \"ite\": \"moletom\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"moletom\"\n ]\n },\n \"denim_jacket\": {\n \"ite\": \"jaqueta_jeans\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"jaqueta_jeans\"\n ]\n },\n \"leather_motorcycle_jacket\": {\n \"ite\": \"jaqueta_couro\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"jaqueta_couro\"\n ]\n },\n \"jeans\": {\n \"ite\": \"calca_jeans\",\n \"household\": \"jeans\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"calca\"\n ],\n \"game\": [\n \"calca_jeans\"\n ]\n },\n \"leather_motorcycle_pants\": {\n \"ite\": \"calca_couro\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"calca_couro\"\n ]\n },\n \"army_camouflage_uniform\": {\n \"ite\": \"farda_eb\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"farda_eb\"\n ]\n },\n \"mechanic_coveralls\": {\n \"ite\": \"macacao\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"firefighter_suit\": {\n \"ite\": \"bombeiro\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"bombeiro\"\n ]\n },\n \"beekeeper_suit\": {\n \"ite\": \"apicultor\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"raincoat\": {\n \"ite\": \"capa_chuva\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"capa_chuva\"\n ]\n },\n \"padded_coat\": {\n \"ite\": \"casaco_frio\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"motorcycle_helmet\": {\n \"ite\": \"capacete_moto\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\",\n \"game\": [\n \"capacete_moto\"\n ]\n },\n \"hard_hat\": {\n \"ite\": \"capacete_obra\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"safety_goggles\": {\n \"ite\": \"oculos\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"leather_work_gloves\": {\n \"ite\": \"luva_couro\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"combat_boots\": {\n \"ite\": \"coturno\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"coturno\"\n ]\n },\n \"rubber_boots\": {\n \"ite\": \"bota_borracha\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"sneakers\": {\n \"ite\": \"tenis\",\n \"household\": \"sneakers\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"tenis\",\n \"sapato\"\n ],\n \"game\": [\n \"tenis\"\n ]\n },\n \"flip_flops\": {\n \"ite\": \"chinelo\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"chinelo\"\n ],\n \"game\": [\n \"chinelo\"\n ]\n },\n \"magazine_arm_guard\": {\n \"ite\": \"braco_revista\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"sheet_metal_forearm_guard\": {\n \"ite\": \"braco_chapa\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"ballistic_vest\": {\n \"ite\": \"colete\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"colete\"\n ]\n },\n \"shopping_bag\": {\n \"ite\": \"sacola\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"sacola\"\n ]\n },\n \"trash_bag\": {\n \"ite\": \"saco_lixo\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"saco_lixo\"\n ],\n \"game\": [\n \"saco_lixo\"\n ]\n },\n \"fanny_pack\": {\n \"ite\": \"pochete\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"pochete\"\n ]\n },\n \"crossbody_bag\": {\n \"ite\": \"bolsa\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"bolsa\"\n ]\n },\n \"backpack\": {\n \"ite\": \"mochila_escolar\",\n \"household\": \"backpack\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"mochila\"\n ],\n \"game\": [\n \"mochila_escolar\"\n ]\n },\n \"delivery_bag\": {\n \"ite\": \"bag_entregador\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"bag_entregador\"\n ]\n },\n \"hiking_backpack_40l\": {\n \"ite\": \"mochila_trilha\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\"\n },\n \"military_backpack\": {\n \"ite\": \"mochila_militar\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"mochila_militar\"\n ]\n },\n \"trekking_backpack_70l\": {\n \"ite\": \"cargueira\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"rolling_suitcase\": {\n \"ite\": \"mala\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"mala\"\n ]\n },\n \"tactical_vest\": {\n \"ite\": \"colete_tatico\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"tool_belt\": {\n \"ite\": \"cinto_ferramentas\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"cooler_box\": {\n \"ite\": \"caixa_termica\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"caixa_termica\"\n ]\n },\n \"shopping_cart\": {\n \"ite\": \"carrinho_merc\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"carrinho_merc\"\n ]\n },\n \"wheelbarrow\": {\n \"ite\": \"carrinho_mao\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"flashlight\": {\n \"ite\": \"lanterna\",\n \"household\": \"flashlight\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"model\",\n \"vc3\": [\n \"lanterna\"\n ],\n \"game\": [\n \"lanterna\"\n ]\n },\n \"headlamp\": {\n \"ite\": \"lanterna_cabeca\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"batteries\": {\n \"ite\": \"pilha_aa\",\n \"household\": \"batteries\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"model\",\n \"vc3\": [\n \"pilhas\"\n ],\n \"game\": [\n \"pilha_aa\"\n ]\n },\n \"battery_9v\": {\n \"ite\": \"bateria_9v\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"bateria_9v\"\n ]\n },\n \"power_bank\": {\n \"ite\": \"power_bank\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"power_bank\"\n ]\n },\n \"folding_solar_panel\": {\n \"ite\": \"painel_solar\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"portable_radio\": {\n \"ite\": \"radio_portatil\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\",\n \"game\": [\n \"radio_portatil\"\n ]\n },\n \"walkie_talkies\": {\n \"ite\": \"walkie\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\"\n },\n \"cb_radio\": {\n \"ite\": \"radio_px\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"radio_px\"\n ]\n },\n \"military_radio\": {\n \"ite\": \"radio_militar\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"portable_generator\": {\n \"ite\": \"gerador\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"led_camp_lantern\": {\n \"ite\": \"lampiao_led\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"mobile_phone\": {\n \"ite\": \"celular\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"celular\"\n ]\n },\n \"laptop\": {\n \"ite\": \"notebook\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"windup_alarm_clock\": {\n \"ite\": \"despertador\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"despertador\"\n ]\n },\n \"car_alarm_remote\": {\n \"ite\": \"controle_alarme\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"controle_alarme\"\n ]\n },\n \"electric_fence_energizer\": {\n \"ite\": \"eletrificador\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"extension_cord\": {\n \"ite\": \"extensao\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"extensao\"\n ]\n },\n \"candles\": {\n \"ite\": \"vela\",\n \"household\": \"candles\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"game\": [\n \"vela\"\n ]\n },\n \"night_vision_goggles\": {\n \"ite\": \"nvg\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"fuel_jerrycan\": {\n \"ite\": \"galao\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\"\n },\n \"gasoline\": {\n \"ite\": \"gasolina\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"diesel\": {\n \"ite\": \"diesel\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"derived\"\n },\n \"lpg_cylinder_13kg\": {\n \"ite\": \"botijao\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\",\n \"game\": [\n \"botijao\"\n ]\n },\n \"gas_cartridge\": {\n \"ite\": \"cartucho_gas\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"kerosene\": {\n \"ite\": \"querosene\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"derived\"\n },\n \"charcoal_bag\": {\n \"ite\": \"carvao\",\n \"household\": \"charcoal_bag\",\n \"idSource\": \"merge\",\n \"sizeSource\": \"household\",\n \"game\": [\n \"carvao\"\n ]\n },\n \"car_battery_12v\": {\n \"ite\": \"bateria_12v\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"motor_oil\": {\n \"ite\": \"oleo_motor\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"bean_seeds\": {\n \"ite\": \"sem_feijao\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"corn_seeds\": {\n \"ite\": \"sem_milho\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"derived\"\n },\n \"pumpkin_seeds\": {\n \"ite\": \"sem_abobora\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"kale_and_lettuce_seeds\": {\n \"ite\": \"sem_couve\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"derived\"\n },\n \"cassava_cuttings\": {\n \"ite\": \"maniva\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"fertilizer_bag\": {\n \"ite\": \"adubo\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"watering_can\": {\n \"ite\": \"regador\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"fishing_rod\": {\n \"ite\": \"vara_pesca\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"fishing_tackle_box\": {\n \"ite\": \"kit_pesca\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"fishing_net\": {\n \"ite\": \"rede_pesca\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"snare_trap\": {\n \"ite\": \"armadilha_laco\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"skill_book\": {\n \"ite\": \"livro_hab\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"livro_hab\"\n ]\n },\n \"technical_manual\": {\n \"ite\": \"livro_tecnico\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"diy_magazine\": {\n \"ite\": \"revista_receita\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"derived\",\n \"game\": [\n \"revista_receita\"\n ]\n },\n \"magazines_and_comics\": {\n \"ite\": \"revista_passa\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"revista_passa\"\n ]\n },\n \"farmers_almanac\": {\n \"ite\": \"almanaque\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"almanaque\"\n ]\n },\n \"note\": {\n \"ite\": \"bilhete\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"bilhete\"\n ]\n },\n \"photo\": {\n \"ite\": \"foto\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"foto\"\n ]\n },\n \"city_map\": {\n \"ite\": \"mapa_cidade\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"road_map\": {\n \"ite\": \"mapa_rodoviario\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"derived\"\n },\n \"dog_tag\": {\n \"ite\": \"plaqueta\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"plaqueta\"\n ]\n },\n \"cash\": {\n \"ite\": \"dinheiro\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"dinheiro\"\n ]\n },\n \"cigarettes\": {\n \"ite\": \"cigarro\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"cigarro\"\n ]\n },\n \"house_key\": {\n \"ite\": \"chave_casa\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"model\",\n \"vc3\": [\n \"chaves\"\n ],\n \"game\": [\n \"chave_casa\"\n ]\n },\n \"car_key\": {\n \"ite\": \"chave_carro\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"chave_carro\"\n ]\n },\n \"master_key\": {\n \"ite\": \"chave_mestra\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"janitor_keys\": {\n \"ite\": \"molho_zelador\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"generator_key\": {\n \"ite\": \"chave_gerador\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"safe_key\": {\n \"ite\": \"chave_cofre\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"padlock_key\": {\n \"ite\": \"cadeado_chave\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"cadeado_chave\"\n ]\n },\n \"cell_key\": {\n \"ite\": \"chave_cela\",\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"game\": [\n \"chave_cela\"\n ]\n },\n \"canned_food\": {\n \"household\": \"canned_food\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"lata_atum\"\n ]\n },\n \"flour\": {\n \"household\": \"flour\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"farinha\"\n ]\n },\n \"cereal_box\": {\n \"household\": \"cereal_box\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"butter\": {\n \"household\": \"butter\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"ketchup\": {\n \"household\": \"ketchup\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"ham\": {\n \"household\": \"ham\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"yogurt\": {\n \"household\": \"yogurt\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"iogurte\"\n ]\n },\n \"apple\": {\n \"household\": \"apple\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"fruta\"\n ]\n },\n \"tomato\": {\n \"household\": \"tomato\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"frozen_meat\": {\n \"household\": \"frozen_meat\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"ice_cream\": {\n \"household\": \"ice_cream\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"sorvete\"\n ]\n },\n \"frozen_pizza\": {\n \"household\": \"frozen_pizza\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"frozen_vegetables\": {\n \"household\": \"frozen_vegetables\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"plate\": {\n \"household\": \"plate\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"prato\"\n ]\n },\n \"bowl\": {\n \"household\": \"bowl\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"cup\": {\n \"household\": \"cup\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"copo\",\n \"caneca\"\n ]\n },\n \"cutlery\": {\n \"household\": \"cutlery\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"pan\": {\n \"household\": \"pan\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"soap\": {\n \"household\": \"soap\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"sabonete\"\n ]\n },\n \"shampoo\": {\n \"household\": \"shampoo\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"shampoo\"\n ]\n },\n \"toothpaste\": {\n \"household\": \"toothpaste\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"toothbrush\": {\n \"household\": \"toothbrush\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"escova_dente\"\n ]\n },\n \"deodorant\": {\n \"household\": \"deodorant\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"toilet_paper\": {\n \"household\": \"toilet_paper\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"papel_higienico\"\n ]\n },\n \"towel\": {\n \"household\": \"towel\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"detergent\": {\n \"household\": \"detergent\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"detergente\"\n ]\n },\n \"bleach\": {\n \"household\": \"bleach\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"agua_sanitaria\"\n ]\n },\n \"sponge\": {\n \"household\": \"sponge\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"esponja\"\n ]\n },\n \"jacket\": {\n \"household\": \"jacket\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"casaco\"\n ]\n },\n \"socks\": {\n \"household\": \"socks\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"meias\"\n ]\n },\n \"underwear\": {\n \"household\": \"underwear\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"roupa_intima\"\n ]\n },\n \"hat\": {\n \"household\": \"hat\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"scarf\": {\n \"household\": \"scarf\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"blanket\": {\n \"household\": \"blanket\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"cobertor\"\n ]\n },\n \"pillow\": {\n \"household\": \"pillow\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"documents\": {\n \"household\": \"documents\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"documento\"\n ]\n },\n \"wallet\": {\n \"household\": \"wallet\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"phone_charger\": {\n \"household\": \"phone_charger\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"carregador\"\n ]\n },\n \"notebook\": {\n \"household\": \"notebook\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"pen\": {\n \"household\": \"pen\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"caneta\"\n ]\n },\n \"crumpled_paper\": {\n \"household\": \"crumpled_paper\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"papel_amassado\"\n ]\n },\n \"empty_bottle\": {\n \"household\": \"empty_bottle\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"food_scraps\": {\n \"household\": \"food_scraps\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"plastic_bag\": {\n \"household\": \"plastic_bag\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"bill\": {\n \"household\": \"bill\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"conta\"\n ]\n },\n \"letter\": {\n \"household\": \"letter\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"carta\"\n ]\n },\n \"flyer\": {\n \"household\": \"flyer\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"panfleto\"\n ]\n },\n \"postcard\": {\n \"household\": \"postcard\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"tongs\": {\n \"household\": \"tongs\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"skewers\": {\n \"household\": \"skewers\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"firelighter\": {\n \"household\": \"firelighter\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"paint_can\": {\n \"household\": \"paint_can\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\",\n \"vc3\": [\n \"lata_tinta\"\n ]\n },\n \"ice_pack\": {\n \"household\": \"ice_pack\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"sandwich\": {\n \"household\": \"sandwich\",\n \"idSource\": \"household\",\n \"sizeSource\": \"household\"\n },\n \"branch\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"stick\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"feather\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"bread_mold\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"glass_jar\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"broomstick\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"barrel\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"access_badge\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\"\n },\n \"insulin\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"insulina\"\n ]\n },\n \"leftover_meal\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"sobras\"\n ]\n },\n \"disinfectant\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"desinfetante\"\n ]\n },\n \"seasoning\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"tempero\"\n ]\n },\n \"stapler\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"grampeador\"\n ]\n },\n \"remote_control\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"controle_remoto\"\n ]\n },\n \"dvd\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"dvd\"\n ]\n },\n \"cable_bundle\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"cabos\"\n ]\n },\n \"shoe_polish\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"graxa\"\n ]\n },\n \"laundry_powder\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"sabao_po\"\n ]\n },\n \"broom\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"vassoura\"\n ]\n },\n \"rubber_gloves\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"luvas\"\n ]\n },\n \"fabric_softener\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"amaciante\"\n ]\n },\n \"clothespins\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"cesto_pregadores\"\n ]\n },\n \"electrical_tape\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"fita_isolante\"\n ]\n },\n \"full_trash_bag\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"saco_lixo_cheio\"\n ]\n },\n \"food_packaging\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"embalagem\"\n ]\n },\n \"wine_glass\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"taca\"\n ]\n },\n \"book\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"livro\"\n ]\n },\n \"eyeglasses\": {\n \"created\": true,\n \"idSource\": \"decision\",\n \"sizeSource\": \"REF\",\n \"vc3\": [\n \"oculos\"\n ]\n }\n}\n","[\n {\n \"id\": \"common\",\n \"weight\": 60,\n \"isFixedOnly\": false\n },\n {\n \"id\": \"uncommon\",\n \"weight\": 28,\n \"isFixedOnly\": false\n },\n {\n \"id\": \"rare\",\n \"weight\": 9,\n \"isFixedOnly\": false\n },\n {\n \"id\": \"very_rare\",\n \"weight\": 2.5,\n \"isFixedOnly\": false\n },\n {\n \"id\": \"legendary\",\n \"weight\": 0.5,\n \"isFixedOnly\": true\n },\n {\n \"id\": \"unique\",\n \"weight\": 0,\n \"isFixedOnly\": true\n }\n]\n","[\n {\n \"id\": \"window_barricade\",\n \"inputs\": [\n {\n \"item\": \"wooden_plank\",\n \"label\": \"tábuas\",\n \"qty\": 2\n },\n {\n \"item\": \"nails\",\n \"label\": \"pregos\",\n \"qty\": 8\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"hammer\"\n ],\n \"label\": \"martelo\"\n }\n ],\n \"seconds\": 8,\n \"output\": {\n \"effect\": \"window_barricade\",\n \"params\": {},\n \"text\": \"Janela com vida 200. Martelada faz ruído de 20 m.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"carpentry\",\n \"level\": 0\n }\n },\n {\n \"id\": \"sheet_metal_window\",\n \"inputs\": [\n {\n \"item\": \"sheet_metal\",\n \"label\": \"chapa\",\n \"qty\": 1\n },\n {\n \"item\": \"screws\",\n \"label\": \"parafusos\",\n \"qty\": 6\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"cordless_drill\",\n \"inverter_welder\"\n ],\n \"label\": \"parafusadeira ou máquina de solda\"\n }\n ],\n \"seconds\": 20,\n \"output\": {\n \"effect\": \"sheet_metal_window\",\n \"params\": {},\n \"text\": \"Vida 500. Com solda, precisa de gerador.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"metalworking\",\n \"level\": 2\n }\n },\n {\n \"id\": \"furniture_planks\",\n \"inputs\": [\n {\n \"world\": [\n \"table\",\n \"door\",\n \"cabinet\"\n ],\n \"label\": \"mesa, porta ou armário\",\n \"qty\": 1\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"handsaw\",\n \"axe\"\n ],\n \"label\": \"serrote ou machado\"\n }\n ],\n \"seconds\": 15,\n \"output\": {\n \"item\": \"wooden_plank\",\n \"qty\": [\n 2,\n 4\n ],\n \"label\": \"tábuas\",\n \"note\": \", conforme o móvel\"\n },\n \"unresolved\": []\n },\n {\n \"id\": \"rags\",\n \"inputs\": [\n {\n \"match\": {\n \"category\": \"clothing\"\n },\n \"label\": \"roupa\",\n \"qty\": 1\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [],\n \"label\": \"mãos (tesoura 2× mais rápido)\"\n }\n ],\n \"seconds\": 4,\n \"output\": {\n \"item\": \"rag\",\n \"qty\": [\n 2,\n 4\n ],\n \"label\": \"trapos\"\n },\n \"unresolved\": []\n },\n {\n \"id\": \"clean_bandage\",\n \"inputs\": [\n {\n \"item\": \"rag\",\n \"label\": \"trapos\",\n \"qty\": 2\n },\n {\n \"fluid\": \"water\",\n \"label\": \"água\",\n \"liters\": 0.5\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"pot\"\n ],\n \"label\": \"panela\"\n },\n {\n \"anyOf\": [],\n \"world\": [\n \"fire\"\n ],\n \"label\": \"fogo\"\n }\n ],\n \"seconds\": 300,\n \"output\": {\n \"effect\": \"clean_bandage\",\n \"params\": {},\n \"text\": \"Esteriliza como gaze.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"first_aid\",\n \"level\": 1\n }\n },\n {\n \"id\": \"improvised_suture\",\n \"inputs\": [\n {\n \"item\": \"sewing_kit\",\n \"label\": \"kit de costura\"\n },\n {\n \"any\": [\n \"alcohol_70\",\n \"cachaca\"\n ],\n \"label\": \"álcool 70 ou cachaça\"\n }\n ],\n \"tools\": [],\n \"seconds\": 40,\n \"output\": {\n \"effect\": \"improvised_suture\",\n \"params\": {},\n \"text\": \"Igual ao kit de sutura, com 10% de chance de infecção.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"first_aid\",\n \"level\": 4\n }\n },\n {\n \"id\": \"improvised_splint\",\n \"inputs\": [\n {\n \"any\": [\n \"wooden_plank\",\n \"branch\"\n ],\n \"label\": \"tábuas ou galhos\",\n \"qty\": 2\n },\n {\n \"item\": \"bandage\",\n \"label\": \"ataduras\",\n \"qty\": 2\n }\n ],\n \"tools\": [],\n \"seconds\": 20,\n \"output\": {\n \"effect\": \"improvised_splint\",\n \"params\": {},\n \"text\": \"Como a tala, mas cura em 14 dias.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"first_aid\",\n \"level\": 1\n }\n },\n {\n \"id\": \"boiled_water\",\n \"inputs\": [\n {\n \"item\": \"dirty_water\",\n \"label\": \"água suja\"\n },\n {\n \"item\": \"pot\",\n \"label\": \"panela\"\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [],\n \"world\": [\n \"fire\"\n ],\n \"label\": \"fogo\"\n }\n ],\n \"seconds\": 300,\n \"output\": {\n \"effect\": \"boiled_water\",\n \"params\": {},\n \"text\": \"Sem risco de diarreia.\"\n },\n \"unresolved\": []\n },\n {\n \"id\": \"treated_water\",\n \"inputs\": [\n {\n \"item\": \"dirty_water\",\n \"label\": \"água suja\"\n },\n {\n \"item\": \"bleach\",\n \"label\": \"água sanitária\"\n }\n ],\n \"tools\": [],\n \"seconds\": 1800,\n \"timeSuffix\": \"parada\",\n \"output\": {\n \"effect\": \"treated_water\",\n \"params\": {},\n \"text\": \"2 gotas por litro.\"\n },\n \"unresolved\": []\n },\n {\n \"id\": \"rain_collector\",\n \"inputs\": [\n {\n \"item\": \"tarp\",\n \"label\": \"lona\",\n \"qty\": 1\n },\n {\n \"any\": [\n \"bucket\",\n \"barrel\"\n ],\n \"label\": \"balde ou barril\",\n \"qty\": 1\n }\n ],\n \"tools\": [],\n \"seconds\": 60,\n \"output\": {\n \"effect\": \"rain_collector\",\n \"params\": {},\n \"text\": \"Enche 10 L a cada chuva.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"carpentry\",\n \"level\": 1\n }\n },\n {\n \"id\": \"stew\",\n \"inputs\": [\n {\n \"item\": \"pot\",\n \"label\": \"panela\"\n },\n {\n \"fluid\": \"water\",\n \"label\": \"água\"\n },\n {\n \"match\": {\n \"cookable\": true\n },\n \"label\": \"ingredientes\",\n \"qty\": 2\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [],\n \"world\": [\n \"fire\"\n ],\n \"label\": \"fogo\"\n }\n ],\n \"seconds\": 1200,\n \"output\": {\n \"effect\": \"stew\",\n \"params\": {},\n \"text\": \"Fome +8 sobre a soma dos ingredientes; moral +10.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"cooking\",\n \"level\": 0\n }\n },\n {\n \"id\": \"jerky\",\n \"inputs\": [\n {\n \"item\": \"raw_beef\",\n \"label\": \"carne crua\"\n },\n {\n \"item\": \"salt\",\n \"label\": \"sal\"\n }\n ],\n \"tools\": [],\n \"seconds\": 86400,\n \"timeSuffix\": \"secando\",\n \"output\": {\n \"effect\": \"jerky\",\n \"params\": {},\n \"text\": \"Validade 120 dias.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"cooking\",\n \"level\": 2\n }\n },\n {\n \"id\": \"salted_fish\",\n \"inputs\": [\n {\n \"item\": \"fresh_fish\",\n \"label\": \"peixe fresco\"\n },\n {\n \"item\": \"salt\",\n \"label\": \"sal\"\n }\n ],\n \"tools\": [],\n \"seconds\": 86400,\n \"timeSuffix\": \"secando\",\n \"output\": {\n \"effect\": \"salted_fish\",\n \"params\": {},\n \"text\": \"Validade 90 dias.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"cooking\",\n \"level\": 1\n }\n },\n {\n \"id\": \"preserves\",\n \"inputs\": [\n {\n \"item\": \"glass_jar\",\n \"label\": \"pote de vidro\"\n },\n {\n \"any\": [\n \"potatoes\",\n \"cassava_root\",\n \"tomato\"\n ],\n \"label\": \"legume\"\n },\n {\n \"any\": [\n \"salt\",\n \"sugar\"\n ],\n \"label\": \"sal ou açúcar\"\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"pot\"\n ],\n \"label\": \"panela\"\n },\n {\n \"anyOf\": [],\n \"world\": [\n \"fire\"\n ],\n \"label\": \"fogo\"\n }\n ],\n \"seconds\": 2400,\n \"output\": {\n \"effect\": \"preserves\",\n \"params\": {},\n \"text\": \"Validade 365 dias, sem risco de botulismo.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"cooking\",\n \"level\": 3\n }\n },\n {\n \"id\": \"spear\",\n \"inputs\": [\n {\n \"item\": \"knife\",\n \"label\": \"faca de cozinha\"\n },\n {\n \"item\": \"broomstick\",\n \"label\": \"cabo de vassoura\"\n },\n {\n \"item\": \"duct_tape\",\n \"label\": \"silver tape\"\n }\n ],\n \"tools\": [],\n \"seconds\": 30,\n \"output\": {\n \"effect\": \"spear\",\n \"params\": {},\n \"text\": \"Alcance 1,6 m.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"bladed_weapons\",\n \"level\": 0\n }\n },\n {\n \"id\": \"nail_bat\",\n \"inputs\": [\n {\n \"item\": \"baseball_bat\",\n \"label\": \"taco de beisebol\"\n },\n {\n \"item\": \"nails\",\n \"label\": \"pregos\",\n \"qty\": 6\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"hammer\"\n ],\n \"label\": \"martelo\"\n }\n ],\n \"seconds\": 40,\n \"output\": {\n \"effect\": \"nail_bat\",\n \"params\": {},\n \"text\": \"Dano 30 → 40.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"carpentry\",\n \"level\": 1\n }\n },\n {\n \"id\": \"magazine_arm_guard\",\n \"inputs\": [\n {\n \"item\": \"magazines_and_comics\",\n \"label\": \"revistas\",\n \"qty\": 2\n },\n {\n \"item\": \"duct_tape\",\n \"label\": \"silver tape\"\n }\n ],\n \"tools\": [],\n \"seconds\": 20,\n \"output\": {\n \"effect\": \"magazine_arm_guard\",\n \"params\": {},\n \"text\": \"Bloqueia 35% das mordidas no braço.\"\n },\n \"unresolved\": []\n },\n {\n \"id\": \"sheet_metal_arm_guard\",\n \"inputs\": [\n {\n \"item\": \"sheet_metal\",\n \"label\": \"chapa\",\n \"qty\": 1\n },\n {\n \"item\": \"duct_tape\",\n \"label\": \"silver tape\"\n },\n {\n \"item\": \"pliers\",\n \"label\": \"alicate\"\n }\n ],\n \"tools\": [],\n \"seconds\": 120,\n \"output\": {\n \"effect\": \"sheet_metal_arm_guard\",\n \"params\": {},\n \"text\": \"Bloqueia 70% das mordidas no braço.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"metalworking\",\n \"level\": 1\n }\n },\n {\n \"id\": \"molotov_cocktail\",\n \"inputs\": [\n {\n \"item\": \"glass_bottle\",\n \"label\": \"garrafa de vidro\"\n },\n {\n \"item\": \"gasoline\",\n \"label\": \"gasolina\",\n \"liters\": 0.5\n },\n {\n \"item\": \"rag\",\n \"label\": \"trapo\"\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"lighter\"\n ],\n \"label\": \"isqueiro para acender\"\n }\n ],\n \"seconds\": 10,\n \"output\": {\n \"effect\": \"molotov_cocktail\",\n \"params\": {},\n \"text\": \"Fogo de 3 m por 20 s (ver Laboratório de Explosões).\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"throwing\",\n \"level\": 0\n }\n },\n {\n \"id\": \"noise_bomb\",\n \"inputs\": [\n {\n \"item\": \"windup_alarm_clock\",\n \"label\": \"despertador\"\n },\n {\n \"item\": \"empty_can\",\n \"label\": \"lata vazia\"\n },\n {\n \"item\": \"nails\",\n \"label\": \"pregos\"\n }\n ],\n \"tools\": [],\n \"seconds\": 60,\n \"output\": {\n \"effect\": \"noise_bomb\",\n \"params\": {},\n \"text\": \"Toca na hora marcada: atrai a 80 m por 60 s.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"electrics\",\n \"level\": 1\n }\n },\n {\n \"id\": \"can_alarm\",\n \"inputs\": [\n {\n \"item\": \"empty_can\",\n \"label\": \"latas vazias\",\n \"qty\": 4\n },\n {\n \"item\": \"wire_roll\",\n \"label\": \"arame\"\n }\n ],\n \"tools\": [],\n \"seconds\": 60,\n \"output\": {\n \"effect\": \"can_alarm\",\n \"params\": {},\n \"text\": \"Esticado na porta ou no mato: chocalha a 25 m.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"hunting_and_trapping\",\n \"level\": 1\n }\n },\n {\n \"id\": \"window_barbed_wire\",\n \"inputs\": [\n {\n \"item\": \"barbed_wire\",\n \"label\": \"rolo de arame farpado\",\n \"qty\": 1\n },\n {\n \"item\": \"nails\",\n \"label\": \"pregos\",\n \"qty\": 4\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"hammer\"\n ],\n \"label\": \"martelo\"\n },\n {\n \"anyOf\": [\n \"leather_work_gloves\"\n ],\n \"label\": \"luvas de couro\"\n }\n ],\n \"seconds\": 60,\n \"output\": {\n \"effect\": \"window_barbed_wire\",\n \"params\": {},\n \"text\": \"Zumbi preso 2 s e 10 de dano por segundo.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"carpentry\",\n \"level\": 1\n }\n },\n {\n \"id\": \"electric_fence\",\n \"inputs\": [\n {\n \"item\": \"electric_fence_energizer\",\n \"label\": \"eletrificador\"\n },\n {\n \"item\": \"car_battery_12v\",\n \"label\": \"bateria 12 V\"\n },\n {\n \"item\": \"wire_roll\",\n \"label\": \"arame\",\n \"meters\": 20\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"pliers\"\n ],\n \"label\": \"alicate\"\n }\n ],\n \"seconds\": 600,\n \"output\": {\n \"effect\": \"electric_fence\",\n \"params\": {},\n \"text\": \"Zumbi para 1,5 s a cada toque.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"electrics\",\n \"level\": 4\n }\n },\n {\n \"id\": \"oil_lamp\",\n \"inputs\": [\n {\n \"item\": \"empty_can\",\n \"label\": \"lata vazia\"\n },\n {\n \"any\": [\n \"cooking_oil\",\n \"kerosene\"\n ],\n \"label\": \"óleo ou querosene\"\n },\n {\n \"item\": \"rag\",\n \"label\": \"trapo\"\n }\n ],\n \"tools\": [],\n \"seconds\": 20,\n \"output\": {\n \"effect\": \"oil_lamp\",\n \"params\": {},\n \"text\": \"6 h de luz fraca.\"\n },\n \"unresolved\": []\n },\n {\n \"id\": \"torch\",\n \"inputs\": [\n {\n \"item\": \"branch\",\n \"label\": \"galho\"\n },\n {\n \"item\": \"rag\",\n \"label\": \"trapo\"\n },\n {\n \"item\": \"alcohol_70\",\n \"label\": \"álcool\"\n }\n ],\n \"tools\": [],\n \"seconds\": 10,\n \"output\": {\n \"effect\": \"torch\",\n \"params\": {},\n \"text\": \"20 min de luz forte; vê-se a 150 m.\"\n },\n \"unresolved\": []\n },\n {\n \"id\": \"campfire\",\n \"inputs\": [\n {\n \"any\": [\n \"firewood\",\n \"wooden_plank\"\n ],\n \"label\": \"lenhas ou 3 tábuas\",\n \"qty\": 3\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"lighter\",\n \"matches\",\n \"flint_striker\"\n ],\n \"label\": \"isqueiro, fósforo ou pederneira\"\n }\n ],\n \"seconds\": 30,\n \"output\": {\n \"effect\": \"campfire\",\n \"params\": {},\n \"text\": \"Cozinha e aquece. Fumaça visível a 1 km de dia.\"\n },\n \"unresolved\": []\n },\n {\n \"id\": \"sandbag\",\n \"inputs\": [\n {\n \"item\": \"raffia_sack\",\n \"label\": \"saco de ráfia\"\n },\n {\n \"world\": [\n \"soil\"\n ],\n \"label\": \"terra\"\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"shovel\"\n ],\n \"label\": \"pá\"\n }\n ],\n \"seconds\": 20,\n \"output\": {\n \"effect\": \"sandbag\",\n \"params\": {},\n \"text\": \"Barricada baixa de vida 400.\"\n },\n \"unresolved\": []\n },\n {\n \"id\": \"bindle_pack\",\n \"inputs\": [\n {\n \"item\": \"trash_bag\",\n \"label\": \"saco de lixo\"\n },\n {\n \"item\": \"rope\",\n \"label\": \"corda\"\n }\n ],\n \"tools\": [],\n \"seconds\": 30,\n \"output\": {\n \"effect\": \"bindle_pack\",\n \"params\": {},\n \"text\": \"6 kg nas costas, sem redução.\"\n },\n \"unresolved\": []\n },\n {\n \"id\": \"improvised_antenna\",\n \"inputs\": [\n {\n \"item\": \"copper_wire\",\n \"label\": \"fio de cobre\",\n \"meters\": 5\n },\n {\n \"item\": \"portable_radio\",\n \"label\": \"rádio\"\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"pliers\"\n ],\n \"label\": \"alicate\"\n }\n ],\n \"seconds\": 120,\n \"output\": {\n \"effect\": \"improvised_antenna\",\n \"params\": {},\n \"text\": \"Alcance do walkie-talkie e do rádio PX ×2 no lugar alto.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"electrics\",\n \"level\": 2\n }\n },\n {\n \"id\": \"dismantle_electronics\",\n \"inputs\": [\n {\n \"any\": [\n \"mobile_phone\",\n \"laptop\",\n \"portable_radio\"\n ],\n \"label\": \"celular, notebook ou rádio\"\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"screwdriver\"\n ],\n \"label\": \"chave de fenda\"\n }\n ],\n \"seconds\": 60,\n \"output\": {\n \"effect\": \"dismantle_electronics\",\n \"params\": {},\n \"text\": \"Componentes eletrônicos e fio de cobre.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"electrics\",\n \"level\": 2\n }\n },\n {\n \"id\": \"snare_trap\",\n \"inputs\": [\n {\n \"item\": \"wire_roll\",\n \"label\": \"arame\"\n },\n {\n \"item\": \"branch\",\n \"label\": \"galho\"\n }\n ],\n \"tools\": [],\n \"seconds\": 40,\n \"output\": {\n \"effect\": \"snare_trap\",\n \"params\": {},\n \"text\": \"Pega animal pequeno de noite.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"hunting_and_trapping\",\n \"level\": 1\n }\n },\n {\n \"id\": \"arrows\",\n \"inputs\": [\n {\n \"item\": \"stick\",\n \"label\": \"vareta\"\n },\n {\n \"item\": \"nails\",\n \"label\": \"prego\"\n },\n {\n \"item\": \"feather\",\n \"label\": \"pena\"\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"knife\"\n ],\n \"label\": \"faca\"\n }\n ],\n \"seconds\": 60,\n \"output\": {\n \"item\": \"arrows_and_bolts\",\n \"qty\": [\n 3,\n 3\n ],\n \"label\": \"flechas\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"hunting_and_trapping\",\n \"level\": 2\n }\n },\n {\n \"id\": \"homemade_antibiotic\",\n \"inputs\": [\n {\n \"item\": \"bread_mold\",\n \"label\": \"mofo de pão\"\n },\n {\n \"item\": \"alcohol_70\",\n \"label\": \"álcool\"\n },\n {\n \"any\": [\n \"glass_jar\",\n \"glass_bottle\"\n ],\n \"label\": \"vidro limpo\"\n }\n ],\n \"tools\": [\n {\n \"anyOf\": [\n \"pot\"\n ],\n \"label\": \"panela\"\n },\n {\n \"anyOf\": [],\n \"world\": [\n \"fire\"\n ],\n \"label\": \"fogo\"\n }\n ],\n \"seconds\": 259200,\n \"output\": {\n \"effect\": \"homemade_antibiotic\",\n \"params\": {},\n \"text\": \"Metade do efeito da amoxicilina.\"\n },\n \"unresolved\": [],\n \"skill\": {\n \"id\": \"chemistry\",\n \"level\": 5\n }\n }\n]\n","{\n \"rarityWeights\": {\n \"common\": 60,\n \"uncommon\": 28,\n \"rare\": 9,\n \"very_rare\": 2.5\n },\n \"fixedOnly\": [\n \"legendary\",\n \"unique\"\n ],\n \"condition\": {\n \"common\": [\n 30,\n 90\n ],\n \"uncommon\": [\n 40,\n 90\n ],\n \"rare\": [\n 50,\n 100\n ]\n },\n \"ageShareOfShelfLife\": [\n 0,\n 0.6\n ],\n \"batteryCharge\": [\n 0.2,\n 1\n ],\n \"jerrycanFill\": [\n 0,\n 0.6\n ],\n \"floorItemsPerCell\": 400,\n \"gameRarityWeights\": {\n \"c\": 60,\n \"i\": 28,\n \"r\": 9,\n \"mr\": 2.5\n }\n}\n","[\n {\n \"id\": \"fridge\",\n \"multiplier\": 0.33,\n \"needsPower\": true,\n \"line\": 208\n },\n {\n \"id\": \"freezer\",\n \"multiplier\": 0.1,\n \"needsPower\": true,\n \"line\": 209\n },\n {\n \"id\": \"cooler\",\n \"multiplier\": 0.5,\n \"limitDays\": 2,\n \"afterLimit\": 1,\n \"line\": 210\n },\n {\n \"id\": \"delivery_bag\",\n \"multiplier\": 0.8,\n \"line\": 211\n },\n {\n \"id\": \"cellar\",\n \"multiplier\": 0.66,\n \"line\": 212\n },\n {\n \"id\": \"ambient\",\n \"multiplier\": 1,\n \"line\": 213\n },\n {\n \"id\": \"hot\",\n \"multiplier\": 2,\n \"line\": 214\n }\n]\n","[\n {\n \"id\": \"eat_and_drink\",\n \"effect\": \"consume_nutrition\",\n \"category\": [\n \"food\",\n \"drink\"\n ],\n \"consumes\": true\n },\n {\n \"id\": \"dress_wound\",\n \"effect\": \"stop_bleeding\",\n \"consumes\": true,\n \"items\": [\n \"adhesive_bandages\",\n \"bandage\",\n \"sterile_gauze\",\n \"medical_tape\"\n ]\n },\n {\n \"id\": \"painkiller\",\n \"effect\": \"heal\",\n \"params\": {\n \"amount\": 15\n },\n \"consumes\": true,\n \"items\": [\n \"painkillers\",\n \"ibuprofen\",\n \"tramadol\"\n ]\n },\n {\n \"id\": \"calm_down\",\n \"effect\": \"calm\",\n \"consumes\": true,\n \"items\": [\n \"clonazepam\"\n ]\n },\n {\n \"id\": \"clean_wound\",\n \"effect\": \"clean_wound\",\n \"consumes\": true,\n \"items\": [\n \"alcohol_70\",\n \"povidone_iodine\"\n ]\n },\n {\n \"id\": \"assemble_molotov\",\n \"effect\": \"assemble_molotov\",\n \"params\": {\n \"output\": \"molotov\"\n },\n \"consumes\": true,\n \"items\": [\n \"glass_bottle\",\n \"gasoline\",\n \"cachaca\"\n ]\n },\n {\n \"id\": \"toggle_light\",\n \"effect\": \"toggle_light\",\n \"consumes\": false,\n \"items\": [\n \"flashlight\"\n ]\n },\n {\n \"id\": \"swap_bag\",\n \"effect\": \"swap_bag\",\n \"category\": [\n \"bags\"\n ],\n \"consumes\": true\n },\n {\n \"id\": \"equip_melee\",\n \"effect\": \"equip_melee\",\n \"category\": [\n \"melee\"\n ],\n \"consumes\": false\n }\n]\n","import type { ArsenalItemRecord, CategoryDef, ContainerDef, ItemDef, PlaceDef, PoolEntry, RecipeDef, UseEffectDef } from '@adatechnology/game-items'\n\nimport ammoBoxesJson from './data/ammo-boxes.json'\nimport categoriesJson from './data/categories.json'\nimport containersJson from './data/containers.json'\nimport depletionJson from './data/depletion.json'\nimport housePoolsJson from './data/house-pools.json'\nimport itemsJson from './data/items.json'\nimport meleeJson from './data/melee.json'\nimport placesJson from './data/places.json'\nimport provenanceJson from './data/provenance.json'\nimport raritiesJson from './data/rarities.json'\nimport recipesJson from './data/recipes.json'\nimport spawnJson from './data/spawn.json'\nimport storageJson from './data/storage.json'\nimport useEffectsJson from './data/use-effects.json'\n\n/** Where an item of the catalog comes from: the team's item, the household one, the pool types of the 3D house viewer and the game ids. */\nexport interface ItemProvenance {\n /** The item exists only because `decisions.json` asked for it. */\n created?: true\n ite?: string\n household?: string\n vc3?: readonly string[]\n game?: readonly string[]\n idSource: 'household' | 'merge' | 'decision'\n sizeSource: 'household' | 'REF' | 'model' | 'derived'\n}\n\nexport interface RarityRow {\n id: string\n weight: number\n isFixedOnly: boolean\n}\n\nexport interface StorageRow {\n id: string\n multiplier: number\n needsPower?: true\n limitDays?: number\n afterLimit?: number\n /** Line of the team's page the number was read from. */\n line: number\n}\n\nexport interface DepletionRow {\n places: readonly string[]\n perDay: number\n floor: number\n}\n\nexport interface MeleeRow {\n id: string\n reach: number\n noise: number\n}\n\nexport interface HousePools {\n /** Pools by the key of the 3D house viewer (`geladeira`, `pia`...), as `PoolEntry` of the catalog. */\n pools: Readonly<Record<string, readonly PoolEntry[]>>\n /** Keys that share another key's pool. */\n aliasOf: Readonly<Record<string, string>>\n}\n\nexport const GOODS_ITEMS = itemsJson as unknown as readonly ItemDef[]\nexport const GOODS_CATEGORIES = categoriesJson as readonly CategoryDef[]\nexport const GOODS_PLACES = placesJson as readonly PlaceDef[]\nexport const GOODS_CONTAINERS = containersJson as unknown as readonly ContainerDef[]\nexport const GOODS_RECIPES = recipesJson as unknown as readonly RecipeDef[]\nexport const GOODS_USE_EFFECTS = useEffectsJson as unknown as readonly UseEffectDef[]\n\ntype HousePoolsFile = { pools: Record<string, readonly (PoolEntry & { type: string })[]>; aliasOf: Record<string, string> }\nconst housePoolsFile = housePoolsJson as unknown as HousePoolsFile\n\n/** The explicit pools, cut to what `createItems` reads (the viewer's `type`, `name` and `viewerCategory` stay in `data/house-pools.json`). */\nexport const GOODS_HOUSE_POOLS: HousePools = {\n pools: Object.fromEntries(\n Object.entries(housePoolsFile.pools).map(([key, entries]) => [\n key,\n entries.map(({ item, weight, qty, isSupply }): PoolEntry => ({ item, weight, qty, ...(isSupply ? { isSupply } : {}) })),\n ]),\n ),\n aliasOf: housePoolsFile.aliasOf,\n}\n\n/** The team's numbers and tables, as read. The rules in `DEFAULT_RULES` of `game-items` are proven equal to them by test. */\nexport const GOODS_TABLES = {\n rarities: raritiesJson as readonly RarityRow[],\n storage: storageJson as readonly StorageRow[],\n depletion: depletionJson as readonly DepletionRow[],\n spawn: spawnJson,\n melee: meleeJson as readonly MeleeRow[],\n} as const\n\n/** Ammo boxes, three firearms and two throwables as items (the game's `EXTRA` table), for `itemsFromArsenal(arsenal, { records })`. */\nexport const GOODS_ARSENAL_RECORDS = ammoBoxesJson as unknown as readonly ArsenalItemRecord[]\n\nexport const GOODS_PROVENANCE = provenanceJson as unknown as Readonly<Record<string, ItemProvenance>>\n","import { createItems } from '@adatechnology/game-items'\nimport type { ItemPack, ItemsCatalog, ItemsOptions } from '@adatechnology/game-items'\n\nimport { FLOORPLAN_POOL_ALIASES } from './floorplan'\nimport { GOODS_CATEGORIES, GOODS_CONTAINERS, GOODS_HOUSE_POOLS, GOODS_ITEMS, GOODS_PLACES, GOODS_RECIPES, GOODS_USE_EFFECTS } from './data'\n\n/** The pack for `createItems({ packs })`: items, the three categories the game adds, 24 places, 17 containers, house pools, use effects and recipes. */\nexport const goodsPack: ItemPack = {\n id: 'goods',\n items: GOODS_ITEMS,\n categories: GOODS_CATEGORIES,\n places: GOODS_PLACES,\n containers: GOODS_CONTAINERS,\n useEffects: GOODS_USE_EFFECTS,\n recipes: GOODS_RECIPES,\n pools: GOODS_HOUSE_POOLS.pools,\n poolAliases: { ...GOODS_HOUSE_POOLS.aliasOf, ...FLOORPLAN_POOL_ALIASES },\n}\n\n/** `createItems` with the goods pack first; the packs and options of the game come after and win. */\nexport const createGoodsItems = (options: ItemsOptions = {}): ItemsCatalog => createItems({ ...options, packs: [goodsPack, ...(options.packs ?? [])] })\n","{\n \"item.canned_beans\": \"Canned beans\",\n \"item.canned_sardines\": \"Canned sardines\",\n \"item.canned_corn_and_peas\": \"Canned corn and peas\",\n \"item.canned_sausages\": \"Canned sausages\",\n \"item.condensed_milk\": \"Condensed milk\",\n \"item.military_ration\": \"Army field ration\",\n \"item.rice\": \"Rice (1 kg)\",\n \"item.beans\": \"Beans (1 kg)\",\n \"item.pasta\": \"Pasta\",\n \"item.instant_noodles\": \"Instant noodles\",\n \"item.cassava_flour\": \"Cassava flour (1 kg)\",\n \"item.biscuits\": \"Biscuits\",\n \"item.snack_chips\": \"Bagged snack chips\",\n \"item.chocolate_bar\": \"Chocolate bar\",\n \"item.rapadura\": \"Rapadura (raw cane sugar block)\",\n \"item.honey_jar\": \"Jar of honey\",\n \"item.bread\": \"Bread\",\n \"item.cheese\": \"Cheese\",\n \"item.mortadella\": \"Mortadella (whole piece)\",\n \"item.raw_beef\": \"Raw beef (1 kg)\",\n \"item.frozen_chicken\": \"Frozen chicken\",\n \"item.eggs\": \"Eggs (dozen)\",\n \"item.banana_bunch\": \"Bunch of bananas\",\n \"item.orange\": \"Orange\",\n \"item.potatoes\": \"Potatoes (1 kg)\",\n \"item.cassava_root\": \"Cassava root\",\n \"item.fresh_fish\": \"Fresh fish\",\n \"item.salted_fish\": \"Salted fish\",\n \"item.jerked_beef\": \"Jerked beef\",\n \"item.game_meat\": \"Game meat (capybara, wild boar)\",\n \"item.home_preserves\": \"Home preserves (jar)\",\n \"item.dog_food\": \"Dog food (1 kg)\",\n \"item.sugar\": \"Sugar\",\n \"item.salt\": \"Salt\",\n \"item.cooking_oil\": \"Cooking oil\",\n \"item.coffee\": \"Coffee\",\n \"item.water_bottle\": \"Water bottle\",\n \"item.water_jug_5l\": \"Water jug (5 L)\",\n \"item.dirty_water\": \"River or puddle water\",\n \"item.soda_can\": \"Soda can\",\n \"item.juice_box\": \"Juice box\",\n \"item.milk_carton\": \"Milk carton\",\n \"item.sports_drink\": \"Sports drink\",\n \"item.energy_drink\": \"Energy drink (can)\",\n \"item.coconut_water\": \"Coconut water\",\n \"item.beer_can\": \"Beer (can)\",\n \"item.cachaca\": \"Cachaca (bottle)\",\n \"item.communion_wine\": \"Communion wine\",\n \"item.bandage\": \"Bandage\",\n \"item.sterile_gauze\": \"Sterile gauze\",\n \"item.adhesive_bandages\": \"Adhesive bandages (box)\",\n \"item.medical_tape\": \"Medical tape\",\n \"item.alcohol_70\": \"Alcohol 70%\",\n \"item.povidone_iodine\": \"Povidone-iodine\",\n \"item.saline_iv_bag\": \"Saline bag with IV set\",\n \"item.painkillers\": \"Painkillers\",\n \"item.ibuprofen\": \"Anti-inflammatory (ibuprofen)\",\n \"item.tramadol\": \"Strong painkiller (tramadol)\",\n \"item.clonazepam\": \"Sedative (clonazepam)\",\n \"item.amoxicillin\": \"Antibiotic (amoxicillin)\",\n \"item.ceftriaxone\": \"Injectable antibiotic (ceftriaxone)\",\n \"item.syringe\": \"Disposable syringe\",\n \"item.suture_kit\": \"Suture kit\",\n \"item.splint\": \"Immobilizing splint\",\n \"item.first_aid_kit\": \"First aid kit\",\n \"item.exam_gloves\": \"Exam gloves\",\n \"item.n95_mask\": \"N95 mask\",\n \"item.activated_charcoal\": \"Activated charcoal\",\n \"item.rehydration_salts\": \"Rehydration salts\",\n \"item.antihistamine\": \"Antihistamine\",\n \"item.antivenom\": \"Snake antivenom\",\n \"item.thermometer\": \"Thermometer\",\n \"item.maintenance_medication\": \"Daily-use medication\",\n \"item.multivitamin\": \"Multivitamin\",\n \"item.hammer\": \"Hammer\",\n \"item.screwdriver\": \"Screwdriver\",\n \"item.crowbar\": \"Crowbar\",\n \"item.handsaw\": \"Handsaw\",\n \"item.hacksaw\": \"Hacksaw\",\n \"item.bolt_cutters\": \"Bolt cutters\",\n \"item.pliers\": \"Pliers\",\n \"item.adjustable_wrench\": \"Adjustable wrench\",\n \"item.mechanic_toolbox\": \"Mechanic's toolbox\",\n \"item.car_jack\": \"Car jack and wheel wrench\",\n \"item.gas_torch\": \"Gas torch\",\n \"item.inverter_welder\": \"Inverter welder\",\n \"item.cordless_drill\": \"Cordless drill\",\n \"item.shovel\": \"Shovel\",\n \"item.hoe\": \"Hoe\",\n \"item.pocket_knife\": \"Multi-tool pocket knife\",\n \"item.can_opener\": \"Can opener\",\n \"item.scissors\": \"Scissors\",\n \"item.duct_tape\": \"Duct tape\",\n \"item.pot\": \"Pot\",\n \"item.camp_stove\": \"Camping stove\",\n \"item.sewing_kit\": \"Sewing kit\",\n \"item.lockpick_kit\": \"Locksmith kit (lock picks)\",\n \"item.lighter\": \"Lighter\",\n \"item.matches\": \"Matches\",\n \"item.flint_striker\": \"Flint and striker\",\n \"item.bucket\": \"Bucket\",\n \"item.binoculars\": \"Binoculars\",\n \"item.fire_extinguisher\": \"Dry-powder fire extinguisher\",\n \"item.sharpening_stone\": \"Sharpening stone\",\n \"item.knife\": \"Kitchen knife\",\n \"item.tactical_knife\": \"Tactical knife\",\n \"item.machete\": \"Machete\",\n \"item.meat_cleaver\": \"Butcher's cleaver\",\n \"item.hatchet\": \"Hatchet\",\n \"item.axe\": \"Axe\",\n \"item.baseball_bat\": \"Baseball bat\",\n \"item.nail_bat\": \"Nail bat\",\n \"item.iron_pipe\": \"Iron pipe\",\n \"item.sledgehammer\": \"Sledgehammer\",\n \"item.pickaxe\": \"Pickaxe\",\n \"item.sickle\": \"Sickle\",\n \"item.police_baton\": \"Police baton\",\n \"item.cast_iron_skillet\": \"Cast iron skillet\",\n \"item.improvised_spear\": \"Improvised spear\",\n \"item.chainsaw\": \"Chainsaw\",\n \"item.slingshot\": \"Slingshot\",\n \"item.recurve_bow\": \"Recurve bow\",\n \"item.crossbow\": \"Crossbow\",\n \"item.arrows_and_bolts\": \"Arrows and bolts (6)\",\n \"item.wooden_plank\": \"Wooden plank\",\n \"item.nails\": \"Nails (box of 100)\",\n \"item.screws\": \"Screws (box of 50)\",\n \"item.sheet_metal\": \"Sheet metal\",\n \"item.scrap_metal\": \"Scrap metal\",\n \"item.wire_roll\": \"Wire (10 m roll)\",\n \"item.barbed_wire\": \"Barbed wire (25 m roll)\",\n \"item.rope\": \"Rope\",\n \"item.tarp\": \"Tarp (4 x 4 m)\",\n \"item.raffia_sack\": \"Raffia sack\",\n \"item.bricks\": \"Bricks (10)\",\n \"item.cement_bag\": \"Cement (25 kg bag)\",\n \"item.rag\": \"Rag\",\n \"item.glass_bottle\": \"Empty glass bottle\",\n \"item.pet_bottle\": \"Empty PET bottle\",\n \"item.empty_can\": \"Empty can\",\n \"item.glass_shards\": \"Glass shards\",\n \"item.epoxy_glue\": \"Epoxy glue\",\n \"item.electronic_components\": \"Electronic components\",\n \"item.copper_wire\": \"Copper wire (5 m)\",\n \"item.firewood\": \"Firewood\",\n \"item.rebar\": \"Rebar\",\n \"item.lubricant_spray\": \"Spray lubricant oil\",\n \"item.tshirt\": \"T-shirt\",\n \"item.hoodie\": \"Hoodie\",\n \"item.denim_jacket\": \"Denim jacket\",\n \"item.leather_motorcycle_jacket\": \"Motorcycle jacket (leather)\",\n \"item.jeans\": \"Jeans\",\n \"item.leather_motorcycle_pants\": \"Motorcycle pants\",\n \"item.army_camouflage_uniform\": \"Army camouflage uniform\",\n \"item.mechanic_coveralls\": \"Mechanic's coveralls\",\n \"item.firefighter_suit\": \"Firefighter suit\",\n \"item.beekeeper_suit\": \"Beekeeper suit\",\n \"item.raincoat\": \"Raincoat\",\n \"item.padded_coat\": \"Padded coat\",\n \"item.motorcycle_helmet\": \"Full-face motorcycle helmet\",\n \"item.hard_hat\": \"Hard hat (PPE)\",\n \"item.safety_goggles\": \"Safety goggles\",\n \"item.leather_work_gloves\": \"Leather work gloves\",\n \"item.combat_boots\": \"Combat boots\",\n \"item.rubber_boots\": \"Rubber boots\",\n \"item.sneakers\": \"Sneakers\",\n \"item.flip_flops\": \"Flip-flops\",\n \"item.magazine_arm_guard\": \"Magazine arm guard\",\n \"item.sheet_metal_forearm_guard\": \"Sheet metal forearm guard\",\n \"item.ballistic_vest\": \"Ballistic vests (II-A, III-A, III)\",\n \"item.shopping_bag\": \"Shopping bag\",\n \"item.trash_bag\": \"Trash bag\",\n \"item.fanny_pack\": \"Fanny pack\",\n \"item.crossbody_bag\": \"Crossbody bag\",\n \"item.backpack\": \"Backpack\",\n \"item.delivery_bag\": \"Delivery bag\",\n \"item.hiking_backpack_40l\": \"Hiking backpack 40 L\",\n \"item.military_backpack\": \"Military backpack\",\n \"item.trekking_backpack_70l\": \"Trekking backpack 70 L\",\n \"item.rolling_suitcase\": \"Rolling suitcase\",\n \"item.tactical_vest\": \"Tactical vest\",\n \"item.tool_belt\": \"Tool belt\",\n \"item.cooler_box\": \"Cooler box\",\n \"item.shopping_cart\": \"Shopping cart\",\n \"item.wheelbarrow\": \"Wheelbarrow\",\n \"item.flashlight\": \"Flashlight\",\n \"item.headlamp\": \"Headlamp\",\n \"item.batteries\": \"Batteries\",\n \"item.battery_9v\": \"9 V battery\",\n \"item.power_bank\": \"Power bank\",\n \"item.folding_solar_panel\": \"Folding solar panel\",\n \"item.portable_radio\": \"AM/FM battery radio\",\n \"item.walkie_talkies\": \"Walkie-talkies (pair)\",\n \"item.cb_radio\": \"CB radio\",\n \"item.military_radio\": \"Long-range military radio\",\n \"item.portable_generator\": \"Portable gasoline generator\",\n \"item.led_camp_lantern\": \"LED camping lantern\",\n \"item.mobile_phone\": \"Mobile phone\",\n \"item.laptop\": \"Laptop\",\n \"item.windup_alarm_clock\": \"Wind-up alarm clock\",\n \"item.car_alarm_remote\": \"Car alarm remote\",\n \"item.electric_fence_energizer\": \"Rural electric fence energizer\",\n \"item.extension_cord\": \"Extension cord 20 m\",\n \"item.candles\": \"Candles\",\n \"item.night_vision_goggles\": \"Night vision goggles\",\n \"item.fuel_jerrycan\": \"Fuel jerrycan 20 L\",\n \"item.gasoline\": \"Gasoline (litre)\",\n \"item.diesel\": \"Diesel (litre)\",\n \"item.lpg_cylinder_13kg\": \"LPG cylinder 13 kg\",\n \"item.gas_cartridge\": \"Gas cartridge\",\n \"item.kerosene\": \"Kerosene (1 L)\",\n \"item.charcoal_bag\": \"Charcoal bag\",\n \"item.car_battery_12v\": \"Car battery 12 V\",\n \"item.motor_oil\": \"Motor oil\",\n \"item.bean_seeds\": \"Bean seeds\",\n \"item.corn_seeds\": \"Corn seeds\",\n \"item.pumpkin_seeds\": \"Pumpkin seeds\",\n \"item.kale_and_lettuce_seeds\": \"Kale and lettuce seeds\",\n \"item.cassava_cuttings\": \"Cassava cuttings\",\n \"item.fertilizer_bag\": \"Fertilizer (10 kg bag)\",\n \"item.watering_can\": \"Watering can\",\n \"item.fishing_rod\": \"Fishing rod\",\n \"item.fishing_tackle_box\": \"Tackle box (hooks, line, bait)\",\n \"item.fishing_net\": \"Fishing net\",\n \"item.snare_trap\": \"Snare trap\",\n \"item.skill_book\": \"Skill book (volumes 1 to 5)\",\n \"item.technical_manual\": \"Technical manual\",\n \"item.diy_magazine\": \"Do-It-Yourself magazine\",\n \"item.magazines_and_comics\": \"Magazine and comic book\",\n \"item.farmers_almanac\": \"Farmer's almanac\",\n \"item.note\": \"Note and letter\",\n \"item.photo\": \"Photograph\",\n \"item.city_map\": \"Annotated city map\",\n \"item.road_map\": \"Road map\",\n \"item.dog_tag\": \"Military identification tag\",\n \"item.cash\": \"Wad of cash\",\n \"item.cigarettes\": \"Pack of cigarettes\",\n \"item.house_key\": \"House key\",\n \"item.car_key\": \"Car key\",\n \"item.master_key\": \"Lobby master key\",\n \"item.janitor_keys\": \"Janitor's key ring\",\n \"item.generator_key\": \"Hospital generator key\",\n \"item.safe_key\": \"Police station safe key\",\n \"item.padlock_key\": \"Padlock with key\",\n \"item.cell_key\": \"Cell key\",\n \"item.canned_food\": \"Canned food\",\n \"item.flour\": \"Flour\",\n \"item.cereal_box\": \"Cereal box\",\n \"item.butter\": \"Butter\",\n \"item.ketchup\": \"Ketchup\",\n \"item.ham\": \"Sliced ham\",\n \"item.yogurt\": \"Yogurt\",\n \"item.apple\": \"Apple\",\n \"item.tomato\": \"Tomato\",\n \"item.frozen_meat\": \"Frozen meat\",\n \"item.ice_cream\": \"Ice cream\",\n \"item.frozen_pizza\": \"Frozen pizza\",\n \"item.frozen_vegetables\": \"Frozen vegetables\",\n \"item.plate\": \"Plate\",\n \"item.bowl\": \"Bowl\",\n \"item.cup\": \"Cup\",\n \"item.cutlery\": \"Cutlery set\",\n \"item.pan\": \"Frying pan\",\n \"item.soap\": \"Soap bar\",\n \"item.shampoo\": \"Shampoo\",\n \"item.toothpaste\": \"Toothpaste\",\n \"item.toothbrush\": \"Toothbrush\",\n \"item.deodorant\": \"Deodorant\",\n \"item.toilet_paper\": \"Toilet paper\",\n \"item.towel\": \"Towel\",\n \"item.detergent\": \"Detergent\",\n \"item.bleach\": \"Bleach\",\n \"item.sponge\": \"Sponge\",\n \"item.jacket\": \"Jacket\",\n \"item.socks\": \"Socks\",\n \"item.underwear\": \"Underwear\",\n \"item.hat\": \"Hat\",\n \"item.scarf\": \"Scarf\",\n \"item.blanket\": \"Blanket\",\n \"item.pillow\": \"Pillow\",\n \"item.documents\": \"Documents\",\n \"item.wallet\": \"Wallet\",\n \"item.phone_charger\": \"Phone charger\",\n \"item.notebook\": \"Notebook\",\n \"item.pen\": \"Pen\",\n \"item.crumpled_paper\": \"Crumpled paper\",\n \"item.empty_bottle\": \"Empty bottle\",\n \"item.food_scraps\": \"Food scraps\",\n \"item.plastic_bag\": \"Plastic bag\",\n \"item.bill\": \"Utility bill\",\n \"item.letter\": \"Letter\",\n \"item.flyer\": \"Flyer\",\n \"item.postcard\": \"Postcard\",\n \"item.tongs\": \"Barbecue tongs\",\n \"item.skewers\": \"Skewers\",\n \"item.firelighter\": \"Fire lighter\",\n \"item.paint_can\": \"Paint can\",\n \"item.ice_pack\": \"Ice pack\",\n \"item.sandwich\": \"Sandwich\",\n \"item.branch\": \"Branch\",\n \"item.stick\": \"Stick\",\n \"item.feather\": \"Feather\",\n \"item.bread_mold\": \"Bread mold\",\n \"item.glass_jar\": \"Glass jar\",\n \"item.broomstick\": \"Broomstick\",\n \"item.barrel\": \"Barrel\",\n \"item.access_badge\": \"Access badge\",\n \"item.insulin\": \"Insulin\",\n \"item.leftover_meal\": \"Leftover meal\",\n \"item.disinfectant\": \"Disinfectant\",\n \"item.seasoning\": \"Seasoning\",\n \"item.stapler\": \"Stapler\",\n \"item.remote_control\": \"Remote control\",\n \"item.dvd\": \"DVD\",\n \"item.cable_bundle\": \"Bundle of cables\",\n \"item.shoe_polish\": \"Shoe polish\",\n \"item.laundry_powder\": \"Laundry powder\",\n \"item.broom\": \"Broom\",\n \"item.rubber_gloves\": \"Rubber gloves\",\n \"item.fabric_softener\": \"Fabric softener\",\n \"item.clothespins\": \"Clothespins\",\n \"item.electrical_tape\": \"Electrical tape\",\n \"item.full_trash_bag\": \"Full trash bag\",\n \"item.food_packaging\": \"Food packaging\",\n \"item.wine_glass\": \"Wine glass\",\n \"item.book\": \"Book\",\n \"item.eyeglasses\": \"Eyeglasses\",\n \"category.food\": \"Food\",\n \"category.drink\": \"Drink\",\n \"category.medical\": \"Medicine and first aid\",\n \"category.tools\": \"Tools\",\n \"category.melee\": \"Melee and silent ranged weapons\",\n \"category.materials\": \"Building and crafting materials\",\n \"category.clothing\": \"Clothing and protection\",\n \"category.bags\": \"Backpacks and containers\",\n \"category.electronics\": \"Electronics, radio and light\",\n \"category.fuel\": \"Fuel and power\",\n \"category.outdoors\": \"Field, fishing and hunting\",\n \"category.books\": \"Books and magazines\",\n \"category.collectibles\": \"History and collectibles\",\n \"category.keys\": \"Keys and access\",\n \"category.ammo\": \"Ammo\",\n \"category.firearms\": \"Firearms\",\n \"category.throwables\": \"Throwables\",\n \"place.house\": \"House / townhouse\",\n \"place.apartment\": \"Apartment building\",\n \"place.supermarket\": \"Supermarket\",\n \"place.pharmacy\": \"Pharmacy\",\n \"place.gun_shop\": \"Gun and hunting shop\",\n \"place.mall\": \"Valley Mall\",\n \"place.police_station\": \"Police station\",\n \"place.hospital\": \"Regional hospital\",\n \"place.school\": \"School\",\n \"place.gas_station\": \"Gas station\",\n \"place.church\": \"Church\",\n \"place.warehouse\": \"Warehouse and metalworks\",\n \"place.farm\": \"Farm and ranch\",\n \"place.military_base\": \"Military base and roadblock\",\n \"place.workshop\": \"Auto repair shop\",\n \"place.car\": \"Abandoned car\",\n \"place.road\": \"Road and campsite\",\n \"place.train\": \"Derailed train\",\n \"place.prison\": \"Penitentiary\",\n \"place.mine\": \"Mine and quarry\",\n \"place.docks\": \"Docks and fish market\",\n \"place.lodge\": \"Inn and cabin\",\n \"place.dam\": \"Hydroelectric dam\",\n \"place.zombie_corpse\": \"Zombie corpse\",\n \"rarity.common\": \"common\",\n \"rarity.uncommon\": \"uncommon\",\n \"rarity.rare\": \"rare\",\n \"rarity.very_rare\": \"very rare\",\n \"rarity.legendary\": \"legendary\",\n \"rarity.unique\": \"unique\",\n \"container.fridge\": \"Fridge\",\n \"container.kitchen_cabinet\": \"Kitchen cabinet\",\n \"container.bathroom_cabinet\": \"Bathroom cabinet\",\n \"container.wardrobe\": \"Wardrobe\",\n \"container.nightstand_drawer\": \"Nightstand and drawer\",\n \"container.bookshelf\": \"Bookshelf\",\n \"container.workbench\": \"Workbench and toolbox\",\n \"container.garage_shelf\": \"Garage shelf\",\n \"container.store_shelf\": \"Store shelf\",\n \"container.stockroom\": \"Stockroom and storage\",\n \"container.locker\": \"Locker\",\n \"container.car_trunk\": \"Glove box and trunk\",\n \"container.military_crate\": \"Military crate\",\n \"container.safe\": \"Safe\",\n \"container.bin\": \"Bin and rubble\",\n \"container.zombie_corpse\": \"Zombie corpse\",\n \"container.counter\": \"Counter\",\n \"recipe.window_barricade\": \"Window barricade\",\n \"recipe.sheet_metal_window\": \"Sheet metal window\",\n \"recipe.furniture_planks\": \"Furniture planks\",\n \"recipe.rags\": \"Rags\",\n \"recipe.clean_bandage\": \"Clean bandage\",\n \"recipe.improvised_suture\": \"Improvised suture\",\n \"recipe.improvised_splint\": \"Improvised splint\",\n \"recipe.boiled_water\": \"Boiled drinking water\",\n \"recipe.treated_water\": \"Treated water\",\n \"recipe.rain_collector\": \"Rain collector\",\n \"recipe.stew\": \"Stew\",\n \"recipe.jerky\": \"Jerky\",\n \"recipe.salted_fish\": \"Salted fish\",\n \"recipe.preserves\": \"Preserves\",\n \"recipe.spear\": \"Spear\",\n \"recipe.nail_bat\": \"Nail bat\",\n \"recipe.magazine_arm_guard\": \"Magazine arm guard\",\n \"recipe.sheet_metal_arm_guard\": \"Sheet metal guard\",\n \"recipe.molotov_cocktail\": \"Molotov cocktail\",\n \"recipe.noise_bomb\": \"Noise bomb\",\n \"recipe.can_alarm\": \"Can alarm\",\n \"recipe.window_barbed_wire\": \"Barbed wire on the window\",\n \"recipe.electric_fence\": \"Electric fence\",\n \"recipe.oil_lamp\": \"Oil lamp\",\n \"recipe.torch\": \"Torch\",\n \"recipe.campfire\": \"Campfire\",\n \"recipe.sandbag\": \"Sandbag\",\n \"recipe.bindle_pack\": \"Bindle pack\",\n \"recipe.improvised_antenna\": \"Improvised antenna\",\n \"recipe.dismantle_electronics\": \"Dismantle electronics\",\n \"recipe.snare_trap\": \"Snare trap\",\n \"recipe.arrows\": \"Arrows\",\n \"recipe.homemade_antibiotic\": \"Homemade antibiotic\"\n}\n","{\n \"item.canned_beans\": \"Feijão em lata\",\n \"item.canned_sardines\": \"Sardinha em lata\",\n \"item.canned_corn_and_peas\": \"Milho e ervilha em lata\",\n \"item.canned_sausages\": \"Salsicha em lata\",\n \"item.condensed_milk\": \"Leite condensado\",\n \"item.military_ration\": \"Ração operacional do Exército\",\n \"item.rice\": \"Arroz (1 kg)\",\n \"item.beans\": \"Feijão seco (1 kg)\",\n \"item.pasta\": \"Macarrão (500 g)\",\n \"item.instant_noodles\": \"Macarrão instantâneo\",\n \"item.cassava_flour\": \"Farinha de mandioca (1 kg)\",\n \"item.biscuits\": \"Biscoito de água e sal\",\n \"item.snack_chips\": \"Salgadinho de pacote\",\n \"item.chocolate_bar\": \"Barra de chocolate\",\n \"item.rapadura\": \"Rapadura\",\n \"item.honey_jar\": \"Pote de mel\",\n \"item.bread\": \"Pão de forma\",\n \"item.cheese\": \"Queijo minas\",\n \"item.mortadella\": \"Mortadela (peça)\",\n \"item.raw_beef\": \"Carne bovina crua (1 kg)\",\n \"item.frozen_chicken\": \"Frango congelado\",\n \"item.eggs\": \"Dúzia de ovos\",\n \"item.banana_bunch\": \"Penca de banana\",\n \"item.orange\": \"Laranja\",\n \"item.potatoes\": \"Batata (1 kg)\",\n \"item.cassava_root\": \"Mandioca (raiz)\",\n \"item.fresh_fish\": \"Peixe fresco\",\n \"item.salted_fish\": \"Peixe salgado\",\n \"item.jerked_beef\": \"Charque\",\n \"item.game_meat\": \"Carne de caça (capivara, javali)\",\n \"item.home_preserves\": \"Conserva caseira (pote)\",\n \"item.dog_food\": \"Ração de cachorro (1 kg)\",\n \"item.sugar\": \"Açúcar (1 kg)\",\n \"item.salt\": \"Sal (1 kg)\",\n \"item.cooking_oil\": \"Óleo de cozinha (900 ml)\",\n \"item.coffee\": \"Café em pó (500 g)\",\n \"item.water_bottle\": \"Água mineral (500 ml)\",\n \"item.water_jug_5l\": \"Galão de água (5 L)\",\n \"item.dirty_water\": \"Água de rio ou poça\",\n \"item.soda_can\": \"Refrigerante (lata)\",\n \"item.juice_box\": \"Suco de caixinha\",\n \"item.milk_carton\": \"Leite longa vida (1 L)\",\n \"item.sports_drink\": \"Isotônico\",\n \"item.energy_drink\": \"Energético (lata)\",\n \"item.coconut_water\": \"Água de coco\",\n \"item.beer_can\": \"Cerveja (lata)\",\n \"item.cachaca\": \"Cachaça (garrafa)\",\n \"item.communion_wine\": \"Vinho de missa\",\n \"item.bandage\": \"Atadura de crepe\",\n \"item.sterile_gauze\": \"Gaze estéril\",\n \"item.adhesive_bandages\": \"Curativo adesivo (caixa)\",\n \"item.medical_tape\": \"Esparadrapo\",\n \"item.alcohol_70\": \"Álcool 70% (500 ml)\",\n \"item.povidone_iodine\": \"Iodopovidona\",\n \"item.saline_iv_bag\": \"Soro fisiológico com equipo\",\n \"item.painkillers\": \"Analgésico (dipirona, 10 comp.)\",\n \"item.ibuprofen\": \"Anti-inflamatório (ibuprofeno)\",\n \"item.tramadol\": \"Analgésico forte (tramadol)\",\n \"item.clonazepam\": \"Calmante (clonazepam)\",\n \"item.amoxicillin\": \"Antibiótico (amoxicilina)\",\n \"item.ceftriaxone\": \"Antibiótico injetável (ceftriaxona)\",\n \"item.syringe\": \"Seringa descartável\",\n \"item.suture_kit\": \"Kit de sutura\",\n \"item.splint\": \"Tala imobilizadora\",\n \"item.first_aid_kit\": \"Kit de primeiros socorros\",\n \"item.exam_gloves\": \"Luvas de procedimento\",\n \"item.n95_mask\": \"Máscara N95\",\n \"item.activated_charcoal\": \"Carvão ativado\",\n \"item.rehydration_salts\": \"Sais de reidratação\",\n \"item.antihistamine\": \"Antialérgico\",\n \"item.antivenom\": \"Soro antiofídico\",\n \"item.thermometer\": \"Termômetro\",\n \"item.maintenance_medication\": \"Remédio de uso contínuo\",\n \"item.multivitamin\": \"Polivitamínico\",\n \"item.hammer\": \"Martelo\",\n \"item.screwdriver\": \"Chave de fenda\",\n \"item.crowbar\": \"Pé de cabra\",\n \"item.handsaw\": \"Serrote\",\n \"item.hacksaw\": \"Serra de arco\",\n \"item.bolt_cutters\": \"Alicate corta-vergalhão\",\n \"item.pliers\": \"Alicate\",\n \"item.adjustable_wrench\": \"Chave inglesa\",\n \"item.mechanic_toolbox\": \"Maleta de ferramentas do mecânico\",\n \"item.car_jack\": \"Macaco e chave de roda\",\n \"item.gas_torch\": \"Maçarico a gás\",\n \"item.inverter_welder\": \"Máquina de solda inversora\",\n \"item.cordless_drill\": \"Parafusadeira a bateria\",\n \"item.shovel\": \"Pá\",\n \"item.hoe\": \"Enxada\",\n \"item.pocket_knife\": \"Canivete multifuncional\",\n \"item.can_opener\": \"Abridor de lata\",\n \"item.scissors\": \"Tesoura\",\n \"item.duct_tape\": \"Fita silver tape\",\n \"item.pot\": \"Panela\",\n \"item.camp_stove\": \"Fogareiro de camping\",\n \"item.sewing_kit\": \"Kit de costura\",\n \"item.lockpick_kit\": \"Kit de chaveiro (gazuas)\",\n \"item.lighter\": \"Isqueiro\",\n \"item.matches\": \"Caixa de fósforos\",\n \"item.flint_striker\": \"Pederneira\",\n \"item.bucket\": \"Balde\",\n \"item.binoculars\": \"Binóculo\",\n \"item.fire_extinguisher\": \"Extintor de pó\",\n \"item.sharpening_stone\": \"Pedra de amolar\",\n \"item.knife\": \"Faca de cozinha\",\n \"item.tactical_knife\": \"Faca tática\",\n \"item.machete\": \"Facão\",\n \"item.meat_cleaver\": \"Cutelo de açougue\",\n \"item.hatchet\": \"Machadinha\",\n \"item.axe\": \"Machado\",\n \"item.baseball_bat\": \"Taco de beisebol\",\n \"item.nail_bat\": \"Taco com pregos\",\n \"item.iron_pipe\": \"Cano de ferro\",\n \"item.sledgehammer\": \"Marreta\",\n \"item.pickaxe\": \"Picareta\",\n \"item.sickle\": \"Foice\",\n \"item.police_baton\": \"Tonfa policial\",\n \"item.cast_iron_skillet\": \"Frigideira de ferro\",\n \"item.improvised_spear\": \"Lança improvisada\",\n \"item.chainsaw\": \"Motosserra\",\n \"item.slingshot\": \"Estilingue\",\n \"item.recurve_bow\": \"Arco recurvo\",\n \"item.crossbow\": \"Besta\",\n \"item.arrows_and_bolts\": \"Flechas e virotes (6)\",\n \"item.wooden_plank\": \"Tábua\",\n \"item.nails\": \"Pregos (caixa de 100)\",\n \"item.screws\": \"Parafusos (caixa de 50)\",\n \"item.sheet_metal\": \"Chapa de metal\",\n \"item.scrap_metal\": \"Sucata de metal\",\n \"item.wire_roll\": \"Arame (rolo de 10 m)\",\n \"item.barbed_wire\": \"Arame farpado (rolo de 25 m)\",\n \"item.rope\": \"Corda (15 m)\",\n \"item.tarp\": \"Lona (4 × 4 m)\",\n \"item.raffia_sack\": \"Saco de ráfia\",\n \"item.bricks\": \"Tijolos (10)\",\n \"item.cement_bag\": \"Cimento (saco de 25 kg)\",\n \"item.rag\": \"Trapo\",\n \"item.glass_bottle\": \"Garrafa de vidro vazia\",\n \"item.pet_bottle\": \"Garrafa PET vazia\",\n \"item.empty_can\": \"Lata vazia\",\n \"item.glass_shards\": \"Cacos de vidro\",\n \"item.epoxy_glue\": \"Cola epóxi\",\n \"item.electronic_components\": \"Componentes eletrônicos\",\n \"item.copper_wire\": \"Fio de cobre (5 m)\",\n \"item.firewood\": \"Lenha\",\n \"item.rebar\": \"Vergalhão\",\n \"item.lubricant_spray\": \"Óleo lubrificante spray\",\n \"item.tshirt\": \"Camiseta\",\n \"item.hoodie\": \"Moletom\",\n \"item.denim_jacket\": \"Jaqueta jeans\",\n \"item.leather_motorcycle_jacket\": \"Jaqueta de motociclista (couro)\",\n \"item.jeans\": \"Calça jeans\",\n \"item.leather_motorcycle_pants\": \"Calça de motociclista\",\n \"item.army_camouflage_uniform\": \"Farda camuflada do Exército\",\n \"item.mechanic_coveralls\": \"Macacão de mecânico\",\n \"item.firefighter_suit\": \"Roupa de bombeiro\",\n \"item.beekeeper_suit\": \"Roupa de apicultor\",\n \"item.raincoat\": \"Capa de chuva\",\n \"item.padded_coat\": \"Casaco acolchoado\",\n \"item.motorcycle_helmet\": \"Capacete de moto fechado\",\n \"item.hard_hat\": \"Capacete de obra (EPI)\",\n \"item.safety_goggles\": \"Óculos de proteção\",\n \"item.leather_work_gloves\": \"Luvas de couro (raspa)\",\n \"item.combat_boots\": \"Coturno\",\n \"item.rubber_boots\": \"Bota de borracha\",\n \"item.sneakers\": \"Tênis de corrida\",\n \"item.flip_flops\": \"Chinelo de dedo\",\n \"item.magazine_arm_guard\": \"Braçadeira de revista\",\n \"item.sheet_metal_forearm_guard\": \"Protetor de antebraço de chapa\",\n \"item.ballistic_vest\": \"Coletes balísticos (II-A, III-A, III)\",\n \"item.shopping_bag\": \"Sacola de mercado\",\n \"item.trash_bag\": \"Saco de lixo\",\n \"item.fanny_pack\": \"Pochete\",\n \"item.crossbody_bag\": \"Bolsa transversal\",\n \"item.backpack\": \"Mochila escolar\",\n \"item.delivery_bag\": \"Bag de entregador\",\n \"item.hiking_backpack_40l\": \"Mochila de trilha 40 L\",\n \"item.military_backpack\": \"Mochila militar\",\n \"item.trekking_backpack_70l\": \"Mochila cargueira 70 L\",\n \"item.rolling_suitcase\": \"Mala de rodinha\",\n \"item.tactical_vest\": \"Colete tático\",\n \"item.tool_belt\": \"Cinto de ferramentas\",\n \"item.cooler_box\": \"Caixa térmica\",\n \"item.shopping_cart\": \"Carrinho de mercado\",\n \"item.wheelbarrow\": \"Carrinho de mão\",\n \"item.flashlight\": \"Lanterna (2 pilhas AA)\",\n \"item.headlamp\": \"Lanterna de cabeça\",\n \"item.batteries\": \"Pilhas AA (par)\",\n \"item.battery_9v\": \"Bateria 9 V\",\n \"item.power_bank\": \"Power bank\",\n \"item.folding_solar_panel\": \"Painel solar dobrável\",\n \"item.portable_radio\": \"Rádio AM/FM a pilha\",\n \"item.walkie_talkies\": \"Walkie-talkie (par)\",\n \"item.cb_radio\": \"Rádio amador PX\",\n \"item.military_radio\": \"Rádio militar de longo alcance\",\n \"item.portable_generator\": \"Gerador portátil a gasolina\",\n \"item.led_camp_lantern\": \"Lampião LED de camping\",\n \"item.mobile_phone\": \"Celular\",\n \"item.laptop\": \"Notebook\",\n \"item.windup_alarm_clock\": \"Despertador de corda\",\n \"item.car_alarm_remote\": \"Controle de alarme de carro\",\n \"item.electric_fence_energizer\": \"Eletrificador de cerca rural\",\n \"item.extension_cord\": \"Extensão elétrica 20 m\",\n \"item.candles\": \"Vela\",\n \"item.night_vision_goggles\": \"Óculos de visão noturna\",\n \"item.fuel_jerrycan\": \"Galão de combustível 20 L\",\n \"item.gasoline\": \"Gasolina (litro)\",\n \"item.diesel\": \"Diesel (litro)\",\n \"item.lpg_cylinder_13kg\": \"Botijão de gás P13\",\n \"item.gas_cartridge\": \"Cartucho de gás\",\n \"item.kerosene\": \"Querosene (1 L)\",\n \"item.charcoal_bag\": \"Carvão (saco de 3 kg)\",\n \"item.car_battery_12v\": \"Bateria 12 V\",\n \"item.motor_oil\": \"Óleo de motor\",\n \"item.bean_seeds\": \"Sementes de feijão\",\n \"item.corn_seeds\": \"Sementes de milho\",\n \"item.pumpkin_seeds\": \"Sementes de abóbora\",\n \"item.kale_and_lettuce_seeds\": \"Sementes de couve e alface\",\n \"item.cassava_cuttings\": \"Rama de mandioca (maniva)\",\n \"item.fertilizer_bag\": \"Adubo (saco de 10 kg)\",\n \"item.watering_can\": \"Regador\",\n \"item.fishing_rod\": \"Vara de pesca\",\n \"item.fishing_tackle_box\": \"Caixa de pesca (anzol, linha, isca)\",\n \"item.fishing_net\": \"Rede de pesca\",\n \"item.snare_trap\": \"Armadilha de laço\",\n \"item.skill_book\": \"Livro de habilidade (volumes 1 a 5)\",\n \"item.technical_manual\": \"Manual técnico\",\n \"item.diy_magazine\": \"Revista Faça Você Mesmo\",\n \"item.magazines_and_comics\": \"Revista e gibi\",\n \"item.farmers_almanac\": \"Almanaque do agricultor\",\n \"item.note\": \"Bilhete e carta\",\n \"item.photo\": \"Fotografia\",\n \"item.city_map\": \"Mapa da cidade anotado\",\n \"item.road_map\": \"Mapa rodoviário\",\n \"item.dog_tag\": \"Plaqueta de identificação militar\",\n \"item.cash\": \"Maço de dinheiro\",\n \"item.cigarettes\": \"Maço de cigarro\",\n \"item.house_key\": \"Chave de casa\",\n \"item.car_key\": \"Chave de carro\",\n \"item.master_key\": \"Chave mestra da portaria\",\n \"item.janitor_keys\": \"Molho de chaves do zelador\",\n \"item.generator_key\": \"Chave do gerador do hospital\",\n \"item.safe_key\": \"Chave do cofre da delegacia\",\n \"item.padlock_key\": \"Cadeado com chave\",\n \"item.cell_key\": \"Chave de cela\",\n \"item.canned_food\": \"Comida enlatada\",\n \"item.flour\": \"Farinha\",\n \"item.cereal_box\": \"Caixa de cereal\",\n \"item.butter\": \"Manteiga\",\n \"item.ketchup\": \"Ketchup\",\n \"item.ham\": \"Presunto fatiado\",\n \"item.yogurt\": \"Iogurte\",\n \"item.apple\": \"Maçã\",\n \"item.tomato\": \"Tomate\",\n \"item.frozen_meat\": \"Carne congelada\",\n \"item.ice_cream\": \"Sorvete\",\n \"item.frozen_pizza\": \"Pizza congelada\",\n \"item.frozen_vegetables\": \"Legumes congelados\",\n \"item.plate\": \"Prato\",\n \"item.bowl\": \"Tigela\",\n \"item.cup\": \"Copo\",\n \"item.cutlery\": \"Talheres\",\n \"item.pan\": \"Frigideira\",\n \"item.soap\": \"Sabonete\",\n \"item.shampoo\": \"Shampoo\",\n \"item.toothpaste\": \"Pasta de dente\",\n \"item.toothbrush\": \"Escova de dente\",\n \"item.deodorant\": \"Desodorante\",\n \"item.toilet_paper\": \"Papel higiênico\",\n \"item.towel\": \"Toalha\",\n \"item.detergent\": \"Detergente\",\n \"item.bleach\": \"Água sanitária\",\n \"item.sponge\": \"Esponja\",\n \"item.jacket\": \"Jaqueta\",\n \"item.socks\": \"Meias\",\n \"item.underwear\": \"Roupa íntima\",\n \"item.hat\": \"Chapéu\",\n \"item.scarf\": \"Cachecol\",\n \"item.blanket\": \"Cobertor\",\n \"item.pillow\": \"Travesseiro\",\n \"item.documents\": \"Documentos\",\n \"item.wallet\": \"Carteira\",\n \"item.phone_charger\": \"Carregador de celular\",\n \"item.notebook\": \"Caderno\",\n \"item.pen\": \"Caneta\",\n \"item.crumpled_paper\": \"Papel amassado\",\n \"item.empty_bottle\": \"Garrafa vazia\",\n \"item.food_scraps\": \"Restos de comida\",\n \"item.plastic_bag\": \"Sacola plástica\",\n \"item.bill\": \"Conta de luz\",\n \"item.letter\": \"Carta\",\n \"item.flyer\": \"Panfleto\",\n \"item.postcard\": \"Cartão postal\",\n \"item.tongs\": \"Pegador de churrasco\",\n \"item.skewers\": \"Espetos\",\n \"item.firelighter\": \"Acendedor\",\n \"item.paint_can\": \"Lata de tinta\",\n \"item.ice_pack\": \"Gelo reutilizável\",\n \"item.sandwich\": \"Sanduíche\",\n \"item.branch\": \"Galho\",\n \"item.stick\": \"Graveto\",\n \"item.feather\": \"Pena\",\n \"item.bread_mold\": \"Bolor de pão\",\n \"item.glass_jar\": \"Pote de vidro\",\n \"item.broomstick\": \"Cabo de vassoura\",\n \"item.barrel\": \"Barril\",\n \"item.access_badge\": \"Crachá de acesso\",\n \"item.insulin\": \"Insulina\",\n \"item.leftover_meal\": \"Sobra de refeição\",\n \"item.disinfectant\": \"Desinfetante\",\n \"item.seasoning\": \"Tempero\",\n \"item.stapler\": \"Grampeador\",\n \"item.remote_control\": \"Controle remoto\",\n \"item.dvd\": \"DVD\",\n \"item.cable_bundle\": \"Feixe de cabos\",\n \"item.shoe_polish\": \"Graxa de sapato\",\n \"item.laundry_powder\": \"Sabão em pó\",\n \"item.broom\": \"Vassoura\",\n \"item.rubber_gloves\": \"Luvas de borracha\",\n \"item.fabric_softener\": \"Amaciante\",\n \"item.clothespins\": \"Prendedores de roupa\",\n \"item.electrical_tape\": \"Fita isolante\",\n \"item.full_trash_bag\": \"Saco de lixo cheio\",\n \"item.food_packaging\": \"Embalagem de comida\",\n \"item.wine_glass\": \"Taça de vinho\",\n \"item.book\": \"Livro\",\n \"item.eyeglasses\": \"Óculos\",\n \"category.food\": \"Comida\",\n \"category.drink\": \"Bebida\",\n \"category.medical\": \"Medicina e primeiros socorros\",\n \"category.tools\": \"Ferramentas\",\n \"category.melee\": \"Armas brancas e de disparo silencioso\",\n \"category.materials\": \"Materiais de construção e crafting\",\n \"category.clothing\": \"Roupas e proteção\",\n \"category.bags\": \"Mochilas e contêineres\",\n \"category.electronics\": \"Eletrônicos, rádio e luz\",\n \"category.fuel\": \"Combustível e energia\",\n \"category.outdoors\": \"Campo, pesca e caça\",\n \"category.books\": \"Livros e revistas\",\n \"category.collectibles\": \"História e colecionáveis\",\n \"category.keys\": \"Chaves e acesso\",\n \"category.ammo\": \"Munição\",\n \"category.firearms\": \"Armas de fogo\",\n \"category.throwables\": \"Arremessáveis\",\n \"place.house\": \"Casa / sobrado\",\n \"place.apartment\": \"Prédio de apartamentos\",\n \"place.supermarket\": \"Mercado\",\n \"place.pharmacy\": \"Farmácia\",\n \"place.gun_shop\": \"Loja de armas e caça\",\n \"place.mall\": \"Shopping Vale\",\n \"place.police_station\": \"Delegacia\",\n \"place.hospital\": \"Hospital Regional\",\n \"place.school\": \"Escola\",\n \"place.gas_station\": \"Posto de gasolina\",\n \"place.church\": \"Igreja\",\n \"place.warehouse\": \"Galpão e metalúrgica\",\n \"place.farm\": \"Fazenda e sítio\",\n \"place.military_base\": \"Base militar e bloqueio\",\n \"place.workshop\": \"Oficina mecânica\",\n \"place.car\": \"Carro abandonado\",\n \"place.road\": \"Estrada e acampamento\",\n \"place.train\": \"Trem descarrilado\",\n \"place.prison\": \"Penitenciária\",\n \"place.mine\": \"Mina e pedreira\",\n \"place.docks\": \"Docas e peixaria\",\n \"place.lodge\": \"Pousada e chalé\",\n \"place.dam\": \"Hidrelétrica\",\n \"place.zombie_corpse\": \"Corpo de zumbi\",\n \"rarity.common\": \"comum\",\n \"rarity.uncommon\": \"incomum\",\n \"rarity.rare\": \"raro\",\n \"rarity.very_rare\": \"muito raro\",\n \"rarity.legendary\": \"lendário\",\n \"rarity.unique\": \"único\",\n \"container.fridge\": \"Geladeira\",\n \"container.kitchen_cabinet\": \"Armário de cozinha\",\n \"container.bathroom_cabinet\": \"Armário do banheiro\",\n \"container.wardrobe\": \"Guarda-roupa\",\n \"container.nightstand_drawer\": \"Criado-mudo e gaveta\",\n \"container.bookshelf\": \"Estante\",\n \"container.workbench\": \"Bancada e caixa de ferramentas\",\n \"container.garage_shelf\": \"Prateleira de garagem\",\n \"container.store_shelf\": \"Prateleira de loja\",\n \"container.stockroom\": \"Depósito e estoque\",\n \"container.locker\": \"Armário de vestiário\",\n \"container.car_trunk\": \"Porta-luvas e porta-malas\",\n \"container.military_crate\": \"Caixa militar\",\n \"container.safe\": \"Cofre\",\n \"container.bin\": \"Lixeira e entulho\",\n \"container.zombie_corpse\": \"Corpo de zumbi\",\n \"container.counter\": \"Balcão\",\n \"recipe.window_barricade\": \"Barricada de janela\",\n \"recipe.sheet_metal_window\": \"Janela de chapa\",\n \"recipe.furniture_planks\": \"Tábuas de móvel\",\n \"recipe.rags\": \"Trapos\",\n \"recipe.clean_bandage\": \"Atadura limpa\",\n \"recipe.improvised_suture\": \"Sutura improvisada\",\n \"recipe.improvised_splint\": \"Tala improvisada\",\n \"recipe.boiled_water\": \"Água potável fervida\",\n \"recipe.treated_water\": \"Água tratada\",\n \"recipe.rain_collector\": \"Coletor de chuva\",\n \"recipe.stew\": \"Ensopado\",\n \"recipe.jerky\": \"Charque\",\n \"recipe.salted_fish\": \"Peixe salgado\",\n \"recipe.preserves\": \"Conserva\",\n \"recipe.spear\": \"Lança\",\n \"recipe.nail_bat\": \"Taco com pregos\",\n \"recipe.magazine_arm_guard\": \"Braçadeira de revista\",\n \"recipe.sheet_metal_arm_guard\": \"Protetor de chapa\",\n \"recipe.molotov_cocktail\": \"Coquetel molotov\",\n \"recipe.noise_bomb\": \"Bomba de barulho\",\n \"recipe.can_alarm\": \"Alarme de latas\",\n \"recipe.window_barbed_wire\": \"Arame farpado na janela\",\n \"recipe.electric_fence\": \"Cerca elétrica\",\n \"recipe.oil_lamp\": \"Lamparina\",\n \"recipe.torch\": \"Tocha\",\n \"recipe.campfire\": \"Fogueira\",\n \"recipe.sandbag\": \"Saco de areia\",\n \"recipe.bindle_pack\": \"Mochila de trouxa\",\n \"recipe.improvised_antenna\": \"Antena improvisada\",\n \"recipe.dismantle_electronics\": \"Desmontar eletrônico\",\n \"recipe.snare_trap\": \"Armadilha de laço\",\n \"recipe.arrows\": \"Flechas\",\n \"recipe.homemade_antibiotic\": \"Antibiótico caseiro\"\n}\n","import enJson from './data/locales/en.json'\nimport ptBrJson from './data/locales/pt-BR.json'\n\nexport type GoodsLocale = 'en' | 'pt-BR'\n\n/** Texts by key: `item.<id>`, `category.<id>`, `place.<id>`, `rarity.<id>`, `container.<id>`, `recipe.<id>`. The pt-BR names are the team's. */\nexport type GoodsStrings = Readonly<Record<string, string>>\n\nexport const GOODS_STRINGS: Readonly<Record<GoodsLocale, GoodsStrings>> = { en: enJson, 'pt-BR': ptBrJson }\n\n/** `pt`, `pt-BR` and `pt_br` give the Portuguese texts, anything else English. */\nexport const pickGoodsLocale = (locale?: string): GoodsLocale => (locale?.toLowerCase().startsWith('pt') ? 'pt-BR' : 'en')\n\n/** The text of `key`, or the key itself when it has none. */\nexport const goodsText = (key: string, locale?: string): string => GOODS_STRINGS[pickGoodsLocale(locale)][key] ?? key\n"],"mappings":"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","names":["freshness","deepMerge"]}
|