1
0

feat: add active SF and LA HQ environments

This commit is contained in:
2026-08-19 02:51:17 -07:00
parent afa285bd5c
commit 0557a26e6b
14 changed files with 1096 additions and 2312 deletions
+47 -4
View File
@@ -100,8 +100,51 @@ export const MATEO_COURT_SITE: OfficeSite = {
* them and by `office.test.ts` asserting that each pack's site is the very
* object named here — identity, not equality, so a restated coordinate fails.
*/
export const OFFICE_SITES: { id: string; name: string; site: OfficeSite }[] = [
{ id: "lumbridge-hq", name: "Lumbridge HQ", site: LUMBRIDGE_HQ_SITE },
{ id: "frontier-valley", name: "Frontier Valley", site: FRONTIER_VALLEY_SITE },
{ id: "mateo-court", name: "Mateo Court", site: MATEO_COURT_SITE },
export const SHIPPED_OFFICE_IDS = ["lumbridge-hq", "frontier-valley", "mateo-court"] as const;
export type ShippedOfficeId = (typeof SHIPPED_OFFICE_IDS)[number];
export type OfficeStatus = "active" | "building";
/**
* The public, eager metadata for one shipped environment.
*
* `status` is about the authored runtime, not a lease or a headcount. `active`
* means the environment is ready to enter; it never implies that people are in
* the building. `entryCopy` is intentionally operational and contains no
* invented street address or staffing claim.
*/
export interface OfficeDirectoryEntry {
id: ShippedOfficeId;
name: string;
status: OfficeStatus;
entryCopy: string;
site: OfficeSite;
}
export const OFFICE_SITES: readonly OfficeDirectoryEntry[] = [
{
id: "lumbridge-hq",
name: "SF HQ · Studio",
status: "active",
entryCopy: "Enter the compact live/work studio",
site: LUMBRIDGE_HQ_SITE,
},
{
id: "frontier-valley",
name: "Frontier Valley",
status: "building",
entryCopy: "Preview the hangar environment in progress",
site: FRONTIER_VALLEY_SITE,
},
{
id: "mateo-court",
name: "LA HQ · Office",
status: "active",
entryCopy: "Enter the courtyard office and robotics lab",
site: MATEO_COURT_SITE,
},
];
export function officeDirectoryEntry(id: string): OfficeDirectoryEntry | undefined {
return OFFICE_SITES.find((entry) => entry.id === id);
}