---
id: ATS-MBR-STR-001
scope: CAP-MBR-STR-001
product_area: membership
module: structure
revision: 2
status: proposed
approved_by: null
approved_at: null
source_sha:
  services-membership: 5994c270e8a37a30f848e99ba5b5ee6b87c08893
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
scenarios:
  - id: ATS-MBR-STR-001-01
    title: Readable kind identity survives replacement
    level: api
    proves:
      - BR-CAP-MBR-STR-001-01
    preconditions: >-
      An isolated Membership-licensed workspace contains the relevant records, with caller permissions
      selected for the case.
    steps: 'Save one kind with an explicit reference and another by name, then replace the first kind.'
    expected: The explicit and derived references remain the saved identities.
    negative: false
    data_needs: The FAA example records or equivalent records prepared within the isolated workspace.
    bound_to:
      - >-
        services-membership:tests/acceptance/structure/MBR-ACC-0001.acceptance.ts#MBR-ACC-0001 staff
        define, rename, retire and delete kinds of unit
      - TST-MBR-STR-060
    provenance: test
    source: >-
      services-membership:tests/acceptance/structure/MBR-ACC-0001.acceptance.ts#MBR-ACC-0001 staff
      define, rename, retire and delete kinds of unit
    category: rule
  - id: ATS-MBR-STR-001-02
    title: Non-root kinds need a parent choice
    level: api
    proves:
      - BR-CAP-MBR-STR-001-02
    preconditions: >-
      An isolated Membership-licensed workspace contains the relevant records, with caller permissions
      selected for the case.
    steps: Attempt a non-root kind with an empty parent selection.
    expected: Validation rejects the request and the catalogue has no added kind.
    negative: true
    data_needs: The FAA example records or equivalent records prepared within the isolated workspace.
    bound_to: []
    provenance: proposed
    source: 'services-membership:modules/structure/services/persistence/organizational-unit-types.ts:parentIdsOf'
    category: validation
  - id: ATS-MBR-STR-001-03
    title: Parent references are known or self-referential
    level: api
    proves:
      - BR-CAP-MBR-STR-001-03
    preconditions: >-
      An isolated Membership-licensed workspace contains the relevant records, with caller permissions
      selected for the case.
    steps: Compare creation with an unknown parent kind and creation allowing its own kind.
    expected: The unknown choice fails and the self-referential choice saves.
    negative: true
    data_needs: The FAA example records or equivalent records prepared within the isolated workspace.
    bound_to: []
    provenance: proposed
    source: >-
      services-membership:modules/structure/services/persistence/organizational-unit-types.ts:requireKnownTypes
    category: validation
  - id: ATS-MBR-STR-001-04
    title: Duplicate kind creation preserves the first record
    level: api
    proves:
      - BR-CAP-MBR-STR-001-04
    preconditions: >-
      An isolated Membership-licensed workspace contains the relevant records, with caller permissions
      selected for the case.
    steps: Submit two creates using the same kind reference.
    expected: The second response reports a conflict and retains the first record.
    negative: true
    data_needs: The FAA example records or equivalent records prepared within the isolated workspace.
    bound_to: []
    provenance: proposed
    source: >-
      services-membership:modules/structure/services/persistence/organizational-unit-types.ts:createOrganizationalUnitType
    category: edge
  - id: ATS-MBR-STR-001-05
    title: Existing placements protect category choices
    level: api
    proves:
      - BR-CAP-MBR-STR-001-05
      - INV-DOM-MBR-STR-001-05
    preconditions: >-
      An isolated Membership-licensed workspace contains the relevant records, with caller permissions
      selected for the case.
    steps: Remove zone parentage while the chapter category still has units under zones.
    expected: The response identifies the in-use placement choice and saves no replacement.
    negative: true
    data_needs: The FAA example records or equivalent records prepared within the isolated workspace.
    bound_to:
      - >-
        services-membership:tests/acceptance/structure/MBR-ACC-0003.acceptance.ts#MBR-ACC-0003 a tree
        rule chapters rely on cannot be withdrawn until they move
      - TST-MBR-STR-062
    provenance: test
    source: >-
      services-membership:tests/acceptance/structure/MBR-ACC-0003.acceptance.ts#MBR-ACC-0003 a tree rule
      chapters rely on cannot be withdrawn until they move
    category: interaction
  - id: ATS-MBR-STR-001-06
    title: Version checks precede a complete replacement
    level: api
    proves:
      - BR-CAP-MBR-STR-001-06
    preconditions: >-
      An isolated Membership-licensed workspace contains the relevant records, with caller permissions
      selected for the case.
    steps: 'Submit a stale kind replacement, then a current replacement without plural name or display order.'
    expected: The stale write fails; the accepted replacement clears the plural and restores zero ordering.
    negative: true
    data_needs: The FAA example records or equivalent records prepared within the isolated workspace.
    bound_to:
      - >-
        services-membership:tests/acceptance/structure/MBR-ACC-0001.acceptance.ts#MBR-ACC-0001 staff
        define, rename, retire and delete kinds of unit
      - TST-MBR-STR-060
    provenance: test
    source: >-
      services-membership:tests/acceptance/structure/MBR-ACC-0001.acceptance.ts#MBR-ACC-0001 staff
      define, rename, retire and delete kinds of unit
    category: concurrency
  - id: ATS-MBR-STR-001-07
    title: Kind retirement blocks placement until reactivation
    level: api
    proves:
      - BR-CAP-MBR-STR-001-07
    preconditions: >-
      An isolated Membership-licensed workspace contains the relevant records, with caller permissions
      selected for the case.
    steps: >-
      Deactivate sections, attempt section creation and relocation, then reactivate the kind through
      replacement.
    expected: Retirement preserves existing sections and blocks placement work until reactivation.
    negative: false
    data_needs: The FAA example records or equivalent records prepared within the isolated workspace.
    bound_to:
      - >-
        services-membership:tests/acceptance/structure/MBR-ACC-0004.acceptance.ts#MBR-ACC-0004 retiring
        the Section kind freezes every section in place
      - TST-MBR-STR-063
    provenance: test
    source: >-
      services-membership:tests/acceptance/structure/MBR-ACC-0004.acceptance.ts#MBR-ACC-0004 retiring the
      Section kind freezes every section in place
    category: transition
  - id: ATS-MBR-STR-001-08
    title: Unit and program references prevent kind removal
    level: api
    proves:
      - BR-CAP-MBR-STR-001-08
    preconditions: >-
      An isolated Membership-licensed workspace contains the relevant records, with caller permissions
      selected for the case.
    steps: Attempt removal of a unit-used kind and a program-selected kind.
    expected: Both conflict responses leave the referenced kinds available.
    negative: true
    data_needs: The FAA example records or equivalent records prepared within the isolated workspace.
    bound_to:
      - >-
        services-membership:tests/e2e/structure-api.e2e.spec.ts#the structure API, end to end in process
        › refuses to delete a unit type in use, 409 unit_type_in_use
      - >-
        services-membership:tests/e2e/database-refusals.e2e.spec.ts#mistakes only the database catches,
        through the API › DEF-MBR-0084: a structure delete a program’s reference blocks › refuses
        deleting a unit type a program lists 409 unit_type_in_use, and keeps it
      - >-
        services-membership:tests/acceptance/structure/MBR-ACC-0037.acceptance.ts#MBR-ACC-0037 what other
        parts of Membership name in the structure
      - TST-MBR-STR-100
      - TST-MBR-STR-095
      - TST-MBR-STR-094
    provenance: test
    source: >-
      services-membership:tests/e2e/structure-api.e2e.spec.ts#the structure API, end to end in process ›
      refuses to delete a unit type in use, 409 unit_type_in_use
    category: failure
  - id: ATS-MBR-STR-001-09
    title: Kind browsing follows saved presentation choices
    category: rule
    level: api
    proves:
      - BR-CAP-MBR-STR-001-09
    preconditions: An isolated workspace contains the records and current versions needed for the case.
    steps: >-
      Create three kinds with display positions 2, 1 and 2; page twice and repeat with retired kinds
      excluded.
    expected: >-
      The first page begins with position 1; tied positions use readable-reference order, and the retired
      example is absent from the active view.
    negative: false
    data_needs: Separate fixture records for the accepted and refused operations.
    bound_to: []
    provenance: proposed
    source:
      - >-
        services-membership:modules/structure/services/persistence/organizational-unit-types.ts:listOrganizationalUnitTypes
  - id: ATS-MBR-STR-001-10
    title: Disabling affiliation eligibility preserves existing ties
    category: interaction
    level: api
    proves:
      - BR-CAP-MBR-STR-001-10
    preconditions: An isolated workspace contains the records and current versions needed for the case.
    steps: >-
      Record one chapter affiliation, disable the kind’s affiliation switch and attempt a second
      affiliation.
    expected: The earlier affiliation keeps its dates and identity; the new affiliation is refused.
    negative: false
    data_needs: Separate fixture records for the accepted and refused operations.
    bound_to: []
    provenance: proposed
    source:
      - >-
        services-membership:modules/structure/services/persistence/organizational-unit-types.ts:updateOrganizationalUnitType
  - id: ATS-MBR-STR-001-11
    title: Retirement changes placement eligibility
    category: interaction
    level: api
    proves:
      - BR-CAP-MBR-STR-001-07
      - BR-CAP-MBR-STR-002-03
    preconditions: An isolated workspace contains the records and current versions needed for the case.
    steps: >-
      Retire the section kind, attempt a new section and a section move, reactivate the kind and repeat
      the placement work.
    expected: >-
      Both retired-kind operations fail; after reactivation valid placement succeeds and the earlier tree
      remains recognizable.
    negative: false
    data_needs: Separate fixture records for the accepted and refused operations.
    bound_to: []
    provenance: proposed
    source:
      - 'services-membership:modules/structure/services/tree/tree-edits.ts:validatePlacement'
      - >-
        services-membership:modules/structure/tests/integration/services/persistence/organizational-units.integration.spec.ts#organizational
        units in the database › the refusals › refuses a new child under an inactive unit
    exercises:
      - CAP-MBR-STR-001
      - CAP-MBR-STR-002
  - id: ATS-MBR-STR-001-12
    title: Program references protect the kind catalogue
    category: interaction
    level: api
    proves:
      - BR-CAP-MBR-STR-001-08
      - BR-CAP-MBR-STR-010-01
    preconditions: An isolated workspace contains the records and current versions needed for the case.
    steps: >-
      Select a kind in a program requirement list and attempt kind deletion; clear the unused requirement
      and retry.
    expected: The selected kind is protected; the released unused kind can be removed.
    negative: false
    data_needs: Separate fixture records for the accepted and refused operations.
    bound_to: []
    provenance: proposed
    source:
      - >-
        services-membership:tests/e2e/structure-api.e2e.spec.ts#the structure API, end to end in process
        › refuses to delete a unit type in use, 409 unit_type_in_use
      - >-
        services-membership:modules/configuration/services/configuration/configuration-records.ts:replaceProgramUnitTypesOf
    exercises:
      - CAP-MBR-STR-001
      - CAP-MBR-STR-010
  - id: ATS-MBR-STR-001-13
    title: Workspace authority gates this capability
    category: permission
    level: api
    proves:
      - BR-CAP-MBR-STR-019-01
    preconditions: An isolated workspace contains the records and current versions needed for the case.
    steps: >-
      Exercise the capability’s exposed operations with its read-only and management callers, then repeat
      with application access removed, an unlicensed workspace and an unavailable workspace.
    expected: >-
      Each named operation requires its declared authority; admission failures occur before any record or
      calculated result is exposed.
    negative: true
    data_needs: Separate fixture records for the accepted and refused operations.
    bound_to: []
    provenance: proposed
    source:
      - >-
        services-membership:tests/unit/route-authorization.spec.ts#route authorization: every Membership
        operation names its permission › requires membership.structure.read of every structure read and
        membership.structure.manage of every change
      - >-
        services-membership:modules/configuration/aws/api/configuration.routes.ts:configurationModuleRoutes
      - >-
        services-membership:tests/e2e/terms-api.e2e.spec.ts#the terms API, end to end in process ›
        refuses a caller who holds no key in the tenant
    exercises:
      - CAP-MBR-STR-001
      - CAP-MBR-STR-019
