Skip to content

Guide scenario coverage

The KayKit user guide is decomposed into 19 source-page scenarios. This page is the human-facing map for those scenarios; the machine-readable source remains listKayKitGuideScenarios(), describeKayKitGuideScenarioCoverage(), listKayKitGuideScenarioAssetUsages(), listKayKitGuideScenarioAssetRenderRequests(), listKayKitGuideScenarioAssetRenderGroups(), listKayKitGuideAssetCoverages(), listKayKitGuideRoleCoverages(), listKayKitGuidePublicApiCoverages(), and the guide-scenarios / guide-usages / guide-render-requests / guide-assets / guide-roles / guide-apis CLI commands.

Use this page when deciding whether a guide image has public API treatment, docs, and visual review coverage. Use the catalog API or CLI when a tool needs exact asset ids or public treatment records.

Terminal window
pnpm exec packages/declarative-hex-worlds/dist/cli.js guide-scenarios --markdown > docs/guides/guide-scenario-coverage.md
pnpm exec packages/declarative-hex-worlds/dist/cli.js guide-scenarios --page 15 --includeTreatments --json
pnpm exec packages/declarative-hex-worlds/dist/cli.js guide-usages --page 16,17,18 --json
pnpm exec packages/declarative-hex-worlds/dist/cli.js guide-render-requests --page 16,17,18 --assetBaseUrl /assets/extra --includeGroups --out /tmp/kaykit-guide-render-requests.json
pnpm exec packages/declarative-hex-worlds/dist/cli.js guide-assets --assetId hex_road_M --json
pnpm exec packages/declarative-hex-worlds/dist/cli.js guide-roles --role prop --json
pnpm exec packages/declarative-hex-worlds/dist/cli.js guide-apis --publicApi GameboardBuilder.addHarbor --json
  • Every extracted guide page has exactly one page-NN-* scenario.
  • Every scenario lists its source PNG, edition scope, public API surfaces, docs, and visual artifacts.
  • Every FREE and local EXTRA asset id appears in at least one scenario unless it is a reference-only license/supporter page with no assets.
  • Every asset-bearing scenario can be expanded into public treatment records with listKayKitGuideScenarioTreatments(id).
  • Every page-level asset occurrence can be expanded into renderer-ready usage records with listKayKitGuideScenarioAssetUsages().
  • Every FREE and local EXTRA asset id can be inverted back to pages/APIs/docs and screenshots with listKayKitGuideAssetCoverages().
  • Every public treatment role can be inverted back to pages/assets/APIs with listKayKitGuideRoleCoverages().
  • Every public API string in a scenario can be inverted back to pages/assets with listKayKitGuidePublicApiCoverages().
  • Scenario: page-01-overview-and-license
  • Edition: reference
  • Source image: docs/assets/kaykit-guide/pages/page-01.png
  • Asset coverage: 0 unique, 0 FREE, 0 EXTRA, 0 occurrences
  • Roles: reference-only
  • Public API treatment: freeManifest, listKayKitAssetPublicTreatments, listKayKitGuideScenarios
  • Visual artifacts: docs/assets/kaykit-guide/montage.png, docs/assets/kaykit-guide/pages/page-01.png
  • Docs: README.md, NOTICE.md, docs/pillars/00-library-charter.md
  • Scenario: page-02-buildings-props-and-factions
  • Edition: mixed
  • Source image: docs/assets/kaykit-guide/pages/page-02.png
  • Asset coverage: 164 unique, 119 FREE, 45 EXTRA, 164 occurrences
  • Roles: faction-building, neutral-structure, prop
  • Public API treatment: GameboardBuilder.addBridge, GameboardBuilder.addConstructionSite, GameboardBuilder.addFactionBuilding, GameboardBuilder.addFlag, GameboardBuilder.addFortification, GameboardBuilder.addHarbor, GameboardBuilder.addNeutralStructure, GameboardBuilder.addProp, GameboardBuilder.addPropCluster, GameboardBuilder.addSettlement, GameboardBuilder.addSiegeProjectile, createGameboardLayoutFillRuleFromPiece, createGameboardPlanFromRecipe, factionBuildingAssetId, flagAssetId, listPropClusterAssets
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/free-guide-page-nature-stacks-buildings-props.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-local-all-buildings-factions-neutral-harbors.png
  • Docs: docs/pillars/02-asset-taxonomy.md, docs/guides/public-api.md
  • Scenario: page-03-road-variations
  • Edition: free
  • Source image: docs/assets/kaykit-guide/pages/page-03.png
  • Asset coverage: 15 unique, 15 FREE, 0 EXTRA, 15 occurrences
  • Roles: road-tile
  • Public API treatment: GameboardBuilder.addRoadPath, listRoadGuidePermutations, selectRoadVariant, selectRoadVariantByLabel
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/free-guide-roads-all-labels-rotations.png
  • Docs: docs/pillars/01-tiles-connectivity.md, docs/pillars/04-visual-verification.md
  • Scenario: page-04-river-variations
  • Edition: free
  • Source image: docs/assets/kaykit-guide/pages/page-04.png
  • Asset coverage: 30 unique, 30 FREE, 0 EXTRA, 30 occurrences
  • Roles: river-tile
  • Public API treatment: GameboardBuilder.addRiverPath, listRiverCrossingGuidePermutations, listRiverCurvyGuidePermutations, listRiverGuidePermutations, selectRiverCrossingVariant, selectRiverVariant, selectRiverVariantByLabel
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/free-guide-rivers-all-labels-rotations-water-waterless.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/free-guide-river-curvy-crossings-all-modes.png
  • Docs: docs/pillars/01-tiles-connectivity.md, docs/pillars/04-visual-verification.md
  • Scenario: page-05-nature-contents
  • Edition: free
  • Source image: docs/assets/kaykit-guide/pages/page-05.png
  • Asset coverage: 77 unique, 68 FREE, 9 EXTRA, 77 occurrences
  • Roles: nature-decoration, prop
  • Public API treatment: GameboardBuilder.addFlag, GameboardBuilder.addForest, GameboardBuilder.addHarbor, GameboardBuilder.addHill, GameboardBuilder.addMountainStack, GameboardBuilder.addNature, GameboardBuilder.addProp, GameboardBuilder.addPropCluster, GameboardBuilder.scatterDecorations, createGameboardLayoutFillRuleFromPiece, createGameboardBlueprintRecipe, flagAssetId, listPropClusterAssets
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/free-guide-page-nature-stacks-buildings-props.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-local-all-decoration-nature-props.png
  • Docs: docs/pillars/02-asset-taxonomy.md, docs/pillars/05-koota-runtime-rules.md
  • Scenario: page-06-nature-usage
  • Edition: free
  • Source image: docs/assets/kaykit-guide/pages/page-06.png
  • Asset coverage: 42 unique, 42 FREE, 0 EXTRA, 42 occurrences
  • Roles: nature-decoration
  • Public API treatment: GameboardBuilder.addForest, GameboardBuilder.addHill, GameboardBuilder.addMountainStack, GameboardBuilder.addNature, GameboardBuilder.scatterDecorations, createGameboardLayoutArchetypeRegistry, createGameboardLayoutFillRuleFromPiece, createGameboardBlueprintPlan, inspectGameboardBlueprint
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/free-guide-page-nature-stacks-buildings-props.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/free-generated-piece-recipe.png
  • Docs: docs/pillars/02-asset-taxonomy.md, docs/pillars/05-koota-runtime-rules.md
  • Scenario: page-07-water-usage
  • Edition: free
  • Source image: docs/assets/kaykit-guide/pages/page-07.png
  • Asset coverage: 44 unique, 44 FREE, 0 EXTRA, 44 occurrences
  • Roles: base-tile, coast-tile, neutral-structure, river-tile
  • Public API treatment: GameboardBuilder.addBridge, GameboardBuilder.addHarbor, GameboardBuilder.addNeutralStructure, GameboardBuilder.addRiverPath, GameboardBuilder.setCoastEdges, GameboardBuilder.setTerrain, GameboardBuilder.setTileAsset, createGameboardPlanFromRecipe, createGameboardPlanFromTiles, listCoastGuidePermutations, listRiverCrossingGuidePermutations, listRiverCurvyGuidePermutations, listRiverGuidePermutations, selectCoastVariant, selectCoastVariantByLabel, selectRiverCrossingVariant, selectRiverVariant, selectRiverVariantByLabel
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/free-guide-coasts-all-labels-rotations-water-waterless.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/free-guide-rivers-all-labels-rotations-water-waterless.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-harbor-gameboard.png
  • Docs: docs/pillars/01-tiles-connectivity.md, docs/pillars/04-visual-verification.md
  • Scenario: page-08-taller-hex-tiles
  • Edition: free
  • Source image: docs/assets/kaykit-guide/pages/page-08.png
  • Asset coverage: 3 unique, 3 FREE, 0 EXTRA, 3 occurrences
  • Roles: base-tile, support-tile
  • Public API treatment: GameboardBuilder.addElevationRamp, GameboardBuilder.addMountainStack, GameboardBuilder.setElevation, GameboardBuilder.setTileAsset, createGameboardPlanFromRecipe, createGameboardBlueprintRecipe
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/free-guide-page-nature-stacks-buildings-props.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/free-gameboard-recipe.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/free-blueprint-builder-showcase.png
  • Docs: docs/pillars/01-tiles-connectivity.md, docs/pillars/05-koota-runtime-rules.md
  • Scenario: page-09-world-design-example
  • Edition: free
  • Source image: docs/assets/kaykit-guide/pages/page-09.png
  • Asset coverage: 61 unique, 61 FREE, 0 EXTRA, 61 occurrences
  • Roles: base-tile, nature-decoration, neutral-structure, road-tile
  • Public API treatment: GameboardBuilder.addBridge, GameboardBuilder.addForest, GameboardBuilder.addHill, GameboardBuilder.addMountainStack, GameboardBuilder.addNature, GameboardBuilder.addNeutralStructure, GameboardBuilder.addRoadPath, GameboardBuilder.scatterDecorations, GameboardBuilder.setTerrain, GameboardBuilder.setTileAsset, createGameboardBuilder, createGameboardLayoutFillRuleFromPiece, createGameboardPlanFromRecipe, createGameboardPlanFromTiles, createGameboardRuntimeFromScenario, createMedievalShowcaseBlueprintRecipe, createSeededGameboardPlan, listRoadGuidePermutations, selectRoadVariant, selectRoadVariantByLabel, selectSpawnCoordinates
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/free-gameboard-recipe.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/free-blueprint-builder-showcase.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/free-seeded-gameboard.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/simple-rpg-fixed-completed.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-blueprint-biome-transition-showcase.png
  • Docs: docs/guides/recipes-scenarios-and-simulation.md, docs/pillars/05-koota-runtime-rules.md
  • Scenario: page-10-floating-islands
  • Edition: free
  • Source image: docs/assets/kaykit-guide/pages/page-10.png
  • Asset coverage: 45 unique, 45 FREE, 0 EXTRA, 45 occurrences
  • Roles: base-tile, nature-decoration, support-tile
  • Public API treatment: GameboardBuilder.addElevationRamp, GameboardBuilder.addForest, GameboardBuilder.addHill, GameboardBuilder.addMountainStack, GameboardBuilder.addNature, GameboardBuilder.scatterDecorations, GameboardBuilder.setElevation, GameboardBuilder.setTileAsset, createGameboardLayoutFillRuleFromPiece, createGameboardPlanFromRecipe, createHexagonGameboardGrid, createGameboardBlueprintPlan
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/free-seeded-hex-gameboard.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/free-guide-page-nature-stacks-buildings-props.png
  • Docs: docs/pillars/02-asset-taxonomy.md, docs/pillars/05-koota-runtime-rules.md
  • Scenario: page-11-biomes
  • Edition: extra
  • Source image: docs/assets/kaykit-guide/pages/page-11.png
  • Asset coverage: 1 unique, 0 FREE, 1 EXTRA, 1 occurrence
  • Roles: transition-tile
  • Public API treatment: GameboardBuilder.addTransition, createGameboardPlanFromRecipe, createGameboardBlueprintRecipe, inspectGameboardBlueprint, textureFileName, validateGameboardRecipe
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-local-all-tiles-guide-and-transitions.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-seasonal-textures.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-blueprint-biome-transition-showcase.png
  • Docs: docs/pillars/03-editions-and-ingest.md, docs/guides/rendering-assets-and-external-packs.md
  • Scenario: page-12-alternate-textures
  • Edition: extra
  • Source image: docs/assets/kaykit-guide/pages/page-12.png
  • Asset coverage: 1 unique, 0 FREE, 1 EXTRA, 1 occurrence
  • Roles: transition-tile
  • Public API treatment: GameboardBuilder.addTransition, createGameboardPlanFromRecipe, createManifestBundle, declarative-hex-worlds manifest, selectManifestAssets, textureFileName, validateGameboardRecipe
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-seasonal-textures.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-local-all-tiles-guide-and-transitions.png
  • Docs: docs/pillars/03-editions-and-ingest.md, docs/guides/rendering-assets-and-external-packs.md
  • Scenario: page-13-transition-tiles
  • Edition: extra
  • Source image: docs/assets/kaykit-guide/pages/page-13.png
  • Asset coverage: 1 unique, 0 FREE, 1 EXTRA, 1 occurrence
  • Roles: transition-tile
  • Public API treatment: GameboardBuilder.addTransition, analyzeHexTileRegistry, createGameboardPlanFromRecipe, createGameboardBlueprintRecipe, createMedievalShowcaseBlueprintRecipe, declareHexTile, validateGameboardRecipe, validateGameboardRecipeGeneration
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-local-all-tiles-guide-and-transitions.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-seasonal-textures.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-blueprint-biome-transition-showcase.png
  • Docs: docs/pillars/01-tiles-connectivity.md, docs/pillars/03-editions-and-ingest.md
  • Scenario: page-14-units
  • Edition: extra
  • Source image: docs/assets/kaykit-guide/pages/page-14.png
  • Asset coverage: 137 unique, 0 FREE, 137 EXTRA, 137 occurrences
  • Roles: colored-unit-part, neutral-unit-part
  • Public API treatment: GameboardBuilder.addUnit, GameboardBuilder.addUnitPreset, coloredUnitAssetId, neutralUnitAssetId, spawnGameboardActor
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-local-all-units-full-accent-neutral-siege.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/simple-rpg-local-third-party-assets.png
  • Docs: docs/pillars/02-asset-taxonomy.md, docs/guides/runtime-integration.md
  • Scenario: page-15-shipyard-harbors
  • Edition: mixed
  • Source image: docs/assets/kaykit-guide/pages/page-15.png
  • Asset coverage: 25 unique, 14 FREE, 11 EXTRA, 25 occurrences
  • Roles: coast-tile, faction-building, prop
  • Public API treatment: GameboardBuilder.addFactionBuilding, GameboardBuilder.addHarbor, GameboardBuilder.addProp, GameboardBuilder.addPropCluster, GameboardBuilder.addUnitPreset, GameboardBuilder.setCoastEdges, createGameboardLayoutFillRuleFromPiece, externalAssetSpawnOptions, factionBuildingAssetId, listCoastGuidePermutations, listPropClusterAssets, selectCoastVariant, selectCoastVariantByLabel
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-harbor-gameboard.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-local-all-buildings-factions-neutral-harbors.png
  • Docs: docs/pillars/02-asset-taxonomy.md, docs/pillars/03-editions-and-ingest.md
  • Scenario: page-16-stables-and-horses
  • Edition: extra
  • Source image: docs/assets/kaykit-guide/pages/page-16.png
  • Asset coverage: 155 unique, 11 FREE, 144 EXTRA, 155 occurrences
  • Roles: colored-unit-part, faction-building, neutral-structure, neutral-unit-part, prop
  • Public API treatment: GameboardBuilder.addFactionBuilding, GameboardBuilder.addFortification, GameboardBuilder.addNeutralStructure, GameboardBuilder.addProp, GameboardBuilder.addPropCluster, GameboardBuilder.addSettlement, GameboardBuilder.addUnit, GameboardBuilder.addUnitPreset, coloredUnitAssetId, createGameboardLayoutFillRuleFromPiece, createGameboardPlanFromRecipe, factionBuildingAssetId, listPropClusterAssets, neutralUnitAssetId, recommendExternalAssetFacing, spawnGameboardActor
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-local-all-units-full-accent-neutral-siege.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-local-all-decoration-nature-props.png
  • Docs: docs/pillars/02-asset-taxonomy.md, docs/guides/rendering-assets-and-external-packs.md
  • Scenario: page-17-workshop-and-siege
  • Edition: extra
  • Source image: docs/assets/kaykit-guide/pages/page-17.png
  • Asset coverage: 170 unique, 22 FREE, 148 EXTRA, 170 occurrences
  • Roles: colored-unit-part, faction-building, neutral-structure, neutral-unit-part, prop
  • Public API treatment: GameboardBuilder.addConstructionSite, GameboardBuilder.addFactionBuilding, GameboardBuilder.addFortification, GameboardBuilder.addNeutralStructure, GameboardBuilder.addProp, GameboardBuilder.addPropCluster, GameboardBuilder.addSettlement, GameboardBuilder.addSiegeProjectile, GameboardBuilder.addUnit, GameboardBuilder.addUnitPreset, coloredUnitAssetId, createGameboardLayoutFillRuleFromPiece, createGameboardPlanFromRecipe, executeGameboardInteractionCommand, factionBuildingAssetId, listPropClusterAssets, neutralUnitAssetId, planGameboardInteractionCommand, spawnGameboardActor
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-local-all-buildings-factions-neutral-harbors.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-local-all-units-full-accent-neutral-siege.png
  • Docs: docs/pillars/02-asset-taxonomy.md, docs/guides/runtime-integration.md
  • Scenario: page-18-unit-combinations
  • Edition: extra
  • Source image: docs/assets/kaykit-guide/pages/page-18.png
  • Asset coverage: 137 unique, 0 FREE, 137 EXTRA, 137 occurrences
  • Roles: colored-unit-part, neutral-unit-part
  • Public API treatment: GameboardBuilder.addUnit, GameboardBuilder.addUnitPreset, coloredUnitAssetId, createGameboardRuntimeFromScenario, neutralUnitAssetId, spawnGameboardActor
  • Visual artifacts: packages/declarative-hex-worlds/tests/browser/__screenshots__/extra-local-all-units-full-accent-neutral-siege.png, packages/declarative-hex-worlds/tests/browser/__screenshots__/simple-rpg-seeded-completed.png
  • Docs: docs/pillars/02-asset-taxonomy.md, docs/guides/recipes-scenarios-and-simulation.md
  • Scenario: page-19-supporters-and-attribution
  • Edition: reference
  • Source image: docs/assets/kaykit-guide/pages/page-19.png
  • Asset coverage: 0 unique, 0 FREE, 0 EXTRA, 0 occurrences
  • Roles: reference-only
  • Public API treatment: NOTICE.md, listKayKitGuideScenarios, package.json files
  • Visual artifacts: docs/assets/kaykit-guide/pages/page-19.png, NOTICE.md
  • Docs: NOTICE.md, docs/pillars/00-library-charter.md, README.md

