# StartupStep class abstract

Step recording metrics about a particular phase or action happening during the ApplicationStartup.

A `StartupStep` represents a logical segment of application startup. It supports tagging, nesting (via parent-child relationships), and can be timed or analyzed for startup diagnostics.

### Lifecycle:

1. The step is created via ApplicationStartup.start and assigned a unique id.
2. One or more tags may be attached using tag or `tagWithSupplier`.
3. The end method is called to finalize the step.

Implementations can use this for startup profiling, telemetry, or logging.

### Example:

    final step = applicationStartup.start('context.refresh');
    step.tag('pod.name', 'dataSource');
    step.end();

Mixed-in types
  - EqualsAndHashCode
  - ToString

## Constructors

StartupStep.new()

## Properties

hashCode → int
  The hash code for this object.
  no setter inherited
id → int
  A unique identifier assigned to this step.
  no setter
name → String
  The technical name of the startup step.
  no setter
parentId → int?
  ID of the parent step, if available.
  no setter
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited
tags → StartupStepTags
  Returns the complete list of StartupStepTags associated with this step.
  no setter

## Methods

end() → void
  Marks the end of this step.
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
tag(String key, {String? value, String supplied()?}) → StartupStep
  Attaches a static key/value tag to this step.
toString() → String
  A string representation of this object.
  inherited
toStringOptions() → ToStringOptions
  override

## Operators

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