Compare commits

..

3 commits

Author SHA1 Message Date
041d175757 fix: rfc9116 compatible and signed security.txt (#26)
Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/26
2025-03-05 12:37:49 +00:00
vlw
0bb7a3a8be fix: allow index of everything in robots.txt (#25)
Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/25
Co-authored-by: vlw <victor@vlw.se>
Co-committed-by: vlw <victor@vlw.se>
2025-03-05 12:37:21 +00:00
0baa6f8d85 chore: clean up some missed references to battlestation (#27)
It looks like I missed a few references to the "battlestation" pages and API that I removed in #24

Reviewed-on: https://codeberg.org/vlw/vlw.se/pulls/27
2025-03-05 12:37:01 +00:00
5 changed files with 26 additions and 545 deletions

View file

@ -1,36 +0,0 @@
<style><?= VV::css("public/assets/css/pages/about/battlestation-retired") ?></style>
<section class="title">
<h1>Retired components</h1>
<p>I'd be happy to send you any component that you find here for "free". The only thing I ask in return is that you pay for shipping.</p>
<p>This page is still a work-in-progress. You can use my API to get a list of retired components by hardware category for now.</p>
</section>
<section class="actions">
<a href="<?= $_ENV["api"]["base_url"] ?>battlestation/chassis?is_retired=true" target="_blank">
<button class="inline">Cases (API)</button>
</a>
<a href="<?= $_ENV["api"]["base_url"] ?>battlestation/cpu?is_retired=true" target="_blank">
<button class="inline">CPUs (API)</button>
</a>
<a href="<?= $_ENV["api"]["base_url"] ?>battlestation/gpu?is_retired=true" target="_blank">
<button class="inline">GPUs (API)</button>
</a>
<a href="<?= $_ENV["api"]["base_url"] ?>battlestation/mb?is_retired=true" target="_blank">
<button class="inline">Motherboards (API)</button>
</a>
<a href="<?= $_ENV["api"]["base_url"] ?>battlestation/psu?is_retired=true" target="_blank">
<button class="inline">PSUs (API)</button>
</a>
<a href="<?= $_ENV["api"]["base_url"] ?>battlestation/storage?is_retired=true" target="_blank">
<button class="inline">Storage (API)</button>
</a>
</section>
<section class="title">
<h2>Found something you like?</h2>
<p>Please note; I can't guarantee the thing you want will work as expected, or work at all! But I will test the compontent for you if I still have means at hand to do so.</p>
</section>
<section class="actions">
<a href="/contact">
<button class="inline solid">Contact me</button>
</a>
</section>
<script><?= VV::js("public/assets/js/pages/about/battlestation-retired") ?></script>

View file

@ -1,496 +0,0 @@
<?php
use Vegvisir\Path;
use VLW\Client\API;
use VLW\API\Endpoints;
use VLW\Database\Tables\Battlestation\{
MbTable,
CpuTable,
GpuTable,
PsuTable,
DramTable,
StorageTable,
ChassisTable
};
use VLW\Database\Tables\Battlestation\Config\{
MbPsuTable,
MbGpuTable,
MbDramTable,
ConfigModel,
MbStorageTable,
ChassisMbTable,
MbCpuCoolerModel,
MbStorageSlotFormfactorEnum
};
require_once VV::root("src/client/API.php");
require_once VV::root("api/src/Endpoints.php");
// Load hardware database models
require_once VV::root("api/src/Database/Tables/Battlestation/Mb.php");
require_once VV::root("api/src/Database/Tables/Battlestation/Cpu.php");
require_once VV::root("api/src/Database/Tables/Battlestation/Gpu.php");
require_once VV::root("api/src/Database/Tables/Battlestation/Psu.php");
require_once VV::root("api/src/Database/Tables/Battlestation/Dram.php");
require_once VV::root("api/src/Database/Tables/Battlestation/Storage.php");
require_once VV::root("api/src/Database/Tables/Battlestation/Chassis.php");
// Load hardware config database models
require_once VV::root("api/src/Database/Tables/Battlestation/Config/MbPsu.php");
require_once VV::root("api/src/Database/Tables/Battlestation/Config/MbGpu.php");
require_once VV::root("api/src/Database/Tables/Battlestation/Config/MbDram.php");
require_once VV::root("api/src/Database/Tables/Battlestation/Config/Config.php");
require_once VV::root("api/src/Database/Tables/Battlestation/Config/MbStorage.php");
require_once VV::root("api/src/Database/Tables/Battlestation/Config/ChassisMb.php");
require_once VV::root("api/src/Database/Tables/Battlestation/Config/MbCpuCooler.php");
const GIGA = 0x3B9ACA00;
const MEGA = 0xF4240;
// Connect to VLW API
$api = new API();
$config = $api->call(Endpoints::BATTLESTATION->value)->get();
?>
<style><?= VV::css("public/assets/css/pages/about/battlestation") ?></style>
<?php if ($config->ok): ?>
<section class="title">
<h1>Battle&shy;stations</h1>
<p>I'd be happy to send you, dear reader, any component that you find here for "free" that hasn't been retired yet. The only thing I ask in return is that you pay for shipping.</p>
<p>I can't guarantee the thing you want will work as expected, or work at all! But I will test the compontent for you if I still have means at hand to do so.</p>
<div>
<a href="/about/battlestation-retired"><button class="inline solid">Retired components</button></a>
<a href="/contact"><button class="inline">Contact me</button></a>
</div>
</section>
<?php foreach ($config->json() as $config): ?>
<?php
// Get motherboard details by ref_mb_id from config
$motherboard = $api->call(Endpoints::BATTLESTATION_MB->value)->params([
MbTable::ID->value => $config[ChassisMbTable::REF_MB_ID->value]
])->get()->json()[0];
?>
<section class="heading">
<h1><?= $config[ConfigModel::FRIENDLY_NAME->value] ?? "Lucious" ?></h1>
<p>This rig was built: <?= date(API::DATE_FORMAT, $config[ConfigModel::DATE_BUILT->value]) ?></p>
</section>
<section class="config"
data-mb="1"
data-cpu="<?= count($motherboard["cpus"]) ?>"
data-psu="<?= count($motherboard["psus"]) ?>"
data-gpu="<?= count($motherboard["gpus"]) ?>"
data-dram="<?= count($motherboard["dram"]) ?>"
data-case="<?= count($motherboard["chassis"]) ?>"
data-drives-mdottwo="<?= count(array_keys(array_column($motherboard["storage"], MbStorageTable::SLOT_FORMFACTOR->value), MbStorageSlotFormfactorEnum::MDOTTWO->value)) ?>"
data-drives-twodotfive="<?= count(array_keys(array_column($motherboard["storage"], MbStorageTable::SLOT_FORMFACTOR->value), MbStorageSlotFormfactorEnum::TWODOTFIVE->value)) ?>"
data-drives-threedotfive="<?= count(array_keys(array_column($motherboard["storage"], MbStorageTable::SLOT_FORMFACTOR->value), MbStorageSlotFormfactorEnum::THREEDOTFIVE->value)) ?>"
>
<?= VV::embed("public/assets/media/battlestation.svg") ?>
<div class="specs">
<?php // Show motherboard details ?>
<?php if ($motherboard): ?>
<div data-target="mb" class="spec">
<p>Motherboard</p>
<h3><?= $motherboard[MbTable::VENDOR_NAME->value] ?> <span><?= $motherboard[MbTable::VENDOR_MODEL->value] ?></span></h3>
<div>
<div>
<label>Formfactor</label>
<p><?= $motherboard[MbTable::FORMFACTOR->value] ?></p>
</div>
<div>
<label>Brand name</label>
<p><?= $motherboard[MbTable::VENDOR_NAME->value] ?></p>
</div>
<div>
<label>Brand model</label>
<p><?= $motherboard[MbTable::VENDOR_MODEL->value] ?></p>
</div>
<div>
<label>LAN</label>
<p><?= $motherboard[MbTable::NETWORK_ETHERNET->value] ?? "No LAN" ?></p>
</div>
<div>
<label>WLAN</label>
<p><?= $motherboard[MbTable::NETWORK_WLAN->value] ?? "No WLAN" ?></p>
</div>
<div>
<label>Bluetooth</label>
<p><?= $motherboard[MbTable::NETWORK_BLUETOOTH->value] ?? "No Bluetooth" ?></p>
</div>
<div>
<label>Aquired</label>
<p><?= date(API::DATE_FORMAT, $motherboard[MbTable::DATE_AQUIRED->value]) ?></p>
</div>
<?php if ($motherboard[MbTable::IS_RETIRED->value]): ?>
<div>
<label>Retired</label>
<p>Yes</p>
</div>
<?php endif; ?>
</div>
</div>
<?php endif; ?>
<?php // List all cases (lol) ?>
<?php foreach ($motherboard["chassis"] as $mb_chassis): ?>
<?php // Get case details from endpoint by id ?>
<?php $case = $api->call(Endpoints::BATTLESTATION_CHASSIS->value)->params([
ChassisTable::ID->value => $mb_chassis[ChassisMbTable::REF_CHASSIS_ID->value]
])->get()->json()[0]; ?>
<div data-target="case" class="spec">
<p>Case</p>
<h3><?= $case[ChassisTable::VENDOR_NAME->value] ?> <span><?= $case[ChassisTable::VENDOR_MODEL->value] ?></span></h3>
<div>
<div>
<label>Brand name</label>
<p><?= $case[ChassisTable::VENDOR_NAME->value] ?></p>
</div>
<div>
<label>Brand model</label>
<p><?= $case[ChassisTable::VENDOR_MODEL->value] ?></p>
</div>
<div>
<label> 2.5" slots</label>
<p><?= $case[ChassisTable::STORAGE_TWOINCHFIVE->value] ?></p>
</div>
<div>
<label> 3.5" slots</label>
<p><?= $case[ChassisTable::STORAGE_THREEINCHFIVE->value] ?></p>
</div>
<div>
<label>Aquired</label>
<p><?= date(API::DATE_FORMAT, $case[ChassisTable::DATE_AQUIRED->value]) ?></p>
</div>
<?php if ($case[ChassisTable::IS_RETIRED->value]): ?>
<div>
<label>Retired</label>
<p>Yes</p>
</div>
<?php endif; ?>
</div>
</div>
<?php endforeach; ?>
<?php // List all CPUs ?>
<?php foreach ($motherboard["cpus"] as $mb_cpu): ?>
<?php // Get case details from endpoint by id ?>
<?php $cpu = $api->call(Endpoints::BATTLESTATION_CPU->value)->params([
CpuTable::ID->value => $mb_cpu[MbCpuCoolerModel::REF_CPU_ID->value]
])->get()->json()[0]; ?>
<div data-target="cpu" class="spec">
<p>CPU</p>
<h3><?= $cpu[CpuTable::VENDOR_NAME->value] ?> <span><?= $cpu[CpuTable::VENDOR_MODEL->value] ?></span></h3>
<div>
<div>
<label>Brand name</label>
<p><?= $cpu[CpuTable::VENDOR_NAME->value] ?></p>
</div>
<div>
<label>Brand model</label>
<p><?= $cpu[CpuTable::VENDOR_MODEL->value] ?></p>
</div>
<div>
<label>Class</label>
<p><?= $cpu[CpuTable::CPU_CLASS->value] ?></p>
</div>
<div>
<label>Base Clockspeed</label>
<p><?= $cpu[CpuTable::CLOCK_BASE->value] / GIGA ?>GHz</p>
</div>
<div>
<label>Turbo Clockspeed</label>
<p><?= $cpu[CpuTable::CLOCK_TURBO->value] / GIGA ?>GHz</p>
</div>
<div>
<label> cores (P/E)</label>
<p><?= $cpu[CpuTable::CORE_COUNT_PERFORMANCE->value] + $cpu[CpuTable::CORE_COUNT_EFFICIENCY->value] ?> (<?= $cpu[CpuTable::CORE_COUNT_PERFORMANCE->value] ?>/<?= $cpu[CpuTable::CORE_COUNT_EFFICIENCY->value] ?>)</p>
</div>
<div>
<label> total threads</label>
<p><?= $cpu[CpuTable::CORE_THREADS->value] ?></p>
</div>
<div>
<label>Aquired</label>
<p><?= date(API::DATE_FORMAT, $cpu[CpuTable::DATE_AQUIRED->value]) ?></p>
</div>
<?php if ($cpu[CpuTable::IS_RETIRED->value]): ?>
<div>
<label>Retired</label>
<p>Yes</p>
</div>
<?php endif; ?>
</div>
<div>
<div>
<label>In motherboard slot number</label>
<p><?= $mb_cpu[MbCpuCoolerModel::SOCKET->value] ?></p>
</div>
<div>
<label>Motherboard slot type</label>
<p><?= $mb_cpu[MbCpuCoolerModel::SOCKET_TYPE->value] ?></p>
</div>
</div>
</div>
<?php endforeach; ?>
<?php // List all GPUs ?>
<?php foreach ($motherboard["gpus"] as $mb_gpu): ?>
<?php // Get case details from endpoint by id ?>
<?php $gpu = $api->call(Endpoints::BATTLESTATION_GPU->value)->params([
GpuTable::ID->value => $mb_gpu[MbGpuTable::REF_GPU_ID->value]
])->get()->json()[0]; ?>
<div data-target="gpu" class="spec">
<p>GPU</p>
<h3><?= $gpu[GpuTable::VENDOR_NAME->value] ?> <span><?= $gpu[GpuTable::VENDOR_CHIP_MODEL->value] ?></span></h3>
<div>
<div>
<label>Chip brand name</label>
<p><?= $gpu[GpuTable::VENDOR_CHIP_NAME->value] ?></p>
</div>
<div>
<label>Chip brand model</label>
<p><?= $gpu[GpuTable::VENDOR_CHIP_MODEL->value] ?></p>
</div>
<div>
<label>VRAM</label>
<p><?= $gpu[GpuTable::MEMORY->value] / GIGA ?>GB</p>
</div>
<div>
<label>Brand name</label>
<p><?= $gpu[GpuTable::VENDOR_NAME->value] ?></p>
</div>
<div>
<label>Brand model</label>
<p><?= $gpu[GpuTable::VENDOR_MODEL->value] ?></p>
</div>
<div>
<label>Aquired</label>
<p><?= date(API::DATE_FORMAT, $gpu[GpuTable::DATE_AQUIRED->value]) ?></p>
</div>
<?php if ($gpu[GpuTable::IS_RETIRED->value]): ?>
<div>
<label>Retired</label>
<p>Yes</p>
</div>
<?php endif; ?>
</div>
</div>
<?php endforeach; ?>
<?php // List all PSUs ?>
<?php foreach ($motherboard["psus"] as $mb_psu): ?>
<?php // Get case details from endpoint by id ?>
<?php $psu = $api->call(Endpoints::BATTLESTATION_PSU->value)->params([
PsuTable::ID->value => $mb_psu[MbPsuTable::REF_PSU_ID->value]
])->get()->json()[0]; ?>
<div data-target="psu" class="spec">
<p>PSU</p>
<h3><?= $psu[PsuTable::VENDOR_NAME->value] ?> <span><?= $psu[PsuTable::VENDOR_MODEL->value] ?></span> <span><?= $psu[PsuTable::POWER->value] ?>W</span></h3>
<div>
<div>
<label>Power</label>
<p><?= $psu[PsuTable::POWER->value] ?>W</p>
</div>
<div>
<label>Brand name</label>
<p><?= $psu[PsuTable::VENDOR_NAME->value] ?></p>
</div>
<div>
<label>Brand model</label>
<p><?= $psu[PsuTable::VENDOR_MODEL->value] ?></p>
</div>
<div>
<label>Is modular?</label>
<p><?= $psu[PsuTable::TYPE_MODULAR->value] === "TRUE" ? "Yes" : "No" ?></p>
</div>
<div>
<label>80+ Rating</label>
<p><?= $psu[PsuTable::EIGHTYPLUS_RATING->value] ?? "None" ?></p>
</div>
<div>
<label>Aquired</label>
<p><?= date(API::DATE_FORMAT, $psu[PsuTable::DATE_AQUIRED->value]) ?></p>
</div>
<?php if ($psu[PsuTable::IS_RETIRED->value]): ?>
<div>
<label>Retired</label>
<p>Yes</p>
</div>
<?php endif; ?>
</div>
</div>
<?php endforeach; ?>
<div class="group">
<p>DRAM</p>
<?= VV::embed("public/assets/media/icons/chevron.svg") ?>
</div>
<div class="collection">
<?php // List all DRAM ?>
<?php foreach ($motherboard["dram"] as $mb_dram): ?>
<?php // Get case details from endpoint by id ?>
<?php $dram = $api->call(Endpoints::BATTLESTATION_DRAM->value)->params([
DramTable::ID->value => $mb_dram[MbDramTable::REF_DRAM_ID->value]
])->get()->json()[0]; ?>
<div data-target="dram" class="spec">
<p>DRAM - <?= $dram[DramTable::TECHNOLOGY->value] ?></p>
<h3><?= $dram[DramTable::VENDOR_NAME->value] ?>
<span><?= $dram[DramTable::CAPACITY->value] / GIGA ?>GB</span>
<span><?= $dram[DramTable::SPEED->value] / MEGA ?>MHz</span>
</h3>
<div>
<div>
<label>Capacity</label>
<p><?= $dram[DramTable::CAPACITY->value] / GIGA ?>GB</p>
</div>
<div>
<label>Speed</label>
<p><?= $dram[DramTable::SPEED->value] / MEGA ?>MHz</p>
</div>
<div>
<label>Brand name</label>
<p><?= $dram[DramTable::VENDOR_NAME->value] ?></p>
</div>
<div>
<label>Brand model</label>
<p><?= $dram[DramTable::VENDOR_MODEL->value] ?></p>
</div>
<div>
<label>Formfactor</label>
<p><?= $dram[DramTable::FORMFACTOR->value] ?></p>
</div>
<div>
<label>Technology</label>
<p><?= $dram[DramTable::TECHNOLOGY->value] ?></p>
</div>
<div>
<label>Is ECC?</label>
<p><?= $dram[DramTable::ECC->value] === "TRUE" ? "Yes" : "No" ?></p>
</div>
<div>
<label>Is buffered?</label>
<p><?= $dram[DramTable::BUFFERED->value] === "TRUE" ? "Yes" : "No" ?></p>
</div>
<div>
<label>Aquired</label>
<p><?= date(API::DATE_FORMAT, $dram[DramTable::DATE_AQUIRED->value]) ?></p>
</div>
<?php if ($dram[DramTable::IS_RETIRED->value]): ?>
<div>
<label>Retired</label>
<p>Yes</p>
</div>
<?php endif; ?>
</div>
<div>
<div>
<label>In motherboard slot number</label>
<p><?= $mb_dram[MbDramTable::SOCKET->value] ?></p>
</div>
<div>
<label>Motherboard slot type</label>
<p><?= $mb_dram[MbDramTable::SOCKET_TYPE->value] ?></p>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<div class="group">
<p>Storage</p>
<?= VV::embed("public/assets/media/icons/chevron.svg") ?>
</div>
<div class="collection">
<?php // List all storage ?>
<?php foreach ($motherboard["storage"] as $mb_storage): ?>
<?php // Get case details from endpoint by id ?>
<?php $storage = $api->call(Endpoints::BATTLESTATION_STORAGE->value)->params([
StorageTable::ID->value => $mb_storage[MbStorageTable::REF_STORAGE_ID->value]
])->get()->json()[0]; ?>
<div data-target="drive" class="spec">
<p><?= $storage[StorageTable::DISK_FORMFACTOR->value] ?> <?= $storage[StorageTable::DISK_TYPE->value] ?></p>
<h3>
<?= $storage[StorageTable::VENDOR_NAME->value] ?>
<span><?= floor($storage[StorageTable::DISK_SIZE->value] / GIGA) ?>GB</span>
</h3>
<div>
<div>
<label>Type</label>
<p><?= $storage[StorageTable::DISK_TYPE->value] ?></p>
</div>
<div>
<label>Capacity</label>
<p><?= floor($storage[StorageTable::DISK_SIZE->value] / GIGA) ?>GB</p>
</div>
<div>
<label>Interface</label>
<p><?= $storage[StorageTable::DISK_INTERFACE->value] ?></p>
</div>
<div>
<label>Formfactor</label>
<p><?= $storage[StorageTable::DISK_FORMFACTOR->value] ?></p>
</div>
<div>
<label>Brand name</label>
<p><?= $storage[StorageTable::VENDOR_NAME->value] ?></p>
</div>
<div>
<label>Brand model</label>
<p><?= $storage[StorageTable::VENDOR_MODEL->value] ?></p>
</div>
<div>
<label>Aquired</label>
<p><?= date(API::DATE_FORMAT, $storage[StorageTable::DATE_AQUIRED->value]) ?></p>
</div>
<?php if ($storage[StorageTable::IS_RETIRED->value]): ?>
<div>
<label>Retired</label>
<p>Yes</p>
</div>
<?php endif; ?>
</div>
<div>
<div>
<label>Attatched via interface</label>
<p><?= $mb_storage[MbStorageTable::INTERFACE->value] ?></p>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
</section>
<?php endforeach; ?>
<?php endif; ?>
<script type="module"><?= VV::js("public/assets/js/pages/about/battlestation") ?></script>

View file

@ -1,2 +1,2 @@
User-agent: *
Disallow:
Allow: /

View file

@ -1,4 +1,26 @@
# If you would like to report a security issue
# you may report it to me via email or via Matrix
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Contact: mailto:victor@vlw.se
Contact: https://vlw.se/contact
Encryption: https://keys.openpgp.org/vks/v1/by-fingerprint/DCE987311CB5D2A252F58951D0AD730E1057DFC6
Expires: 2026-02-21T00:00:00.000Z
Encryption: https://keys.openpgp.org/vks/v1/by-fingerprint/DCE987311CB5D2A252F58951D0AD730E1057DFC6
Preferred-Languages: en, se
Canonical: https://vlw.se/.well-known/security.txt
Canonical: https://vlw.se/security.txt
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEE3OmHMRy10qJS9YlR0K1zDhBX38YFAmfIO0EACgkQ0K1zDhBX
38bcng//awdqQc28s9bPxeLf7nl1acWDJkywu5UwRoyVrSIhCKUfri1E9VseWf2p
T/SzipVgxfpahOdmA9Cf1o5zTHeHpynocw77AwHvPurjSUw9/75vh+AlATEb8qrQ
Aerk5f3nY2E+LFn7HC/CXdYq1ywoHn7ZEmxjIXNdrKyYlhpw3m75ZTOtc2iWjskE
xzv5zKIb5E6+4bjJwmSuRgEKqxytHX2RxwsNknp/I/YtrP2zfkyabNkFzFyqiUfZ
BqzSWHlZqqeNAuNBtg0XS31NetOdl43YEF9jt0uNj+En/n4ozqiRhJwT85Xn6F9F
tUpwKb2VTmEgwyN99dVQ/FgMpLN5gvjFvUcwGHkoYe8R1uPRmY9bwkTzmv1pNX56
NDWUacqz1LddV4Ll55UTTJQ+l43BS/cB5wv/HY5Ts/gMdqIRevHy5QoJL40pebE0
me9ItLzTyMSNaJJsrWUoHpF46cpha+ZtO2hXz2BraDymZoSUhdqjlFVplrlMOlwa
KpxRHqT6XHdGEP4fcOkKNRHh5MCI0PcO1zFiP1m4iuXUdyeAZFDP/V65s/yLCGfT
qyFokyTGpeSSOj5eIVKSZPl25QUkPqJ2JrEnavkfPhIKq5PNr68wk6eU8O10qA/C
AqtM/Sp254+h615KPKUt2GSIBdAPcpRWD7ScBHO03M5sads0eSM=
=h09S
-----END PGP SIGNATURE-----

View file

@ -14,14 +14,5 @@
case WORK_TAGS = "/work/tags";
case WORK_ACTIONS = "/work/actions";
case WORK_TIMELINE = "/work/timeline";
case BATTLESTATION = "/battlestation";
case ABOUT_LANGUAGES = "/about/languages";
case BATTLESTATION_MB = "/battlestation/mb";
case BATTLESTATION_CPU = "/battlestation/cpu";
case BATTLESTATION_GPU = "/battlestation/gpu";
case BATTLESTATION_PSU = "/battlestation/psu";
case BATTLESTATION_DRAM = "/battlestation/dram";
case BATTLESTATION_STORAGE = "/battlestation/storage";
case BATTLESTATION_COOLERS = "/battlestation/coolers";
case BATTLESTATION_CHASSIS = "/battlestation/chassis";
}