The asset index starts from a manifest id and reports the exact role, public API surface, source images, docs, and screenshots that keep that GLTF from being a passive file reference:

import {
describeKayKitGuideAssetCoverage,
listKayKitGuideAssetCoverages,
} from 'declarative-hex-worlds/catalog';
const roadM = describeKayKitGuideAssetCoverage('hex_road_M');
const allAssetCoverage = listKayKitGuideAssetCoverages();

The usage index preserves repeated page-level asset occurrences for contact sheets, renderer tests, and audit tools that need the exact FREE/EXTRA guide scenario workload instead of only unique coverage rows:

import {
listKayKitGuideScenarioAssetRenderGroups,
listKayKitGuideScenarioAssetRenderRequests,
listKayKitGuideScenarioAssetUsages,
listKayKitGuideScenarioAssetUsagesForScenario,
} from 'declarative-hex-worlds/catalog';
const freeGuideAssets = listKayKitGuideScenarioAssetUsages({ minimumEdition: "free" });
const stableWorkshopUnits = listKayKitGuideScenarioAssetUsages({ pages: [16, 17, 18] });
const freeRenderQueue = listKayKitGuideScenarioAssetRenderRequests({
minimumEdition: "free",
assetBaseUrl: "/assets/free",
});
const groupedRenderQueue = listKayKitGuideScenarioAssetRenderGroups({ pages: [16, 17, 18] });
const page14Units = listKayKitGuideScenarioAssetUsagesForScenario('page-14-units');

