# crafting
Documentation: next (source: develop).

Install the preview: `pnpm add @aephia/atlas-kit@next`. These docs follow develop and may include changes not yet published to npm.

Markdown source of https://develop.atlas-kit-docs.pages.dev/reference/crafting/ — see https://develop.atlas-kit-docs.pages.dev/ai/ for the full machine-readable surface.

## Interfaces

<a id="craftingcargoinventory"></a>

### CraftingCargoInventory

Defined in: [packages/sage/src/crafting/index.ts:77](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L77)

A registry-resolved nested crafting CargoPod.

#### Example

```ts
declare const inventory: CraftingCargoInventory;
console.log(inventory.items);
```

#### Properties

<a id="items"></a>

##### items

```ts
readonly items: readonly CraftingCargoItem[];
```

Defined in: [packages/sage/src/crafting/index.ts:80](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L80)

<a id="sequenceid"></a>

##### sequenceId

```ts
readonly sequenceId: number;
```

Defined in: [packages/sage/src/crafting/index.ts:78](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L78)

<a id="usedstorageunitsraw"></a>

##### usedStorageUnitsRaw

```ts
readonly usedStorageUnitsRaw: bigint;
```

Defined in: [packages/sage/src/crafting/index.ts:79](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L79)

***

<a id="craftingcargoitem"></a>

### CraftingCargoItem

Defined in: [packages/sage/src/crafting/index.ts:66](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L66)

A registry-resolved cargo amount used by a Recipe or Crafting Process.

#### Example

```ts
declare const item: CraftingCargoItem;
console.log(item.name, item.quantityRaw);
```

#### Extends

