# DesignDescriptor class

Describes the design role configuration of a component.

A design role indicates whether a component is application-level, supporting, or infrastructure-related.
See {@macro design_role}.

### Example

    final design = DesignDescriptor(
      role: DesignRole.SUPPORT,
      isPrimary: false,
      isInfrastructure: true,
    );

    print(design.role); // DesignRole.SUPPORT
    print(design.isInfrastructure); // true

Mixed-in types
  - EqualsAndHashCode
  - ToString

## Constructors

DesignDescriptor.new({required DesignRole role, required bool isPrimary, int? order})
  Creates a DesignDescriptor with the given `role`, `isPrimary`, and isInfrastructure flags.

## Properties

hashCode → int
  The hash code for this object.
  no setter inherited
isInfrastructure → bool
  Whether the component is marked as infrastructure.
  no setter
isPrimary ↔ bool
  Whether the component is marked as primary.
  getter/setter pair
order ↔ int?
  The order of the component.
  getter/setter pair
role ↔ DesignRole
  The DesignRole assigned to the component.
  See Defines the architectural role of a component within a system.
  getter/setter pair
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited

## Methods

equalizedProperties() → List<Object?>
  Mixin-style contract for value-based equality, `hashCode`, and `toString`.
  override
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
toString() → String
  A string representation of this object.
  inherited
toStringOptions() → ToStringOptions
  override

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited