Option & Pricing Model Manifest Format (.airpm)
Overview of .airpm Manifest Files
Option and pricing models are stored in local project workspaces inside option-models/*.airpm files (e.g. option-models/apparel-pricing.airpm). Aircada uses an Engine-Driven Stripped Manifest Architecture where local .airpm files store base prices, pricing rules, and dataset bindings without duplicating option choice arrays.
Stripped Manifest Structure
An .airpm manifest contains top-level model details (id, name, typeVersion: 1.02, basePrice) and optionSets. Option choices are hydrated natively in memory from linked .airpds datasets.
{
"id": "customapparelmodel1",
"type": "PRICING_MODEL",
"typeVersion": 1.02,
"name": "Custom Apparel Pricing Model",
"basePrice": 25.00,
"updatedAt": 1785290000000,
"optionSets": [
{
"id": "optSetSize",
"name": "Shirt Size",
"datasetId": "sizedata999",
"defaultOptionId": "medium",
"syncingSettings": [
{
"nameKey": "name",
"priceKey": "price",
"priceType": "ADJUSTMENT",
"direction": "TO_MODEL",
"triggerType": "ON_UPDATE",
"deleteUnmatched": true,
"datasetId": "sizedata999"
}
]
},
{
"id": "optSetCustomNote",
"name": "Include Gift Card Note"
}
],
"pricingRules": []
}Dataset Connections & Un-Linked Option Sets
- Dataset Binding (datasetId): Linking a datasetId binds option choices dynamically to an .airpds dataset file.
- Optional Binding: datasetId is optional. Option sets without a datasetId (like custom notes or standalone options) are fully supported.
- Price Sync Types: priceType can be "ADJUSTMENT" (flat dollar offset) or "PERCENTAGE_DISCOUNT" (percentage adjustment).
> [!IMPORTANT]
> Agent Directive: Do NOT embed local options arrays in .airpm files. Option choices are hydrated automatically by Aircada Engine from linked .airpds datasets.
About the Author
Wylie Chenoweth is the CTO of Aircada. He leads the engineering team building the high-performance 3D rendering engine and tools, bringing over a decade of systems architecture and 3D web rendering experience.