evidence:
  - 'services-membership:tests/acceptance/structure/MBR-ACC-0001.acceptance.ts'
  - 'services-membership:tests/acceptance/structure/MBR-ACC-0003.acceptance.ts'
  - 'services-membership:tests/acceptance/structure/MBR-ACC-0004.acceptance.ts'
  - 'services-membership:tests/acceptance/structure/MBR-ACC-0037.acceptance.ts'
  - 'services-membership:tests/e2e/database-refusals.e2e.spec.ts'
  - 'services-membership:tests/e2e/structure-api.e2e.spec.ts'
  - >-
    services-membership:modules/structure/services/persistence/organizational-unit-types.ts:createOrganizationalUnitType
  - 'services-membership:modules/structure/services/persistence/organizational-unit-types.ts:parentIdsOf'
  - >-
    services-membership:modules/structure/services/persistence/organizational-unit-types.ts:requireKnownTypes
  - >-
    services-membership:modules/structure/services/persistence/organizational-unit-types.ts:updateOrganizationalUnitType
  - 'services-membership:modules/structure/services/tree/tree-edits.ts:validatePlacement'
  - >-
    services-membership:tests/e2e/structure-api.e2e.spec.ts#the structure API, end to end in process ›
    refuses to delete a unit type in use, 409 unit_type_in_use
  - >-
    services-membership:modules/structure/services/persistence/organizational-unit-types.ts:listOrganizationalUnitTypes
  - 'services-membership:modules/structure/aws/api/structure-requests.ts:unitTypeBody'
  - >-
    services-membership:tests/acceptance/structure/MBR-ACC-0001.acceptance.ts#MBR-ACC-0001 staff define,
    rename, retire and delete kinds of unit
  - >-
    services-membership:tests/acceptance/structure/MBR-ACC-0003.acceptance.ts#MBR-ACC-0003 a tree rule
    chapters rely on cannot be withdrawn until they move
  - >-
    services-membership:tests/acceptance/structure/MBR-ACC-0004.acceptance.ts#MBR-ACC-0004 retiring the
    Section kind freezes every section in place
  - >-
    services-membership:modules/structure/tests/integration/services/persistence/organizational-units.integration.spec.ts#organizational
    units in the database › the refusals › refuses a new child under an inactive unit
  - >-
    services-membership:modules/configuration/services/configuration/configuration-records.ts:replaceProgramUnitTypesOf
  - membership.structure.read
  - membership.structure.manage
  - membership.application.access
  - >-
    services-membership:tests/unit/route-authorization.spec.ts#route authorization: every Membership
    operation names its permission › requires membership.structure.read of every structure read and
    membership.structure.manage of every change
  - 'services-membership:modules/configuration/aws/api/configuration.routes.ts:configurationModuleRoutes'
  - >-
    services-membership:tests/e2e/terms-api.e2e.spec.ts#the terms API, end to end in process › refuses a
    caller who holds no key in the tenant