- [`CargoDefinitionSummary`](/reference/#cargodefinitionsummary)

#### Properties

<a id="categoryid"></a>

##### categoryId

```ts
readonly categoryId: number;
```

Defined in: [packages/sage/src/registry/index.ts:105](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/registry/index.ts#L105)

###### Inherited from

[`CargoDefinitionSummary`](/reference/#cargodefinitionsummary).[`categoryId`](/reference/#cargodefinitionsummary)

<a id="id"></a>

##### id

```ts
readonly id: number;
```

Defined in: [packages/sage/src/registry/index.ts:106](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/registry/index.ts#L106)

###### Inherited from

[`CargoDefinitionSummary`](/reference/#cargodefinitionsummary).[`id`](/reference/#cargodefinitionsummary)

<a id="mint"></a>

##### mint

```ts
readonly mint: Address;
```

Defined in: [packages/sage/src/registry/index.ts:107](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/registry/index.ts#L107)

###### Inherited from

[`CargoDefinitionSummary`](/reference/#cargodefinitionsummary).[`mint`](/reference/#cargodefinitionsummary)

<a id="name"></a>

##### name

```ts
readonly name: string;
```

Defined in: [packages/sage/src/registry/index.ts:108](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/registry/index.ts#L108)

###### Inherited from

[`CargoDefinitionSummary`](/reference/#cargodefinitionsummary).[`name`](/reference/#cargodefinitionsummary)

<a id="quantityraw"></a>

##### quantityRaw

```ts
readonly quantityRaw: bigint;
```

Defined in: [packages/sage/src/crafting/index.ts:67](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L67)

<a id="storagecost"></a>

##### storageCost

```ts
readonly storageCost: number;
```

Defined in: [packages/sage/src/registry/index.ts:109](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/registry/index.ts#L109)

###### Inherited from

[`CargoDefinitionSummary`](/reference/#cargodefinitionsummary).[`storageCost`](/reference/#cargodefinitionsummary)

***

<a id="craftingdefinitioncargoitem"></a>

### CraftingDefinitionCargoItem

Defined in: [packages/sage/src/crafting/index.ts:184](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L184)

One resolved cargo quantity used by a Hab building definition.

#### Example

```ts
declare const item: CraftingDefinitionCargoItem;
console.log(item.quantityRaw);
```

#### Extends

- [`CargoDefinitionSummary`](/reference/#cargodefinitionsummary)

#### Properties

<a id="categoryid-1"></a>

##### categoryId

```ts
readonly categoryId: number;
```

Defined in: [packages/sage/src/registry/index.ts:105](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/registry/index.ts#L105)

###### Inherited from

[`CargoDefinitionSummary`](/reference/#cargodefinitionsummary).[`categoryId`](/reference/#cargodefinitionsummary)

<a id="id-1"></a>

##### id

```ts
readonly id: number;
```

Defined in: [packages/sage/src/registry/index.ts:106](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/registry/index.ts#L106)

###### Inherited from

[`CargoDefinitionSummary`](/reference/#cargodefinitionsummary).[`id`](/reference/#cargodefinitionsummary)

<a id="mint-1"></a>

##### mint

```ts
readonly mint: Address;
```

Defined in: [packages/sage/src/registry/index.ts:107](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/registry/index.ts#L107)

###### Inherited from

[`CargoDefinitionSummary`](/reference/#cargodefinitionsummary).[`mint`](/reference/#cargodefinitionsummary)

<a id="name-1"></a>

##### name

```ts
readonly name: string;
```

Defined in: [packages/sage/src/registry/index.ts:108](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/registry/index.ts#L108)

###### Inherited from

[`CargoDefinitionSummary`](/reference/#cargodefinitionsummary).[`name`](/reference/#cargodefinitionsummary)

<a id="quantityraw-1"></a>

##### quantityRaw

```ts
readonly quantityRaw: bigint;
```

Defined in: [packages/sage/src/crafting/index.ts:185](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L185)

<a id="storagecost-1"></a>

##### storageCost

```ts
readonly storageCost: number;
```

Defined in: [packages/sage/src/registry/index.ts:109](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/registry/index.ts#L109)

###### Inherited from

[`CargoDefinitionSummary`](/reference/#cargodefinitionsummary).[`storageCost`](/reference/#cargodefinitionsummary)

***

<a id="craftinghabbuilding"></a>

### CraftingHabBuilding

Defined in: [packages/sage/src/crafting/index.ts:195](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L195)

A resolved Crafting Hab building definition and placed quantity.

#### Example

```ts
declare const building: CraftingHabBuilding;
console.log(building.definition.name, building.quantity);
```

#### Properties

<a id="definition"></a>

##### definition

```ts
readonly definition: {
  constructionCost: readonly CraftingDefinitionCargoItem[];
  constructionDurationSeconds: bigint;
  crewSlots: number;
  hubValue: number;
  id: number;
  jobCapacity: number;
  minimumTier: "one" | "two" | "three" | "four" | "five";
  modifiers: CraftingModifierData;
  name: string;
  neededCrew: number;
  netRates: readonly CargoDefinitionSummary & {
     unitsPerSecond: number;
     unitsPerSecondRaw: bigint;
  }[];
  providedTagIds: readonly number[];
  refunds: readonly CraftingDefinitionCargoItem[];
  requiredTagIds: readonly number[];
  researchRequirementIds: readonly number[];
  resourceCapacityRaw: bigint;
  slots: number;
  unlockedRecipes: readonly EntityRef<"recipe">[];
  xpValue: {
     raw: bigint;
     value: number;
  };
};
```

Defined in: [packages/sage/src/crafting/index.ts:197](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L197)

###### constructionCost

```ts
readonly constructionCost: readonly CraftingDefinitionCargoItem[];
```

###### constructionDurationSeconds

```ts
readonly constructionDurationSeconds: bigint;
```

###### crewSlots

```ts
readonly crewSlots: number;
```

###### hubValue

```ts
readonly hubValue: number;
```

###### id

```ts
readonly id: number;
```

###### jobCapacity

```ts
readonly jobCapacity: number;
```

###### minimumTier

```ts
readonly minimumTier: "one" | "two" | "three" | "four" | "five";
```

###### modifiers

```ts
readonly modifiers: CraftingModifierData;
```

###### name

```ts
readonly name: string;
```

###### neededCrew

```ts
readonly neededCrew: number;
```

###### netRates

```ts
readonly netRates: readonly CargoDefinitionSummary & {
  unitsPerSecond: number;
  unitsPerSecondRaw: bigint;
}[];
```

###### providedTagIds

```ts
readonly providedTagIds: readonly number[];
```

###### refunds

```ts
readonly refunds: readonly CraftingDefinitionCargoItem[];
```

###### requiredTagIds

```ts
readonly requiredTagIds: readonly number[];
```

###### researchRequirementIds

```ts
readonly researchRequirementIds: readonly number[];
```

###### resourceCapacityRaw

```ts
readonly resourceCapacityRaw: bigint;
```

###### slots

```ts
readonly slots: number;
```

###### unlockedRecipes

```ts
readonly unlockedRecipes: readonly EntityRef<"recipe">[];
```

###### xpValue

```ts
readonly xpValue: {
  raw: bigint;
  value: number;
};
```

###### xpValue.raw

```ts
readonly raw: bigint;
```

###### xpValue.value

```ts
readonly value: number;
```

<a id="quantity"></a>

##### quantity

```ts
readonly quantity: number;
```

Defined in: [packages/sage/src/crafting/index.ts:196](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L196)

***

<a id="craftinghabdefinitionsummary"></a>

### CraftingHabDefinitionSummary

Defined in: [packages/sage/src/crafting/index.ts:159](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L159)

A resolved Crafting Hab definition from the Game registry.

#### Example

```ts
declare const definition: CraftingHabDefinitionSummary;
console.log(definition.name, definition.placementCargo.name);
```

#### Properties

<a id="evictiongraceperiodseconds"></a>

##### evictionGracePeriodSeconds

```ts
readonly evictionGracePeriodSeconds: bigint;
```

Defined in: [packages/sage/src/crafting/index.ts:172](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L172)

<a id="hubvalue"></a>

##### hubValue

```ts
readonly hubValue: number;
```

Defined in: [packages/sage/src/crafting/index.ts:169](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L169)

<a id="id-2"></a>

##### id

```ts
readonly id: number;
```

Defined in: [packages/sage/src/crafting/index.ts:160](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L160)

<a id="name-2"></a>

##### name

```ts
readonly name: string;
```

Defined in: [packages/sage/src/crafting/index.ts:161](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L161)

<a id="placementcargo"></a>

##### placementCargo

```ts
readonly placementCargo: CargoDefinitionSummary;
```

Defined in: [packages/sage/src/crafting/index.ts:174](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L174)

<a id="placementfeemultiplier"></a>

##### placementFeeMultiplier

```ts
readonly placementFeeMultiplier: {
  raw: bigint;
  value: number;
};
```

Defined in: [packages/sage/src/crafting/index.ts:165](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L165)

###### raw

```ts
readonly raw: bigint;
```

###### value

```ts
readonly value: number;
```

<a id="providedtagids"></a>

##### providedTagIds

```ts
readonly providedTagIds: readonly number[];
```

Defined in: [packages/sage/src/crafting/index.ts:171](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L171)

<a id="rentmultiplier"></a>

##### rentMultiplier

```ts
readonly rentMultiplier: {
  raw: bigint;
  value: number;
};
```

Defined in: [packages/sage/src/crafting/index.ts:164](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L164)

###### raw

```ts
readonly raw: bigint;
```

###### value

```ts
readonly value: number;
```

<a id="requiredtagids"></a>

##### requiredTagIds

```ts
readonly requiredTagIds: readonly number[];
```

Defined in: [packages/sage/src/crafting/index.ts:170](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L170)

<a id="respawndurationseconds"></a>

##### respawnDurationSeconds

```ts
readonly respawnDurationSeconds: bigint;
```

Defined in: [packages/sage/src/crafting/index.ts:173](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L173)

<a id="slots"></a>

##### slots

```ts
readonly slots: number;
```

Defined in: [packages/sage/src/crafting/index.ts:163](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L163)

<a id="tier"></a>

##### tier

```ts
readonly tier: "one" | "two" | "three" | "four" | "five";
```

Defined in: [packages/sage/src/crafting/index.ts:162](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L162)

***

<a id="craftinghabsnapshot"></a>

### CraftingHabSnapshot

Defined in: [packages/sage/src/crafting/index.ts:230](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L230)

Immutable translated Crafting Hab infrastructure and production state.

#### Example

```ts
declare const hab: CraftingHabSnapshot;
console.log(hab.definition.name, hab.production.inventory.items);
```

#### Extends

- `Omit`\<`CraftingHabAccountData`, 
  \| `"buildings"`
  \| `"game"`
  \| `"ownerProfile"`
  \| `"production"`
  \| `"system"`
  \| `"unlockedRecipeIds"`\>

#### Extended by

- [`CraftingHabView`](/reference/#craftinghabview)

#### Properties

<a id="address"></a>

##### address

```ts
readonly address: Address;
```

Defined in: [packages/sage/src/crafting/index.ts:240](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L240)

<a id="availablejobslots"></a>

##### availableJobSlots

```ts
readonly availableJobSlots: number;
```

Defined in: [packages/sage/src/crafting/index.ts:246](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L246)

<a id="buildingdefinitionsequenceid"></a>

##### buildingDefinitionSequenceId

```ts
readonly buildingDefinitionSequenceId: number;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:207](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L207)

###### Inherited from

```ts
Omit.buildingDefinitionSequenceId
```

<a id="buildings"></a>

##### buildings

```ts
readonly buildings: readonly CraftingHabBuilding[];
```

Defined in: [packages/sage/src/crafting/index.ts:245](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L245)

<a id="constructionprogressatunixseconds"></a>

##### constructionProgressAtUnixSeconds

```ts
readonly constructionProgressAtUnixSeconds: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:211](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L211)

###### Inherited from

```ts
Omit.constructionProgressAtUnixSeconds
```

<a id="constructionremainingseconds"></a>

##### constructionRemainingSeconds

```ts
readonly constructionRemainingSeconds: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:210](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L210)

###### Inherited from

```ts
Omit.constructionRemainingSeconds
```

<a id="definition-1"></a>

##### definition

```ts
readonly definition: CraftingHabDefinitionSummary;
```

Defined in: [packages/sage/src/crafting/index.ts:244](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L244)

<a id="definitionid"></a>

##### definitionId

```ts
readonly definitionId: number;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:205](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L205)

###### Inherited from

```ts
Omit.definitionId
```

<a id="definitionsequenceid"></a>

##### definitionSequenceId

```ts
readonly definitionSequenceId: number;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:206](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L206)

###### Inherited from

```ts
Omit.definitionSequenceId
```

<a id="game"></a>

##### game

```ts
readonly game: EntityRef<"game">;
```

Defined in: [packages/sage/src/crafting/index.ts:241](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L241)

<a id="jobcapacity"></a>

##### jobCapacity

```ts
readonly jobCapacity: number;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:214](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L214)

###### Inherited from

```ts
Omit.jobCapacity
```

<a id="jobsrunning"></a>

##### jobsRunning

```ts
readonly jobsRunning: number;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:215](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L215)

###### Inherited from

```ts
Omit.jobsRunning
```

<a id="kind"></a>

##### kind

```ts
readonly kind: "craftingHabInstance";
```

Defined in: [packages/sage/src/crafting/index.ts:239](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L239)

<a id="lastrentatunixseconds"></a>

##### lastRentAtUnixSeconds

```ts
readonly lastRentAtUnixSeconds: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:209](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L209)

###### Inherited from

```ts
Omit.lastRentAtUnixSeconds
```

<a id="modifiers"></a>

##### modifiers

```ts
readonly modifiers: CraftingModifierData;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:216](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L216)

###### Inherited from

```ts
Omit.modifiers
```

<a id="neededcrew"></a>

##### neededCrew

```ts
readonly neededCrew: number;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:213](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L213)

###### Inherited from

```ts
Omit.neededCrew
```

<a id="ownerprofile"></a>

##### ownerProfile

```ts
readonly ownerProfile: EntityRef<"profile">;
```

Defined in: [packages/sage/src/crafting/index.ts:242](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L242)

<a id="production"></a>

##### production

```ts
readonly production: {
  inventory: CraftingCargoInventory;
  lastTickAtUnixSeconds: bigint;
  netRates: readonly CargoDefinitionSummary & {
     unitsPerSecond: number;
     unitsPerSecondRaw: bigint;
  }[];
  resourceCapacityRaw: bigint;
};
```

Defined in: [packages/sage/src/crafting/index.ts:248](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L248)

###### inventory

```ts
readonly inventory: CraftingCargoInventory;
```

###### lastTickAtUnixSeconds

```ts
readonly lastTickAtUnixSeconds: bigint;
```

###### netRates

```ts
readonly netRates: readonly CargoDefinitionSummary & {
  unitsPerSecond: number;
  unitsPerSecondRaw: bigint;
}[];
```

###### resourceCapacityRaw

```ts
readonly resourceCapacityRaw: bigint;
```

<a id="rentbalanceraw"></a>

##### rentBalanceRaw

```ts
readonly rentBalanceRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:212](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L212)

###### Inherited from

```ts
Omit.rentBalanceRaw
```

<a id="state"></a>

##### state

```ts
readonly state: CraftingHabStateData;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:219](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L219)

###### Inherited from

```ts
Omit.state
```

<a id="system"></a>

##### system

```ts
readonly system: EntityRef<"starSystem">;
```

Defined in: [packages/sage/src/crafting/index.ts:243](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L243)

<a id="systemsequenceid"></a>

##### systemSequenceId

```ts
readonly systemSequenceId: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:208](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L208)

###### Inherited from

```ts
Omit.systemSequenceId
```

<a id="unlockedrecipes"></a>

##### unlockedRecipes

```ts
readonly unlockedRecipes: readonly EntityRef<"recipe">[];
```

Defined in: [packages/sage/src/crafting/index.ts:247](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L247)

<a id="version"></a>

##### version

```ts
readonly version: number;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:201](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L201)

###### Inherited from

```ts
Omit.version
```

#### Methods

<a id="tojson"></a>

##### toJSON()

```ts
toJSON(): unknown;
```

Defined in: [packages/sage/src/crafting/index.ts:257](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L257)

###### Returns

`unknown`

***

<a id="craftingprocesssnapshot"></a>

### CraftingProcessSnapshot

Defined in: [packages/sage/src/crafting/index.ts:267](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L267)

Immutable translated Crafting Process with resolved Recipe and inputs.

#### Example

```ts
declare const process: CraftingProcessSnapshot;
console.log(process.recipe.name, process.numCrew);
```

#### Extends

- `Omit`\<`CraftingProcessAccountData`, 
  \| `"craftingHab"`
  \| `"inputs"`
  \| `"profile"`
  \| `"recipe"`
  \| `"starbasePlayer"`
  \| `"system"`\>

#### Extended by

- [`CraftingProcessView`](/reference/#craftingprocessview)

#### Properties

<a id="address-1"></a>

##### address

```ts
readonly address: Address;
```

Defined in: [packages/sage/src/crafting/index.ts:272](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L272)

<a id="craftinghab"></a>

##### craftingHab

```ts
readonly craftingHab: EntityRef<"craftingHabInstance">;
```

Defined in: [packages/sage/src/crafting/index.ts:277](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L277)

<a id="endsatunixseconds"></a>

##### endsAtUnixSeconds

```ts
readonly endsAtUnixSeconds: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:239](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L239)

###### Inherited from

```ts
Omit.endsAtUnixSeconds
```

<a id="feeescrowatlas"></a>

##### feeEscrowAtlas

```ts
readonly feeEscrowAtlas: number;
```

Defined in: [packages/sage/src/crafting/index.ts:279](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L279)

<a id="feeescrowraw"></a>

##### feeEscrowRaw

```ts
readonly feeEscrowRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:240](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L240)

###### Inherited from

```ts
Omit.feeEscrowRaw
```

<a id="inputs"></a>

##### inputs

```ts
readonly inputs: CraftingCargoInventory;
```

Defined in: [packages/sage/src/crafting/index.ts:278](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L278)

<a id="kind-1"></a>

##### kind

```ts
readonly kind: "craftingProcess";
```

Defined in: [packages/sage/src/crafting/index.ts:271](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L271)

<a id="numcrew"></a>

##### numCrew

```ts
readonly numCrew: number;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:237](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L237)

###### Inherited from

```ts
Omit.numCrew
```

<a id="profile"></a>

##### profile

```ts
readonly profile: EntityRef<"profile">;
```

Defined in: [packages/sage/src/crafting/index.ts:274](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L274)

<a id="quantityraw-2"></a>

##### quantityRaw

```ts
readonly quantityRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:236](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L236)

###### Inherited from

```ts
Omit.quantityRaw
```

<a id="recipe"></a>

##### recipe

```ts
readonly recipe: RecipeSnapshot;
```

Defined in: [packages/sage/src/crafting/index.ts:273](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L273)

<a id="starbaseplayer"></a>

##### starbasePlayer

```ts
readonly starbasePlayer: EntityRef<"starbasePlayer">;
```

Defined in: [packages/sage/src/crafting/index.ts:276](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L276)

<a id="starbasesequenceid"></a>

##### starbaseSequenceId

```ts
readonly starbaseSequenceId: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:234](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L234)

###### Inherited from

```ts
Omit.starbaseSequenceId
```

<a id="startsatunixseconds"></a>

##### startsAtUnixSeconds

```ts
readonly startsAtUnixSeconds: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:238](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L238)

###### Inherited from

```ts
Omit.startsAtUnixSeconds
```

<a id="system-1"></a>

##### system

```ts
readonly system: EntityRef<"starSystem">;
```

Defined in: [packages/sage/src/crafting/index.ts:275](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L275)

<a id="version-1"></a>

##### version

```ts
readonly version: number;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:229](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L229)

###### Inherited from

```ts
Omit.version
```

#### Methods

<a id="tojson-1"></a>

##### toJSON()

```ts
toJSON(): unknown;
```

Defined in: [packages/sage/src/crafting/index.ts:280](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L280)

###### Returns

`unknown`

***

<a id="recipesnapshot"></a>

### RecipeSnapshot

Defined in: [packages/sage/src/crafting/index.ts:90](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L90)

Immutable translated Recipe definition.

#### Example

```ts
declare const recipe: RecipeSnapshot;
console.log(recipe.ingredients, recipe.outputs);
```

#### Extends

- `Omit`\<`RecipeAccountData`, `"game"` \| `"id"` \| `"inputs"` \| `"outputs"`\>

#### Extended by

- [`RecipeView`](/reference/#recipeview)

#### Properties

<a id="address-2"></a>

##### address

```ts
readonly address: Address;
```

Defined in: [packages/sage/src/crafting/index.ts:95](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L95)

<a id="craftingdurationseconds"></a>

##### craftingDurationSeconds

```ts
readonly craftingDurationSeconds: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:145](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L145)

###### Inherited from

```ts
Omit.craftingDurationSeconds
```

<a id="fee"></a>

##### fee

```ts
readonly fee: {
  amountAtlas: number;
  amountRaw: bigint;
  recipient: "atlas" | "dao-atlas";
};
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:149](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L149)

###### amountAtlas

```ts
readonly amountAtlas: number;
```

###### amountRaw

```ts
readonly amountRaw: bigint;
```

###### recipient

```ts
readonly recipient: "atlas" | "dao-atlas";
```

###### Inherited from

```ts
Omit.fee
```

<a id="game-1"></a>

##### game

```ts
readonly game: EntityRef<"game">;
```

Defined in: [packages/sage/src/crafting/index.ts:96](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L96)

<a id="habrequired"></a>

##### habRequired

```ts
readonly habRequired: boolean;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:154](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L154)

###### Inherited from

```ts
Omit.habRequired
```

<a id="id-3"></a>

##### id

```ts
readonly id: number;
```

Defined in: [packages/sage/src/crafting/index.ts:97](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L97)

<a id="ingredients"></a>

##### ingredients

```ts
readonly ingredients: readonly CraftingCargoItem[];
```

Defined in: [packages/sage/src/crafting/index.ts:98](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L98)

<a id="kind-2"></a>

##### kind

```ts
readonly kind: "recipe";
```

Defined in: [packages/sage/src/crafting/index.ts:94](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L94)

<a id="minimumdurationseconds"></a>

##### minimumDurationSeconds

```ts
readonly minimumDurationSeconds: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:146](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L146)

###### Inherited from

```ts
Omit.minimumDurationSeconds
```

<a id="minimumstarbaselevel"></a>

##### minimumStarbaseLevel

```ts
readonly minimumStarbaseLevel: 
  | "level-0"
  | "level-1"
  | "level-2"
  | "level-3"
  | "level-4"
  | "level-5"
  | "css";
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:158](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L158)

###### Inherited from

```ts
Omit.minimumStarbaseLevel
```

<a id="modifierbounds"></a>

##### modifierBounds

```ts
readonly modifierBounds: {
  crewCount: CraftingModifierBoundsData;
  efficiency: CraftingModifierBoundsData;
  fee: CraftingModifierBoundsData;
  speed: CraftingModifierBoundsData;
};
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:166](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L166)

###### crewCount

```ts
readonly crewCount: CraftingModifierBoundsData;
```

###### efficiency

```ts
readonly efficiency: CraftingModifierBoundsData;
```

###### fee

```ts
readonly fee: CraftingModifierBoundsData;
```

###### speed

```ts
readonly speed: CraftingModifierBoundsData;
```

###### Inherited from

```ts
Omit.modifierBounds
```

<a id="name-3"></a>

##### name

```ts
readonly name: string;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:147](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L147)

###### Inherited from

```ts
Omit.name
```

<a id="outputs"></a>

##### outputs

```ts
readonly outputs: readonly CraftingCargoItem[];
```

Defined in: [packages/sage/src/crafting/index.ts:99](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L99)

<a id="researchrequirementids"></a>

##### researchRequirementIds

```ts
readonly researchRequirementIds: readonly number[];
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:172](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L172)

###### Inherited from

```ts
Omit.researchRequirementIds
```

<a id="status"></a>

##### status

```ts
readonly status: "active" | "deactivated";
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:148](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L148)

###### Inherited from

```ts
Omit.status
```

<a id="usagecountraw"></a>

##### usageCountRaw

```ts
readonly usageCountRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:155](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L155)

###### Inherited from

```ts
Omit.usageCountRaw
```

<a id="usagelimitraw"></a>

##### usageLimitRaw

```ts
readonly usageLimitRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:156](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L156)

###### Inherited from

```ts
Omit.usageLimitRaw
```

<a id="version-2"></a>

##### version

```ts
readonly version: number;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:142](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L142)

###### Inherited from

```ts
Omit.version
```

<a id="xpvalueraw"></a>

##### xpValueRaw

```ts
readonly xpValueRaw: bigint;
```

Defined in: [packages/sage/src/internal/c4/crafting.ts:157](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/internal/c4/crafting.ts#L157)

###### Inherited from

```ts
Omit.xpValueRaw
```

#### Methods

<a id="tojson-2"></a>

##### toJSON()

```ts
toJSON(): unknown;
```

Defined in: [packages/sage/src/crafting/index.ts:100](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L100)

###### Returns

`unknown`

## Type Aliases

<a id="craftingdiscoveryoptions"></a>

### CraftingDiscoveryOptions

```ts
type CraftingDiscoveryOptions = Omit<DiscoveryRequest, "filters" | "strategy">;
```

Defined in: [packages/sage/src/crafting/index.ts:54](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L54)

Options supported by targeted crafting discovery.

#### Example

```ts
const options: CraftingDiscoveryOptions = { commitment: 'confirmed' };
```

***

<a id="craftinghabdefinition"></a>

### CraftingHabDefinition

```ts
type CraftingHabDefinition = GameCraftingHabDefinitionData;
```

Defined in: [packages/sage/src/crafting/index.ts:117](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L117)

Immutable Crafting Hab container definition from the loaded Game catalog.

Unlike a placed Hab's `CraftingHabDefinitionSummary`, this independent
definition keeps its placement `cargoId` without resolving cargo. Multipliers
retain dimensionless exact raw bigint and ergonomic values. Global eviction
and respawn durations remain exact seconds. JSON serializes bigint as decimal
strings; the loaded catalog does not assert current chain freshness.

#### Example

```ts
declare const definition: CraftingHabDefinition;
console.log(definition.name, definition.cargoId, definition.rentMultiplier.raw);
```

***

<a id="craftingprocessstate"></a>

### CraftingProcessState

```ts
type CraftingProcessState = InternalCraftingProcessState;
```

Defined in: [packages/sage/src/crafting/index.ts:289](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L289)

Pure lifecycle projection for one Crafting Process at a given Unix time.

#### Example

```ts
const state: CraftingProcessState = { kind: 'scheduled' };
```

***

<a id="habbuildingdefinition"></a>

### HabBuildingDefinition

```ts
type HabBuildingDefinition = GameHabBuildingDefinitionData;
```

Defined in: [packages/sage/src/crafting/index.ts:987](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L987)

Immutable Hab building definition from the loaded Game catalog.
Keeps the existing Hab-specific modifiers, job capacity and unlocked recipes;
this is configuration, not the output of a placed building. Fixed-point values
retain exact raw bigint, and JSON serializes bigint as decimal strings.

#### Example

```ts
declare const definition: HabBuildingDefinition;
console.log(definition.modifiers.speed.value, definition.unlockedRecipeIds);
```

## Functions

<a id="derivecraftingprocessstate"></a>

### deriveCraftingProcessState()

```ts
function deriveCraftingProcessState(process, atUnixSeconds): InternalCraftingProcessState;
```

Defined in: [packages/sage/src/crafting/index.ts:967](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L967)

Derives the scheduled, active, or complete state at a Unix timestamp.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `process` | `Pick`\<[`CraftingProcessSnapshot`](/reference/crafting/#craftingprocesssnapshot), `"startsAtUnixSeconds"` \| `"endsAtUnixSeconds"`\> |
| `atUnixSeconds` | `bigint` |

#### Returns

`InternalCraftingProcessState`

#### Example

```ts
declare const process: CraftingProcessSnapshot;
const state = deriveCraftingProcessState(process, 1_700_000_000n);
```

***

<a id="getcraftinghab"></a>

### getCraftingHab()

```ts
function getCraftingHab(
   context, 
   address, 
options?): Promise<CraftingHabSnapshot>;
```

Defined in: [packages/sage/src/crafting/index.ts:718](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L718)

Reads a required Crafting Hab by its signer-created account address.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `address` | [`Address`](/reference/#address-20) |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<[`CraftingHabSnapshot`](/reference/crafting/#craftinghabsnapshot)\>

#### Example

```ts
declare const ctx: SageContext;
declare const address: Address;
const hab = await getCraftingHab(ctx, address);
```

***

<a id="getcraftinghabdefinition"></a>

### getCraftingHabDefinition()

```ts
function getCraftingHabDefinition(context, id): Promise<GameCraftingHabDefinitionData>;
```

Defined in: [packages/sage/src/crafting/index.ts:128](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L128)

Loads one Crafting Hab container definition by its Game table id.
The catalog loads lazily without fetching a placed Hab or its placement cargo.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `id` | `number` |

#### Returns

`Promise`\<`GameCraftingHabDefinitionData`\>

#### Example

```ts
declare const ctx: SageContext;
const definition = await getCraftingHabDefinition(ctx, 7);
console.log(definition.slots, definition.respawnDurationSeconds);
```

***

<a id="getcraftinghabsbycharacter"></a>

### getCraftingHabsByCharacter()

```ts
function getCraftingHabsByCharacter(
   context, 
   character, 
options?): Promise<readonly CraftingHabSnapshot[]>;
```

Defined in: [packages/sage/src/crafting/index.ts:906](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L906)

Discovers Crafting Habs for the Profile stored by one Character.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `character` | [`Address`](/reference/#address-20) |
| `options?` | [`CraftingDiscoveryOptions`](/reference/crafting/#craftingdiscoveryoptions) |

#### Returns

`Promise`\<readonly [`CraftingHabSnapshot`](/reference/crafting/#craftinghabsnapshot)[]\>

#### Example

```ts
declare const ctx: SageContext;
declare const character: Address;
const habs = await getCraftingHabsByCharacter(ctx, character);
```

***

<a id="getcraftinghabsbyprofile"></a>

### getCraftingHabsByProfile()

```ts
function getCraftingHabsByProfile(
   context, 
   profile, 
options?): Promise<readonly CraftingHabSnapshot[]>;
```

Defined in: [packages/sage/src/crafting/index.ts:805](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L805)

Discovers Crafting Habs owned by one Player Profile.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `profile` | [`Address`](/reference/#address-20) |
| `options?` | [`CraftingDiscoveryOptions`](/reference/crafting/#craftingdiscoveryoptions) |

#### Returns

`Promise`\<readonly [`CraftingHabSnapshot`](/reference/crafting/#craftinghabsnapshot)[]\>

#### Example

```ts
declare const ctx: SageContext;
declare const profile: Address;
const habs = await getCraftingHabsByProfile(ctx, profile);
```

***

<a id="getcraftinghabsbystarbaseplayer"></a>

### getCraftingHabsByStarbasePlayer()

```ts
function getCraftingHabsByStarbasePlayer(
   context, 
   player, 
options?): Promise<readonly CraftingHabSnapshot[]>;
```

Defined in: [packages/sage/src/crafting/index.ts:855](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L855)

Discovers Crafting Habs for the Profile and System stored by a StarbasePlayer.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `player` | [`Address`](/reference/#address-20) |
| `options?` | [`CraftingDiscoveryOptions`](/reference/crafting/#craftingdiscoveryoptions) |

#### Returns

`Promise`\<readonly [`CraftingHabSnapshot`](/reference/crafting/#craftinghabsnapshot)[]\>

#### Example

```ts
declare const ctx: SageContext;
declare const player: Address;
const habs = await getCraftingHabsByStarbasePlayer(ctx, player);
```

***

<a id="getcraftingprocess"></a>

### getCraftingProcess()

```ts
function getCraftingProcess(
   context, 
   address, 
options?): Promise<CraftingProcessSnapshot>;
```

Defined in: [packages/sage/src/crafting/index.ts:760](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L760)

Reads a required Crafting Process by its signer-created account address.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `address` | [`Address`](/reference/#address-20) |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<[`CraftingProcessSnapshot`](/reference/crafting/#craftingprocesssnapshot)\>

#### Example

```ts
declare const ctx: SageContext;
declare const address: Address;
const process = await getCraftingProcess(ctx, address);
```

***

<a id="getcraftingprocessesbycharacter"></a>

### getCraftingProcessesByCharacter()

```ts
function getCraftingProcessesByCharacter(
   context, 
   character, 
options?): Promise<readonly CraftingProcessSnapshot[]>;
```

Defined in: [packages/sage/src/crafting/index.ts:935](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L935)

Discovers Crafting Processes for the Profile stored by one Character.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `character` | [`Address`](/reference/#address-20) |
| `options?` | [`CraftingDiscoveryOptions`](/reference/crafting/#craftingdiscoveryoptions) |

#### Returns

`Promise`\<readonly [`CraftingProcessSnapshot`](/reference/crafting/#craftingprocesssnapshot)[]\>

#### Example

```ts
declare const ctx: SageContext;
declare const character: Address;
const processes = await getCraftingProcessesByCharacter(ctx, character);
```

***

<a id="getcraftingprocessesbyprofile"></a>

### getCraftingProcessesByProfile()

```ts
function getCraftingProcessesByProfile(
   context, 
   profile, 
options?): Promise<readonly CraftingProcessSnapshot[]>;
```

Defined in: [packages/sage/src/crafting/index.ts:831](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L831)

Discovers Crafting Processes belonging to one Player Profile.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `profile` | [`Address`](/reference/#address-20) |
| `options?` | [`CraftingDiscoveryOptions`](/reference/crafting/#craftingdiscoveryoptions) |

#### Returns

`Promise`\<readonly [`CraftingProcessSnapshot`](/reference/crafting/#craftingprocesssnapshot)[]\>

#### Example

```ts
declare const ctx: SageContext;
declare const profile: Address;
const processes = await getCraftingProcessesByProfile(ctx, profile);
```

***

<a id="getcraftingprocessesbystarbaseplayer"></a>

### getCraftingProcessesByStarbasePlayer()

```ts
function getCraftingProcessesByStarbasePlayer(
   context, 
   player, 
options?): Promise<readonly CraftingProcessSnapshot[]>;
```

Defined in: [packages/sage/src/crafting/index.ts:882](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L882)

Discovers Crafting Processes linked to one StarbasePlayer.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `player` | [`Address`](/reference/#address-20) |
| `options?` | [`CraftingDiscoveryOptions`](/reference/crafting/#craftingdiscoveryoptions) |

#### Returns

`Promise`\<readonly [`CraftingProcessSnapshot`](/reference/crafting/#craftingprocesssnapshot)[]\>

#### Example

```ts
declare const ctx: SageContext;
declare const player: Address;
const processes = await getCraftingProcessesByStarbasePlayer(ctx, player);
```

***

<a id="gethabbuildingdefinition"></a>

### getHabBuildingDefinition()

```ts
function getHabBuildingDefinition(context, id): Promise<GameHabBuildingDefinitionData>;
```

Defined in: [packages/sage/src/crafting/index.ts:998](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L998)

Loads one Hab building definition without fetching a placed Crafting Hab.
The returned definition reflects the loaded section, not proven-current chain state.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `id` | `number` |

#### Returns

`Promise`\<`GameHabBuildingDefinitionData`\>

#### Example

```ts
declare const ctx: SageContext;
const building = await getHabBuildingDefinition(ctx, 7);
console.log(building.jobCapacity, building.constructionDurationSeconds);
```

***

<a id="getrecipe"></a>

### getRecipe()

```ts
function getRecipe(
   context, 
   address, 
options?): Promise<RecipeSnapshot>;
```

Defined in: [packages/sage/src/crafting/index.ts:654](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L654)

Reads a required Recipe by its derived account address.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `address` | [`Address`](/reference/#address-20) |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<[`RecipeSnapshot`](/reference/crafting/#recipesnapshot)\>

#### Example

```ts
declare const ctx: SageContext;
declare const address: Address;
const recipe = await getRecipe(ctx, address);
```

***

<a id="getrecipebyid"></a>

### getRecipeById()

```ts
function getRecipeById(
   context, 
   recipeId, 
options?): Promise<RecipeSnapshot>;
```

Defined in: [packages/sage/src/crafting/index.ts:697](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L697)

Derives and reads one Recipe from the configured Game and recipe id.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `recipeId` | `number` |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<[`RecipeSnapshot`](/reference/crafting/#recipesnapshot)\>

#### Example

```ts
declare const ctx: SageContext;
const recipe = await getRecipeById(ctx, 7);
```

***

<a id="listcraftinghabdefinitions"></a>

### listCraftingHabDefinitions()

```ts
function listCraftingHabDefinitions(context): Promise<readonly GameCraftingHabDefinitionData[]>;
```

Defined in: [packages/sage/src/crafting/index.ts:146](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L146)

Lists the loaded Crafting Hab containers as immutable canonical definitions.
The array is retained per section generation and shares by-id lookup objects.
Refresh replaces both together; previously returned arrays remain immutable
snapshots. This catalog carries no proof of latest chain state or sort order.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |

#### Returns

`Promise`\<readonly `GameCraftingHabDefinitionData`[]\>

#### Example

```ts
declare const ctx: SageContext;
const definitions = await listCraftingHabDefinitions(ctx);
console.log(definitions.map(definition => definition.name));
```

***

<a id="listhabbuildingdefinitions"></a>

### listHabBuildingDefinitions()

```ts
function listHabBuildingDefinitions(context): Promise<readonly GameHabBuildingDefinitionData[]>;
```

Defined in: [packages/sage/src/crafting/index.ts:1016](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L1016)

Lists the loaded Hab building catalog as immutable canonical definitions.
Shares objects with by-id lookups and retains the array for its section
generation. Refresh replaces both together; older returned arrays remain
immutable snapshots. No sort order or latest-chain freshness is promised.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |

#### Returns

`Promise`\<readonly `GameHabBuildingDefinitionData`[]\>

#### Example

```ts
declare const ctx: SageContext;
const buildings = await listHabBuildingDefinitions(ctx);
console.log(buildings.map(building => building.name));
```

***

<a id="maybegetcraftinghab"></a>

### maybeGetCraftingHab()

```ts
function maybeGetCraftingHab(
   context, 
   address, 
   options?): Promise<
  | CraftingHabSnapshot
| undefined>;
```

Defined in: [packages/sage/src/crafting/index.ts:738](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L738)

Reads an optional Crafting Hab by address.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `address` | [`Address`](/reference/#address-20) |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<
  \| [`CraftingHabSnapshot`](/reference/crafting/#craftinghabsnapshot)
  \| `undefined`\>

#### Example

```ts
declare const ctx: SageContext;
declare const address: Address;
const hab = await maybeGetCraftingHab(ctx, address);
```

***

<a id="maybegetcraftingprocess"></a>

### maybeGetCraftingProcess()

```ts
function maybeGetCraftingProcess(
   context, 
   address, 
   options?): Promise<
  | CraftingProcessSnapshot
| undefined>;
```

Defined in: [packages/sage/src/crafting/index.ts:781](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L781)

Reads an optional Crafting Process by address.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `address` | [`Address`](/reference/#address-20) |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<
  \| [`CraftingProcessSnapshot`](/reference/crafting/#craftingprocesssnapshot)
  \| `undefined`\>

#### Example

```ts
declare const ctx: SageContext;
declare const address: Address;
const process = await maybeGetCraftingProcess(ctx, address);
```

***

<a id="maybegetrecipe"></a>

### maybeGetRecipe()

```ts
function maybeGetRecipe(
   context, 
   address, 
options?): Promise<RecipeSnapshot | undefined>;
```

Defined in: [packages/sage/src/crafting/index.ts:674](https://github.com/Aephia/atlas-kit/blob/develop/packages/sage/src/crafting/index.ts#L674)

Reads an optional Recipe by address.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `context` | [`SageContext`](/reference/#sagecontext) |
| `address` | [`Address`](/reference/#address-20) |
| `options?` | [`ReadOptions`](/reference/client/#readoptions) |

#### Returns

`Promise`\<[`RecipeSnapshot`](/reference/crafting/#recipesnapshot) \| `undefined`\>

#### Example

```ts
declare const ctx: SageContext;
declare const address: Address;
const recipe = await maybeGetRecipe(ctx, address);
```