The role index starts from a gameplay use case and reports every guide page, asset id, public API, doc, and screenshot that exercises that role:

import {
describeKayKitGuideRoleCoverage,
listKayKitGuideRoleCoverages,
} from 'declarative-hex-worlds/catalog';
const props = describeKayKitGuideRoleCoverage('prop');
const allRoleCoverage = listKayKitGuideRoleCoverages();
  • Pages: 07, 08, 09, 10
  • Asset coverage: 4 unique, 4 FREE, 0 EXTRA, 8 occurrences
  • Public API treatment: GameboardBuilder.addElevationRamp, GameboardBuilder.addMountainStack, GameboardBuilder.setTerrain, GameboardBuilder.setTileAsset, createGameboardPlanFromRecipe, createGameboardPlanFromTiles
  • Scenarios: page-07-water-usage, page-08-taller-hex-tiles, page-09-world-design-example, page-10-floating-islands
  • Pages: 07, 15
  • Asset coverage: 10 unique, 10 FREE, 0 EXTRA, 20 occurrences
  • Public API treatment: GameboardBuilder.addHarbor, GameboardBuilder.setCoastEdges, listCoastGuidePermutations, selectCoastVariant, selectCoastVariantByLabel
  • Scenarios: page-07-water-usage, page-15-shipyard-harbors
  • Pages: 14, 16, 17, 18
  • Asset coverage: 112 unique, 0 FREE, 112 EXTRA, 448 occurrences
  • Public API treatment: GameboardBuilder.addUnit, GameboardBuilder.addUnitPreset, coloredUnitAssetId, spawnGameboardActor
  • Scenarios: page-14-units, page-16-stables-and-horses, page-17-workshop-and-siege, page-18-unit-combinations
  • Pages: 02, 15, 16, 17
  • Asset coverage: 108 unique, 72 FREE, 36 EXTRA, 132 occurrences
  • Public API treatment: GameboardBuilder.addFactionBuilding, GameboardBuilder.addHarbor, GameboardBuilder.addSettlement, factionBuildingAssetId
  • Scenarios: page-02-buildings-props-and-factions, page-15-shipyard-harbors, page-16-stables-and-horses, page-17-workshop-and-siege
  • Pages: 05, 06, 09, 10
  • Asset coverage: 42 unique, 42 FREE, 0 EXTRA, 168 occurrences
  • Public API treatment: GameboardBuilder.addForest, GameboardBuilder.addHill, GameboardBuilder.addMountainStack, GameboardBuilder.addNature, GameboardBuilder.scatterDecorations, createGameboardLayoutFillRuleFromPiece
  • Scenarios: page-05-nature-contents, page-06-nature-usage, page-09-world-design-example, page-10-floating-islands
  • Pages: 02, 07, 09, 16, 17
  • Asset coverage: 21 unique, 21 FREE, 0 EXTRA, 55 occurrences
  • Public API treatment: GameboardBuilder.addBridge, GameboardBuilder.addConstructionSite, GameboardBuilder.addFortification, GameboardBuilder.addNeutralStructure, GameboardBuilder.addSiegeProjectile, createGameboardPlanFromRecipe
  • Scenarios: page-02-buildings-props-and-factions, page-07-water-usage, page-09-world-design-example, page-16-stables-and-horses, page-17-workshop-and-siege
  • Pages: 14, 16, 17, 18
  • Asset coverage: 25 unique, 0 FREE, 25 EXTRA, 100 occurrences
  • Public API treatment: GameboardBuilder.addUnit, GameboardBuilder.addUnitPreset, neutralUnitAssetId, spawnGameboardActor
  • Scenarios: page-14-units, page-16-stables-and-horses, page-17-workshop-and-siege, page-18-unit-combinations
  • Pages: 02, 05, 15, 16, 17
  • Asset coverage: 35 unique, 26 FREE, 9 EXTRA, 82 occurrences
  • Public API treatment: GameboardBuilder.addFlag, GameboardBuilder.addHarbor, GameboardBuilder.addProp, GameboardBuilder.addPropCluster, createGameboardLayoutFillRuleFromPiece, flagAssetId, listPropClusterAssets
  • Scenarios: page-02-buildings-props-and-factions, page-05-nature-contents, page-15-shipyard-harbors, page-16-stables-and-horses, page-17-workshop-and-siege
  • Pages: 04, 07
  • Asset coverage: 30 unique, 30 FREE, 0 EXTRA, 60 occurrences
  • Public API treatment: GameboardBuilder.addRiverPath, listRiverCrossingGuidePermutations, listRiverCurvyGuidePermutations, listRiverGuidePermutations, selectRiverCrossingVariant, selectRiverVariant, selectRiverVariantByLabel
  • Scenarios: page-04-river-variations, page-07-water-usage
  • Pages: 03, 09
  • Asset coverage: 15 unique, 15 FREE, 0 EXTRA, 30 occurrences
  • Public API treatment: GameboardBuilder.addRoadPath, listRoadGuidePermutations, selectRoadVariant, selectRoadVariantByLabel
  • Scenarios: page-03-road-variations, page-09-world-design-example
  • Pages: 08, 10
  • Asset coverage: 1 unique, 1 FREE, 0 EXTRA, 2 occurrences
  • Public API treatment: GameboardBuilder.addMountainStack, GameboardBuilder.setTileAsset, createGameboardPlanFromRecipe
  • Scenarios: page-08-taller-hex-tiles, page-10-floating-islands
  • Pages: 11, 12, 13
  • Asset coverage: 1 unique, 0 FREE, 1 EXTRA, 3 occurrences
  • Public API treatment: GameboardBuilder.addTransition, createGameboardPlanFromRecipe, validateGameboardRecipe
  • Scenarios: page-11-biomes, page-12-alternate-textures, page-13-transition-tiles