coverage:
  rule: covered
  transition: covered
  validation: covered
  permission: covered
  edge: covered
  failure: covered
  boundary: 'gap: FND-MBR-STR-054'
  concurrency: covered
  invariant: 'gap: FND-MBR-STR-054'
  interaction: covered
coverage_notes:
  boundary: >-
    No dedicated scenario establishes this category across the capability’s declared operations and
    design obligations.
  invariant: >-
    No dedicated scenario establishes this category across the capability’s declared operations and
    design obligations.
unproved_rules: []
coverage_obligations:
  permissions:
    - key: membership.structure.read
      scenario_ids:
        - ATS-MBR-STR-019-01
      local_scenario_ids:
        - ATS-MBR-STR-001-13
      coverage: partial
      gap: FND-MBR-STR-054
      provenance: unknown
      source: FND-MBR-STR-054
      note: >-
        These cases establish declared authority or representative admission; exhaustive operation and
        caller combinations remain open.
    - key: membership.structure.manage
      scenario_ids:
        - ATS-MBR-STR-019-01
      local_scenario_ids:
        - ATS-MBR-STR-001-13
      coverage: partial
      gap: FND-MBR-STR-054
      provenance: unknown
      source: FND-MBR-STR-054
      note: >-
        These cases establish declared authority or representative admission; exhaustive operation and
        caller combinations remain open.
    - key: membership.application.access
      scenario_ids:
        - ATS-MBR-STR-019-04
      local_scenario_ids:
        - ATS-MBR-STR-001-13
      coverage: partial
      gap: FND-MBR-STR-054
      provenance: unknown
      source: FND-MBR-STR-054
      note: >-
        These cases establish declared authority or representative admission; exhaustive operation and
        caller combinations remain open.
  state_models:
    - id: STATE-MBR-STR-002
      transitions:
        - from: active
          to: inactive
          trigger: Staff deactivate the kind or replace it with activity false.
          provenance: unknown
          source: FND-MBR-STR-054
          scenario_ids:
            - ATS-MBR-STR-001-07
          coverage: specified
          gap: null
        - from: inactive
          to: active
          trigger: Staff replace a retired kind with activity true or omit activity.
          provenance: unknown
          source: FND-MBR-STR-054
          scenario_ids:
            - ATS-MBR-STR-001-07
          coverage: specified
          gap: null
        - from: active
          to: removed
          trigger: Staff delete an active unused kind.
          provenance: unknown
          source: FND-MBR-STR-054
          scenario_ids: []
          coverage: gap
          gap: FND-MBR-STR-054
        - from: inactive
          to: removed
          trigger: Staff delete an inactive unused kind.
          provenance: unknown
          source: FND-MBR-STR-054
          scenario_ids: []
          coverage: gap
          gap: FND-MBR-STR-054
      gap: FND-MBR-STR-054
  related:
    - capability: CAP-MBR-STR-002
      scenario: ATS-MBR-STR-001-11
      provenance: proposed
    - capability: CAP-MBR-STR-010
      scenario: ATS-MBR-STR-001-12
      provenance: proposed
  invariants:
    - id: INV-DOM-MBR-STR-001-01
      scenario_ids: []
      coverage: gap
      gap: FND-MBR-STR-054
      provenance: unknown
      source: FND-MBR-STR-054
    - id: INV-DOM-MBR-STR-001-02
      scenario_ids: []
      coverage: gap
      gap: FND-MBR-STR-054
      provenance: unknown
      source: FND-MBR-STR-054
    - id: INV-DOM-MBR-STR-001-03
      scenario_ids: []
      coverage: gap
      gap: FND-MBR-STR-054
      provenance: unknown
      source: FND-MBR-STR-054
    - id: INV-DOM-MBR-STR-001-04
      scenario_ids: []
      coverage: gap
      gap: FND-MBR-STR-054
      provenance: unknown
      source: FND-MBR-STR-054
    - id: INV-DOM-MBR-STR-001-05
      scenario_ids:
        - ATS-MBR-STR-001-05
      coverage: specified
      gap: null
      provenance: documented
      source:
        - >-
          services-membership:tests/acceptance/structure/MBR-ACC-0003.acceptance.ts#MBR-ACC-0003 a tree
          rule chapters rely on cannot be withdrawn until they move
    - id: INV-DOM-MBR-STR-001-06
      scenario_ids: []
      coverage: gap
      gap: FND-MBR-STR-054
      provenance: unknown
      source: FND-MBR-STR-054
    - id: INV-DOM-MBR-STR-001-07
      scenario_ids: []
      coverage: gap
      gap: FND-MBR-STR-054
      provenance: unknown
      source: FND-MBR-STR-054
  workflows: []
  workflow_interactions: []
