Skip to main content

generateDrawStructuresAndLinks

8.0.0 engine API transition

This method is a candidate for removal from production governors and engine exports at 8.0.0. Its 7.x route has not been removed. Final removal and standalone package-export decisions require the per-method review and external-integrator confirmation described in the transition index.

Source-local contract​

The declaration below is copied from the pinned source revision; referenced types are defined there. It is an implementation signature, not a package import example.

export function generateDrawStructuresAndLinks(params: GenerateDrawStructuresAndLinksArgs);

Engine effects​

State writes: not yet assessed. Notices: not yet assessed. Governor query/mutate placement is not proof of purity; review the implementation and engine path before deciding exposure.

Consumer evidence​

The refreshed source-name scan found no name mentions in the scanned product source files. This does not establish external-integrator non-use. The manifest records repository revisions and scan exclusions. External-integrator confirmation is pending.

Availability and ownership​

  • Production governor declarations: drawsGovernor, generationGovernor.
  • Standalone package API after 8.0.0: decision pending; this page does not establish a supported import.
  • Implementation: src/assemblies/generators/drawDefinitions/generateDrawStructuresAndLinks.ts — generateDrawStructuresAndLinks. Source paths and aliases are not package import paths.
  • Replacement workflow: not yet established; no supported replacement is promised.
  • Test-only adapters: may exercise this implementation independently of production engine exports; this is not evidence of product use.

Preserved 7.x reference​

The passages below preserve the existing governor documentation. Engine examples describe 7.x availability, not an 8.x replacement. Source contracts take precedence where an explicitly noted correction applies.

From governors/draws-governor.md​

Generates multiple structures with linking for complex draw formats.

const { structures, links } = engine.generateDrawStructuresAndLinks({
drawDefinition, // required
drawType, // required
drawSize, // required
});

Purpose: Create multi-structure draws with automatic linking.


From governors/generation-governor.md​

Low-level method that generates structures and links for various draw types. Typically called internally by generateDrawDefinition.

const { structures, links } = engine.generateDrawStructuresAndLinks({
drawDefinition, // required - target drawDefinition to modify
drawType, // required - SINGLE_ELIMINATION, ROUND_ROBIN, etc.
drawSize, // required - number of draw positions
structureName, // optional - custom name for main structure
matchUpType, // optional - SINGLES, DOUBLES, TEAM
tieFormat, // optional - for TEAM matchUps
qualifyingProfiles, // optional - array of qualifying structure configs
staggeredEntry, // optional - allows non-power-of-2 drawSizes
playoffAttributes, // optional - playoff structure naming
appliedPolicies, // optional - seeding/avoidance policies
enforceMinimumDrawSize, // optional boolean - defaults to true
drawTypeCoercion, // optional boolean - coerce to SINGLE_ELIMINATION for drawSize: 2
overwriteExisting, // optional boolean - replace existing structures
uuids, // optional - array of UUIDs for structures/matchUps
});

Returns:

{
structures: Structure[]; // Generated structure objects
links: DrawLink[]; // Generated link objects (for multi-stage draws)
error?: ErrorType;
}

Purpose: Core method for generating draw structures. Handles all draw type logic including:

  • Single elimination brackets
  • Round robin groups
  • Consolation structures
  • Qualifying structures
  • Playoff structures
  • Feed-in and staggered entry

Notes:

  • Used internally by generateDrawDefinition
  • Returns generated structures and links; existing qualifying structures may be reconciled during generation
  • Handles complex multi-structure draw types (Curtis, FMLC, Compass, etc.)
  • Validates draw size and structure compatibility