narrowed method
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);
}