rule_coverage:
  - rule: BR-CAP-MBR-STR-001-01
    scenarios:
      - ATS-MBR-STR-001-01
    gap: null
    provenance: documented
    source:
      - >-
        services-membership:tests/acceptance/structure/MBR-ACC-0001.acceptance.ts#MBR-ACC-0001 staff
        define, rename, retire and delete kinds of unit
  - rule: BR-CAP-MBR-STR-001-02
    scenarios:
      - ATS-MBR-STR-001-02
    gap: null
    provenance: documented
    source:
      - >-
        services-membership:modules/structure/services/persistence/organizational-unit-types.ts:parentIdsOf
  - rule: BR-CAP-MBR-STR-001-03
    scenarios:
      - ATS-MBR-STR-001-03
    gap: null
    provenance: documented
    source:
      - >-
        services-membership:modules/structure/services/persistence/organizational-unit-types.ts:requireKnownTypes
  - rule: BR-CAP-MBR-STR-001-04
    scenarios:
      - ATS-MBR-STR-001-04
    gap: null
    provenance: documented
    source:
      - >-
        services-membership:modules/structure/services/persistence/organizational-unit-types.ts:createOrganizationalUnitType
  - rule: BR-CAP-MBR-STR-001-05
    scenarios:
      - ATS-MBR-STR-001-05
    gap: null
    provenance: documented
    source:
      - >-
        services-membership:tests/acceptance/structure/MBR-ACC-0003.acceptance.ts#MBR-ACC-0003 a tree
        rule chapters rely on cannot be withdrawn until they move
  - rule: BR-CAP-MBR-STR-001-06
    scenarios:
      - ATS-MBR-STR-001-06
    gap: null
    provenance: documented
    source:
      - >-
        services-membership:tests/acceptance/structure/MBR-ACC-0001.acceptance.ts#MBR-ACC-0001 staff
        define, rename, retire and delete kinds of unit
  - rule: BR-CAP-MBR-STR-001-07
    scenarios:
      - ATS-MBR-STR-001-07
      - ATS-MBR-STR-001-11
    gap: null
    provenance: documented
    source:
      - >-
        services-membership:tests/acceptance/structure/MBR-ACC-0004.acceptance.ts#MBR-ACC-0004 retiring
        the Section kind freezes every section in place
      - 'services-membership:modules/structure/services/tree/tree-edits.ts:validatePlacement'
      - >-
        services-membership:modules/structure/tests/integration/services/persistence/organizational-units.integration.spec.ts#organizational
        units in the database › the refusals › refuses a new child under an inactive unit
  - rule: BR-CAP-MBR-STR-001-08
    scenarios:
      - ATS-MBR-STR-001-08
      - ATS-MBR-STR-001-12
    gap: null
    provenance: documented
    source:
      - >-
        services-membership:tests/e2e/structure-api.e2e.spec.ts#the structure API, end to end in process
        › refuses to delete a unit type in use, 409 unit_type_in_use
      - >-
        services-membership:tests/e2e/structure-api.e2e.spec.ts#the structure API, end to end in process
        › refuses to delete a unit type in use, 409 unit_type_in_use
      - >-
        services-membership:modules/configuration/services/configuration/configuration-records.ts:replaceProgramUnitTypesOf
  - rule: BR-CAP-MBR-STR-001-09
    scenarios:
      - ATS-MBR-STR-001-09
    gap: null
    provenance: documented
    source:
      - >-
        services-membership:modules/structure/services/persistence/organizational-unit-types.ts:listOrganizationalUnitTypes
  - rule: BR-CAP-MBR-STR-001-10
    scenarios:
      - ATS-MBR-STR-001-10
    gap: null
    provenance: documented
    source:
      - >-
        services-membership:modules/structure/services/persistence/organizational-unit-types.ts:updateOrganizationalUnitType
