narrowed method

HostCapabilityProfile narrowed(
  1. Map<HostCapability, CapabilityState> overrides, {
  2. String? name,
})

Derives a variant with overrides applied on top of this profile.

The floor table stays FIXED (it is the platform's ceiling, not this profile's): an override that force-enables beyond the floor throws HostProfileViolation — AC4's loud failure at construction.

Implementation

HostCapabilityProfile narrowed(
  Map<HostCapability, CapabilityState> overrides, {
  String? name,
}) {
  final label = name ?? '${this.name}.narrowed';
  final merged = Map.of(states)..addAll(overrides);
  _validate(name: label, states: merged, floors: floors);
  return HostCapabilityProfile._(label, Map.unmodifiable(merged), floors);
}