The page matrix flows from guide page to public API. The inverse query starts from an API surface and reports every guide page, asset id, role, doc, and screenshot that exercises it:

import {
describeKayKitGuidePublicApiCoverage,
listKayKitGuidePublicApiCoverages,
} from 'declarative-hex-worlds/catalog';
const harbor = describeKayKitGuidePublicApiCoverage('GameboardBuilder.addHarbor');
const allApiCoverage = listKayKitGuidePublicApiCoverages();

For example, GameboardBuilder.addHarbor maps to pages 02, 05, 07, and 15, covering coast tiles, faction buildings, and props across FREE and EXTRA source material. GameboardBuilder.addBridge maps to pages 02, 07, and 09, covering the FREE bridge structures used by road and water crossings. GameboardBuilder.addElevationRamp maps to pages 08 and 10, covering the FREE sloped grass tiles used by vertical terrain transitions. GameboardBuilder.addFortification, GameboardBuilder.addConstructionSite, and GameboardBuilder.addSiegeProjectile cover the remaining FREE neutral wall, fence, construction, ruin, and projectile structures as authored gameplay intent instead of only raw neutral placements. GameboardBuilder.addPropCluster maps non-flag props to camps, resource caches, worksites, training yards, stable yards, and harbor support dressing with density, single-tile stacking, adjacent spread, and local EXTRA opt-in. GameboardBuilder.addUnitPreset maps to pages 14 through 18 and is EXTRA-only because the unit assembly pieces are local-ingest assets.