narrative_sources:
  - section: Coverage
    provenance: documented
    source:
      - CAP-MBR-STR-001
      - FND-MBR-STR-054
  - section: Interactions With Related Capabilities
    provenance: proposed
    source:
      - ATS-MBR-STR-001-05
      - ATS-MBR-STR-001-10
      - ATS-MBR-STR-001-11
      - ATS-MBR-STR-001-12
---

# Define unit kinds and their permitted places: Capability Test Specification

## Coverage

The coverage map distinguishes specified examples from missing proof. A covered category means an expected case is specified; executable bindings and their run results remain separate evidence. Each required rule has a proof link or an explicit coverage finding in the structured rule ledger.

| Required Rule | Scenario or Finding |
|---|---|
| `BR-CAP-MBR-STR-001-01` | `ATS-MBR-STR-001-01` |
| `BR-CAP-MBR-STR-001-02` | `ATS-MBR-STR-001-02` |
| `BR-CAP-MBR-STR-001-03` | `ATS-MBR-STR-001-03` |
| `BR-CAP-MBR-STR-001-04` | `ATS-MBR-STR-001-04` |
| `BR-CAP-MBR-STR-001-05` | `ATS-MBR-STR-001-05` |
| `BR-CAP-MBR-STR-001-06` | `ATS-MBR-STR-001-06` |
| `BR-CAP-MBR-STR-001-07` | `ATS-MBR-STR-001-07`, `ATS-MBR-STR-001-11` |
| `BR-CAP-MBR-STR-001-08` | `ATS-MBR-STR-001-08`, `ATS-MBR-STR-001-12` |
| `BR-CAP-MBR-STR-001-09` | `ATS-MBR-STR-001-09` |
| `BR-CAP-MBR-STR-001-10` | `ATS-MBR-STR-001-10` |

## Interactions With Related Capabilities

Retirement changes placement eligibility. Retire the section kind, attempt a new section and a section move, reactivate the kind and repeat the placement work.

Program references protect the kind catalogue. Select a kind in a program requirement list and attempt kind deletion; clear the unused requirement and retry.
